diff --git a/DEPS b/DEPS index e565714..19a8868 100644 --- a/DEPS +++ b/DEPS
@@ -181,11 +181,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '7655168e68654bee4eba998bdb660d87fa31d46e', + 'skia_revision': '435adfe71a0a02d0338586e9d58b6be0202f7fb5', # 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': 'fab248d2ccddc45eae7806b23a1992b304e1abb2', + 'v8_revision': 'cb92763d5c8a9ac41d15252209ecb3edc06656e5', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -197,11 +197,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': '146e16f68fdc4678600031ab3256cccf7b32d5e2', + 'swiftshader_revision': '63468081e52e4f482adf1c4152b7196dc261144b', # 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': '997e797922ae2f6db23d036493899b02c87cff10', + 'pdfium_revision': 'de6595c714420b8d355c07649e70b6212c7e141e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. @@ -244,7 +244,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'b9bb682ff61f0cc07227809b0f1c4ee8b6b5d56d', + 'catapult_revision': '6a138fbe7ca9a5b29dee5225c2a27e40efd723af', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -252,7 +252,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': '326caf16c14092e8f25aa641f649ff6ceb09684a', + 'devtools_frontend_revision': 'e6a9868686ae207226061cb797232606d985f747', # 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. @@ -308,11 +308,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'shaderc_revision': '99ca03e1ac3a78c7d0e1ca7b3a1f6d973e0c1fc7', + 'shaderc_revision': 'df0e683b583580fcdf5670d05de76a82f39aedcb', # 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': '7f078e7ebe3f1046b57f4fb3cc21805b4348dbf9', + 'dawn_revision': '2b24c3d92df5a473b752a0c145b79096441f5d50', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -1297,7 +1297,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '0a486a62378b447a08e5b3203414e6610a868d57', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'f7650d0b86f496745dd2860f97c466c84ee5d97c', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1498,7 +1498,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '4f3976e9b368ccfe7b9dd02014351936296dc72c', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'b42aeaa3fb21d78e59c47d2a9916acb380494496', + Var('webrtc_git') + '/src.git' + '@' + 'ccab06fb72be1fd8b165d865aefad9daeff8631f', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1568,7 +1568,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@80dbf39f778441662337b38cd0371b7ef12c659d', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@5dd59b4e1cf6dd78a7d4d992061964e8f3b54d90', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn index f807e32..27f4158 100644 --- a/android_webview/BUILD.gn +++ b/android_webview/BUILD.gn
@@ -26,7 +26,7 @@ if (public_android_sdk) { template("standalone_system_webview_apk_tmpl") { - system_webview_apk_tmpl(target_name) { + system_webview_apk_or_module_tmpl(target_name) { forward_variables_from(invoker, "*") android_manifest = system_webview_android_manifest android_manifest_dep =
diff --git a/android_webview/system_webview_apk_tmpl.gni b/android_webview/system_webview_apk_tmpl.gni index 92a7eb7..4704195f 100644 --- a/android_webview/system_webview_apk_tmpl.gni +++ b/android_webview/system_webview_apk_tmpl.gni
@@ -232,11 +232,3 @@ } } } - -# TODO(cduvall): Remove this once src/clank uses -# system_webview_apk_or_module_tmpl. -template("system_webview_apk_tmpl") { - system_webview_apk_or_module_tmpl(target_name) { - forward_variables_from(invoker, "*") - } -}
diff --git a/ash/app_list/views/app_list_main_view.cc b/ash/app_list/views/app_list_main_view.cc index 89ccf656..4d18d8d 100644 --- a/ash/app_list/views/app_list_main_view.cc +++ b/ash/app_list/views/app_list_main_view.cc
@@ -49,8 +49,6 @@ : delegate_(delegate), model_(delegate->GetModel()), search_model_(delegate->GetSearchModel()), - search_box_view_(nullptr), - contents_view_(nullptr), app_list_view_(app_list_view) { // We need a layer to apply transform to in small display so that the apps // grid fits in the display. @@ -77,11 +75,11 @@ void AppListMainView::AddContentsViews() { DCHECK(search_box_view_); - contents_view_ = new ContentsView(app_list_view_); - contents_view_->Init(model_); - contents_view_->SetPaintToLayer(ui::LAYER_NOT_DRAWN); - contents_view_->layer()->SetMasksToBounds(true); - AddChildView(contents_view_); + auto contents_view = std::make_unique<ContentsView>(app_list_view_); + contents_view->Init(model_); + contents_view->SetPaintToLayer(ui::LAYER_NOT_DRAWN); + contents_view->layer()->SetMasksToBounds(true); + contents_view_ = AddChildView(std::move(contents_view)); search_box_view_->set_contents_view(contents_view_); }
diff --git a/ash/app_list/views/app_list_main_view.h b/ash/app_list/views/app_list_main_view.h index 64a133f8..5ae92d0 100644 --- a/ash/app_list/views/app_list_main_view.h +++ b/ash/app_list/views/app_list_main_view.h
@@ -99,10 +99,10 @@ SearchModel* search_model_; // Unowned; ownership is handled by |delegate_|. // Created by AppListView. Owned by views hierarchy. - SearchBoxView* search_box_view_; + SearchBoxView* search_box_view_ = nullptr; - ContentsView* contents_view_; // Owned by views hierarchy. - AppListView* const app_list_view_; // Owned by views hierarchy. + ContentsView* contents_view_ = nullptr; // Owned by views hierarchy. + AppListView* const app_list_view_; // Owned by views hierarchy. DISALLOW_COPY_AND_ASSIGN(AppListMainView); };
diff --git a/ash/app_list/views/app_list_view.cc b/ash/app_list/views/app_list_view.cc index 1ea87c4..bd9963cf 100644 --- a/ash/app_list/views/app_list_view.cc +++ b/ash/app_list/views/app_list_view.cc
@@ -611,20 +611,24 @@ DCHECK(!search_box_view_); DCHECK(!announcement_view_); + auto app_list_background_shield = + std::make_unique<AppListBackgroundShieldView>(delegate_->GetShelfSize() / + 2); + app_list_background_shield->UpdateBackground(/*use_blur*/ !is_tablet_mode && + is_background_blur_enabled_); app_list_background_shield_ = - new AppListBackgroundShieldView(delegate_->GetShelfSize() / 2); - app_list_background_shield_->UpdateBackground(/*use_blur*/ !is_tablet_mode && - is_background_blur_enabled_); - AddChildView(app_list_background_shield_); + AddChildView(std::move(app_list_background_shield)); - app_list_main_view_ = new AppListMainView(delegate_, this); - search_box_view_ = new SearchBoxView(app_list_main_view_, delegate_, this); + auto app_list_main_view = std::make_unique<AppListMainView>(delegate_, this); + search_box_view_ = + new SearchBoxView(app_list_main_view.get(), delegate_, this); search_box_view_->Init(is_tablet_mode); - app_list_main_view_->Init(0, search_box_view_); - AddChildView(app_list_main_view_); - announcement_view_ = new views::View(); - AddChildView(announcement_view_); + // Assign |app_list_main_view_| here since it is accessed during Init(). + app_list_main_view_ = app_list_main_view.get(); + app_list_main_view->Init(0, search_box_view_); + AddChildView(std::move(app_list_main_view)); + announcement_view_ = AddChildView(std::make_unique<views::View>()); } void AppListView::InitWidget(gfx::NativeView parent) {
diff --git a/ash/app_list/views/apps_container_view.cc b/ash/app_list/views/apps_container_view.cc index e83dc67b..e4ad174 100644 --- a/ash/app_list/views/apps_container_view.cc +++ b/ash/app_list/views/apps_container_view.cc
@@ -62,25 +62,26 @@ : contents_view_(contents_view) { SetPaintToLayer(ui::LAYER_NOT_DRAWN); - suggestion_chip_container_view_ = - new SuggestionChipContainerView(contents_view); - AddChildView(suggestion_chip_container_view_); + suggestion_chip_container_view_ = AddChildView( + std::make_unique<SuggestionChipContainerView>(contents_view)); - apps_grid_view_ = new AppsGridView(contents_view_, nullptr); - AddChildView(apps_grid_view_); + apps_grid_view_ = + AddChildView(std::make_unique<AppsGridView>(contents_view_, nullptr)); // Page switcher should be initialized after AppsGridView. - page_switcher_ = - new PageSwitcher(apps_grid_view_->pagination_model(), true /* vertical */, - contents_view_->app_list_view()->is_tablet_mode()); - AddChildView(page_switcher_); + auto page_switcher = std::make_unique<PageSwitcher>( + apps_grid_view_->pagination_model(), true /* vertical */, + contents_view_->app_list_view()->is_tablet_mode()); + page_switcher_ = AddChildView(std::move(page_switcher)); - app_list_folder_view_ = new AppListFolderView(this, model, contents_view_); + auto app_list_folder_view = + std::make_unique<AppListFolderView>(this, model, contents_view_); // The folder view is initially hidden. - app_list_folder_view_->SetVisible(false); - folder_background_view_ = new FolderBackgroundView(app_list_folder_view_); - AddChildView(folder_background_view_); - AddChildView(app_list_folder_view_); + app_list_folder_view->SetVisible(false); + auto folder_background_view = + std::make_unique<FolderBackgroundView>(app_list_folder_view.get()); + folder_background_view_ = AddChildView(std::move(folder_background_view)); + app_list_folder_view_ = AddChildView(std::move(app_list_folder_view)); apps_grid_view_->SetModel(model); apps_grid_view_->SetItemList(model->top_level_item_list());
diff --git a/ash/app_list/views/apps_grid_view.cc b/ash/app_list/views/apps_grid_view.cc index 6ad84cf..456bef6 100644 --- a/ash/app_list/views/apps_grid_view.cc +++ b/ash/app_list/views/apps_grid_view.cc
@@ -845,15 +845,15 @@ // Create a new AppListItemView to duplicate the original_drag_view in the // folder's grid view. - AppListItemView* view = - new AppListItemView(this, original_drag_view->item(), - contents_view_->GetAppListMainView()->view_delegate(), - false /* is_in_folder */); - items_container_->AddChildView(view); + auto view = std::make_unique<AppListItemView>( + this, original_drag_view->item(), + contents_view_->GetAppListMainView()->view_delegate(), + false /* is_in_folder */); + auto* view_ptr = items_container_->AddChildView(std::move(view)); for (const auto& entry : view_model_.entries()) static_cast<AppListItemView*>(entry.view)->EnsureLayer(); - view->EnsureLayer(); - drag_view_ = view; + view_ptr->EnsureLayer(); + drag_view_ = view_ptr; // Dragged view should have focus. This also fixed the issue // https://crbug.com/834682. @@ -1225,9 +1225,9 @@ // Skip "page break" items. if (item_list_->item_at(i)->is_page_break()) continue; - AppListItemView* view = CreateViewForItemAtIndex(i); - view_model_.Add(view, view_model_.view_size()); - items_container_->AddChildView(view); + std::unique_ptr<AppListItemView> view = CreateViewForItemAtIndex(i); + view_model_.Add(view.get(), view_model_.view_size()); + items_container_->AddChildView(std::move(view)); } if (!folder_delegate_) view_structure_.LoadFromMetadata(); @@ -1289,17 +1289,18 @@ } while (pulsing_blocks_model_.view_size() < desired) { - PulsingBlockView* view = new PulsingBlockView(GetTotalTileSize(), true); - pulsing_blocks_model_.Add(view, 0); - items_container_->AddChildView(view); + auto view = std::make_unique<PulsingBlockView>(GetTotalTileSize(), true); + pulsing_blocks_model_.Add(view.get(), 0); + items_container_->AddChildView(std::move(view)); } } -AppListItemView* AppsGridView::CreateViewForItemAtIndex(size_t index) { +std::unique_ptr<AppListItemView> AppsGridView::CreateViewForItemAtIndex( + size_t index) { // The |drag_view_| might be pending for deletion, therefore |view_model_| // may have one more item than |item_list_|. DCHECK_LE(index, item_list_->item_count()); - AppListItemView* view = new AppListItemView( + std::unique_ptr<AppListItemView> view = std::make_unique<AppListItemView>( this, item_list_->item_at(index), contents_view_->GetAppListMainView()->view_delegate()); return view; @@ -2077,14 +2078,15 @@ DCHECK(!folder_delegate_); DCHECK(activated_folder_item_view_); - AppListItemView* reparented_view_in_root_grid = - new AppListItemView(this, reparented_view->item(), - contents_view_->GetAppListMainView()->view_delegate(), - false /* is_in_folder */); + auto reparented_view_in_root_grid = std::make_unique<AppListItemView>( + this, reparented_view->item(), + contents_view_->GetAppListMainView()->view_delegate(), + false /* is_in_folder */); - items_container_->AddChildView(reparented_view_in_root_grid); - view_model_.Add(reparented_view_in_root_grid, view_model_.view_size()); - view_structure_.Add(reparented_view_in_root_grid, GetLastTargetIndex()); + auto* reparented_view_in_root_grid_ptr = + items_container_->AddChildView(std::move(reparented_view_in_root_grid)); + view_model_.Add(reparented_view_in_root_grid_ptr, view_model_.view_size()); + view_structure_.Add(reparented_view_in_root_grid_ptr, GetLastTargetIndex()); // Set |activated_folder_item_view_| selected so |target_index| will be // computed relative to the open folder. @@ -2092,7 +2094,7 @@ const GridIndex target_index = GetTargetGridIndexForKeyboardReparent(key_code); AnnounceReorder(target_index); - ReparentItemForReorder(reparented_view_in_root_grid, target_index); + ReparentItemForReorder(reparented_view_in_root_grid_ptr, target_index); GetViewAtIndex(target_index)->RequestFocus(); Layout(); @@ -2309,11 +2311,12 @@ GridIndex target_index = GetIndexOfView(target_view); gfx::Rect target_view_bounds = target_view->bounds(); DeleteItemViewAtIndex(target_model_index, false /* sanitize */); - target_view = CreateViewForItemAtIndex(folder_item_index); - target_view->SetBoundsRect(target_view_bounds); - view_model_.Add(target_view, target_model_index); + std::unique_ptr<AppListItemView> new_target_view = + CreateViewForItemAtIndex(folder_item_index); + new_target_view->SetBoundsRect(target_view_bounds); + view_model_.Add(new_target_view.get(), target_model_index); if (!folder_delegate_) - view_structure_.Add(target_view, target_index); + view_structure_.Add(new_target_view.get(), target_index); // If drag view is in front of the position where it will be moved to, we // should skip it. @@ -2321,7 +2324,7 @@ target_model_index) ? 1 : 0; - items_container_->AddChildViewAt(target_view, + items_container_->AddChildViewAt(std::move(new_target_view), target_model_index - offset); } else { LOG(ERROR) << "Folder no longer in item_list: " << folder_item_id; @@ -2464,13 +2467,14 @@ int target_model_index = view_model_.GetIndexOfView(target_view); GridIndex target_index = GetIndexOfView(target_view); DeleteItemViewAtIndex(target_model_index, false /* sanitize */); - AppListItemView* new_folder_view = + std::unique_ptr<AppListItemView> new_folder_view = CreateViewForItemAtIndex(new_folder_index); new_folder_view->SetBoundsRect(target_rect); - view_model_.Add(new_folder_view, target_model_index); + view_model_.Add(new_folder_view.get(), target_model_index); if (!folder_delegate_) - view_structure_.Add(new_folder_view, target_index); - items_container_->AddChildViewAt(new_folder_view, target_model_index); + view_structure_.Add(new_folder_view.get(), target_index); + items_container_->AddChildViewAt(std::move(new_folder_view), + target_model_index); } else { LOG(ERROR) << "Folder no longer in item_list: " << new_folder_id; } @@ -2535,12 +2539,14 @@ NOTREACHED(); return; } - AppListItemView* last_item_view = CreateViewForItemAtIndex(last_item_index); + std::unique_ptr<AppListItemView> last_item_view = + CreateViewForItemAtIndex(last_item_index); last_item_view->SetBoundsRect(folder_rect); - view_model_.Add(last_item_view, target_model_index); + view_model_.Add(last_item_view.get(), target_model_index); if (!folder_delegate_) - view_structure_.Add(last_item_view, target_index); - items_container_->AddChildViewAt(last_item_view, target_model_index); + view_structure_.Add(last_item_view.get(), target_index); + items_container_->AddChildViewAt(std::move(last_item_view), + target_model_index); } void AppsGridView::CancelContextMenusOnCurrentPage() { @@ -2628,10 +2634,10 @@ EndDrag(true); if (!item->is_page_break()) { - AppListItemView* view = CreateViewForItemAtIndex(index); + std::unique_ptr<AppListItemView> view = CreateViewForItemAtIndex(index); int model_index = GetTargetModelIndexFromItemIndex(index); - view_model_.Add(view, model_index); - items_container_->AddChildViewAt(view, model_index); + view_model_.Add(view.get(), model_index); + items_container_->AddChildViewAt(std::move(view), model_index); } if (!folder_delegate_) @@ -3384,14 +3390,15 @@ folder_item->NotifyOfDraggedItem(drag_item); // Start animation. - TopIconAnimationView* animation_view = new TopIconAnimationView( + auto animation_view = std::make_unique<TopIconAnimationView>( this, drag_item->GetIcon(GetAppListConfig().type()), base::string16(), target_bounds, false, true); - items_container_->AddChildView(animation_view); - animation_view->SetBoundsRect(source_bounds); - animation_view->AddObserver( + auto* animation_view_ptr = + items_container_->AddChildView(std::move(animation_view)); + animation_view_ptr->SetBoundsRect(source_bounds); + animation_view_ptr->AddObserver( new FolderDroppingAnimationObserver(model_, folder_item->id())); - animation_view->TransformView(); + animation_view_ptr->TransformView(); } void AppsGridView::MaybeCreateFolderDroppingAccessibilityEvent() { @@ -3512,14 +3519,15 @@ // GhostImageView that will fade in. last_ghost_view_ = current_ghost_view_; - current_ghost_view_ = - new GhostImageView(IsFolderItem(drag_view_->item()) /* is_folder */, - folder_delegate_, reorder_placeholder_.page); + auto current_ghost_view = std::make_unique<GhostImageView>( + IsFolderItem(drag_view_->item()) /* is_folder */, folder_delegate_, + reorder_placeholder_.page); gfx::Rect ghost_view_bounds = GetExpectedTileBounds(reorder_placeholder_); ghost_view_bounds.Offset( CalculateTransitionOffset(reorder_placeholder_.page)); - current_ghost_view_->Init(drag_view_, ghost_view_bounds); - items_container_->AddChildView(current_ghost_view_); + current_ghost_view->Init(drag_view_, ghost_view_bounds); + current_ghost_view_ = + items_container_->AddChildView(std::move(current_ghost_view)); current_ghost_view_->FadeIn(); }
diff --git a/ash/app_list/views/apps_grid_view.h b/ash/app_list/views/apps_grid_view.h index 7e6d21c..eee3331 100644 --- a/ash/app_list/views/apps_grid_view.h +++ b/ash/app_list/views/apps_grid_view.h
@@ -347,7 +347,7 @@ // number of apps. void UpdatePulsingBlockViews(); - AppListItemView* CreateViewForItemAtIndex(size_t index); + std::unique_ptr<AppListItemView> CreateViewForItemAtIndex(size_t index); // Returns true if the event was handled by the pagination controller. bool HandleScroll(const gfx::Vector2d& offset, ui::EventType type);
diff --git a/ash/login/ui/login_auth_user_view.cc b/ash/login/ui/login_auth_user_view.cc index 5dd8de30..a78f46c 100644 --- a/ash/login/ui/login_auth_user_view.cc +++ b/ash/login/ui/login_auth_user_view.cc
@@ -79,8 +79,7 @@ constexpr SkColor kChallengeResponseArrowBackgroundColor = SkColorSetARGB(0x2B, 0xFF, 0xFF, 0xFF); -constexpr SkColor kChallengeResponseErrorColor = - SkColorSetRGB(0xEE, 0x67, 0x5C); +constexpr SkColor kChallengeResponseErrorColor = gfx::kGoogleRed300; // Date time format containing only the day of the week, for example: "Tuesday". constexpr char kDayOfWeekOnlyTimeFormat[] = "EEEE";
diff --git a/ash/resources/vector_icons/lock_screen_smart_card_failure.icon b/ash/resources/vector_icons/lock_screen_smart_card_failure.icon index e0f25b0..887062c 100644 --- a/ash/resources/vector_icons/lock_screen_smart_card_failure.icon +++ b/ash/resources/vector_icons/lock_screen_smart_card_failure.icon
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -CANVAS_DIMENSIONS, 24, -MOVE_TO, 11, 15, +CANVAS_DIMENSIONS, 20, +R_MOVE_TO, 9, 13, R_H_LINE_TO, 2, R_V_LINE_TO, 2, R_H_LINE_TO, -2, @@ -14,12 +14,12 @@ R_H_LINE_TO, -2, CLOSE, R_MOVE_TO, 0.99f, -5, -CUBIC_TO, 6.47f, 2, 2, 6.48f, 2, 12, +R_CUBIC_TO, -5.52f, 0, -9.99f, 4.48f, -9.99f, 10, R_CUBIC_TO, 0, 5.52f, 4.47f, 10, 9.99f, 10, -CUBIC_TO, 17.52f, 22, 22, 17.52f, 22, 12, -CUBIC_TO_SHORTHAND, 17.52f, 2, 11.99f, 2, +R_CUBIC_TO, 5.53f, 0, 10.01f, -4.48f, 10.01f, -10, +R_CUBIC_TO, 0, -5.52f, -4.48f, -10, -10.01f, -10, CLOSE, -MOVE_TO, 12, 20, +R_MOVE_TO, 0.01f, 18, R_CUBIC_TO, -4.42f, 0, -8, -3.58f, -8, -8, R_CUBIC_TO, 0, -4.42f, 3.58f, -8, 8, -8, R_CUBIC_TO, 4.42f, 0, 8, 3.58f, 8, 8,
diff --git a/base/message_loop/message_pump_mac.h b/base/message_loop/message_pump_mac.h index e87a675..909b946d 100644 --- a/base/message_loop/message_pump_mac.h +++ b/base/message_loop/message_pump_mac.h
@@ -155,6 +155,10 @@ // The maximum number of run loop modes that can be monitored. static constexpr int kNumModes = 4; + // All sources of delayed work scheduling converge to this, using TimeDelta + // avoids querying Now() for key callers. + void ScheduleDelayedWorkImpl(TimeDelta delta); + // Marking timers as invalid at the right time helps significantly reduce // power use (see the comment in RunDelayedWorkTimer()), however there is no // public API for doing so. CFRuntime.h states that CFRuntimeBase, upon which @@ -175,33 +179,32 @@ void SetDelayedWorkTimerValid(bool valid); // Timer callback scheduled by ScheduleDelayedWork. This does not do any - // work, but it signals work_source_ so that delayed work can be performed + // work, but it signals |work_source_| so that delayed work can be performed // within the appropriate priority constraints. static void RunDelayedWorkTimer(CFRunLoopTimerRef timer, void* info); - // Perform highest-priority work. This is associated with work_source_ + // Perform highest-priority work. This is associated with |work_source_| // signalled by ScheduleWork or RunDelayedWorkTimer. The static method calls // the instance method; the instance method returns true if it resignalled - // work_source_ to be called again from the loop. + // |work_source_| to be called again from the loop. static void RunWorkSource(void* info); bool RunWork(); // Perform idle-priority work. This is normally called by PreWaitObserver, - // but is also associated with idle_work_source_. When this function + // but is also associated with |idle_work_source_|. When this function // actually does perform idle work, it will resignal that source. The - // static method calls the instance method; the instance method returns - // true if idle work was done. + // static method calls the instance method. static void RunIdleWorkSource(void* info); - bool RunIdleWork(); + void RunIdleWork(); // Perform work that may have been deferred because it was not runnable // within a nested run loop. This is associated with - // nesting_deferred_work_source_ and is signalled by + // |nesting_deferred_work_source_| and is signalled by // MaybeScheduleNestingDeferredWork when returning from a nested loop, // so that an outer loop will be able to perform the necessary tasks if it // permits nestable tasks. static void RunNestingDeferredWorkSource(void* info); - bool RunNestingDeferredWork(); + void RunNestingDeferredWork(); // Schedules possible nesting-deferred work to be processed before the run // loop goes to sleep, exits, or begins processing sources at the top of its @@ -211,24 +214,24 @@ void MaybeScheduleNestingDeferredWork(); // Observer callback responsible for performing idle-priority work, before - // the run loop goes to sleep. Associated with idle_work_observer_. + // the run loop goes to sleep. Associated with |pre_wait_observer_|. static void PreWaitObserver(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void* info); // Observer callback called before the run loop processes any sources. - // Associated with pre_source_observer_. + // Associated with |pre_source_observer_|. static void PreSourceObserver(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void* info); // Observer callback called when the run loop starts and stops, at the // beginning and end of calls to CFRunLoopRun. This is used to maintain - // nesting_level_. Associated with enter_exit_observer_. + // |nesting_level_|. Associated with |enter_exit_observer_|. static void EnterExitObserver(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void* info); - // Called by EnterExitObserver after performing maintenance on nesting_level_. - // This allows subclasses an opportunity to perform additional processing on - // the basis of run loops starting and stopping. + // Called by EnterExitObserver after performing maintenance on + // |nesting_level_|. This allows subclasses an opportunity to perform + // additional processing on the basis of run loops starting and stopping. virtual void EnterExitRunLoop(CFRunLoopActivity activity); // The thread's run loop. @@ -250,12 +253,6 @@ // (weak) Delegate passed as an argument to the innermost Run call. Delegate* delegate_; - // The time that delayed_work_timer_ is scheduled to fire. This is tracked - // independently of CFRunLoopTimerGetNextFireDate(delayed_work_timer_) - // to be able to reset the timer properly after waking from system sleep. - // See PowerStateNotification. - CFAbsoluteTime delayed_work_fire_time_; - base::TimerSlack timer_slack_; // The recursion depth of the currently-executing CFRunLoopRun loop on the @@ -263,7 +260,7 @@ // the object was created in. int nesting_level_; - // The recursion depth (calculated in the same way as nesting_level_) of the + // The recursion depth (calculated in the same way as |nesting_level_|) of the // innermost executing CFRunLoopRun loop started by a call to Run. int run_nesting_level_; @@ -306,8 +303,8 @@ void EnterExitRunLoop(CFRunLoopActivity activity) override; // True if Quit is called to stop the innermost MessagePump - // (innermost_quittable_) but some other CFRunLoopRun loop (nesting_level_) - // is running inside the MessagePump's innermost Run call. + // (|innermost_quittable_|) but some other CFRunLoopRun loop + // (|nesting_level_|) is running inside the MessagePump's innermost Run call. bool quit_pending_; DISALLOW_COPY_AND_ASSIGN(MessagePumpCFRunLoop);
diff --git a/base/message_loop/message_pump_mac.mm b/base/message_loop/message_pump_mac.mm index b3e5a3d..7711944f 100644 --- a/base/message_loop/message_pump_mac.mm +++ b/base/message_loop/message_pump_mac.mm
@@ -208,9 +208,10 @@ // Must be called on the run loop thread. void MessagePumpCFRunLoopBase::ScheduleDelayedWork( const TimeTicks& delayed_work_time) { - TimeDelta delta = delayed_work_time - TimeTicks::Now(); - delayed_work_fire_time_ = CFAbsoluteTimeGetCurrent() + delta.InSecondsF(); + ScheduleDelayedWorkImpl(delayed_work_time - TimeTicks::Now()); +} +void MessagePumpCFRunLoopBase::ScheduleDelayedWorkImpl(TimeDelta delta) { // Flip the timer's validation bit just before setting the new fire time. Do // this now because CFRunLoopTimerSetNextFireDate() likely checks the validity // of a timer before proceeding to set its fire date. Making the timer valid @@ -227,7 +228,8 @@ } else { CFRunLoopTimerSetTolerance(delayed_work_timer_, 0); } - CFRunLoopTimerSetNextFireDate(delayed_work_timer_, delayed_work_fire_time_); + CFRunLoopTimerSetNextFireDate( + delayed_work_timer_, CFAbsoluteTimeGetCurrent() + delta.InSecondsF()); } void MessagePumpCFRunLoopBase::SetTimerSlack(TimerSlack timer_slack) { @@ -243,7 +245,6 @@ // Must be called on the run loop thread. MessagePumpCFRunLoopBase::MessagePumpCFRunLoopBase(int initial_mode_mask) : delegate_(NULL), - delayed_work_fire_time_(kCFTimeIntervalMax), timer_slack_(base::TIMER_SLACK_NONE), nesting_level_(0), run_nesting_level_(0), @@ -427,9 +428,6 @@ void* info) { MessagePumpCFRunLoopBase* self = static_cast<MessagePumpCFRunLoopBase*>(info); - // The timer won't fire again until it's reset. - self->delayed_work_fire_time_ = kCFTimeIntervalMax; - // The message pump's timer needs to fire at changing and unpredictable // intervals. Creating a new timer for each firing time is very expensive, so // the message pump instead uses a repeating timer with a very large repeat @@ -455,11 +453,11 @@ // timer's new firing time. self->SetDelayedWorkTimerValid(false); - // CFRunLoopTimers fire outside of the priority scheme for CFRunLoopSources. - // In order to establish the proper priority in which work and delayed work - // are processed one for one, the timer used to schedule delayed work must - // signal a CFRunLoopSource used to dispatch both work and delayed work. - CFRunLoopSourceSignal(self->work_source_); + // The timer fired, assume we have work and let RunWork() figure out what to + // do and what to schedule after. + base::mac::CallWithEHFrame(^{ + self->RunWork(); + }); } // Called from the run loop. @@ -471,10 +469,10 @@ }); } -// Called by MessagePumpCFRunLoopBase::RunWorkSource. +// Called by MessagePumpCFRunLoopBase::RunWorkSource and RunDelayedWorkTimer. bool MessagePumpCFRunLoopBase::RunWork() { if (!delegate_) { - // This point can be reached with a NULL delegate_ if Run is not on the + // This point can be reached with a nullptr |delegate_| if Run is not on the // stack but foreign code is spinning the CFRunLoop. Arrange to come back // here when a delegate is available. delegateless_work_ = true; @@ -490,40 +488,16 @@ // released promptly even in the absence of UI events. MessagePumpScopedAutoreleasePool autorelease_pool(this); - // Call DoWork and DoDelayedWork once, and if something was done, arrange to - // come back here again as long as the loop is still running. - bool did_work = delegate_->DoWork(); - bool resignal_work_source = did_work; + Delegate::NextWorkInfo next_work_info = delegate_->DoSomeWork(); - TimeTicks next_time; - if (keep_running()) - delegate_->DoDelayedWork(&next_time); - if (!did_work) { - // Determine whether there's more delayed work, and if so, if it needs to - // be done at some point in the future or if it's already time to do it. - // Only do these checks if did_work is false. If did_work is true, this - // function, and therefore any additional delayed work, will get another - // chance to run before the loop goes to sleep. - bool more_delayed_work = !next_time.is_null(); - if (more_delayed_work) { - TimeDelta delay = next_time - TimeTicks::Now(); - if (delay > TimeDelta()) { - // There's more delayed work to be done in the future. - ScheduleDelayedWork(next_time); - } else { - // There's more delayed work to be done, and its time is in the past. - // Arrange to come back here directly as long as the loop is still - // running. - resignal_work_source = true; - } - } - } - - if (resignal_work_source) { + if (next_work_info.is_immediate()) { CFRunLoopSourceSignal(work_source_); + return true; } - return resignal_work_source; + if (!next_work_info.delayed_run_time.is_max()) + ScheduleDelayedWorkImpl(next_work_info.remaining_delay()); + return false; } // Called from the run loop. @@ -536,32 +510,27 @@ } // Called by MessagePumpCFRunLoopBase::RunIdleWorkSource. -bool MessagePumpCFRunLoopBase::RunIdleWork() { +void MessagePumpCFRunLoopBase::RunIdleWork() { if (!delegate_) { - // This point can be reached with a NULL delegate_ if Run is not on the + // This point can be reached with a nullptr delegate_ if Run is not on the // stack but foreign code is spinning the CFRunLoop. Arrange to come back // here when a delegate is available. delegateless_idle_work_ = true; - return false; + return; } if (!keep_running()) - return false; - + return; // The NSApplication-based run loop only drains the autorelease pool at each // UI event (NSEvent). The autorelease pool is not drained for each // CFRunLoopSource target that's run. Use a local pool for any autoreleased // objects if the app is not currently handling a UI event to ensure they're // released promptly even in the absence of UI events. MessagePumpScopedAutoreleasePool autorelease_pool(this); - // Call DoIdleWork once, and if something was done, arrange to come back here // again as long as the loop is still running. bool did_work = delegate_->DoIdleWork(); - if (did_work) { + if (did_work) CFRunLoopSourceSignal(idle_work_source_); - } - - return did_work; } // Called from the run loop. @@ -574,27 +543,22 @@ } // Called by MessagePumpCFRunLoopBase::RunNestingDeferredWorkSource. -bool MessagePumpCFRunLoopBase::RunNestingDeferredWork() { +void MessagePumpCFRunLoopBase::RunNestingDeferredWork() { if (!delegate_) { - // This point can be reached with a NULL delegate_ if Run is not on the + // This point can be reached with a nullptr |delegate_| if Run is not on the // stack but foreign code is spinning the CFRunLoop. There's no sense in // attempting to do any work or signalling the work sources because // without a delegate, work is not possible. - return false; + return; } - // Immediately try work in priority order. - if (!RunWork()) { - if (!RunIdleWork()) { - return false; - } - } else { + if (RunWork()) { // Work was done. Arrange for the loop to try non-nestable idle work on // a subsequent pass. CFRunLoopSourceSignal(idle_work_source_); + } else { + RunIdleWork(); } - - return true; } // Called before the run loop goes to sleep or exits, or processes sources.
diff --git a/base/message_loop/message_pump_unittest.cc b/base/message_loop/message_pump_unittest.cc index f7e6ed91..5c58790e 100644 --- a/base/message_loop/message_pump_unittest.cc +++ b/base/message_loop/message_pump_unittest.cc
@@ -35,21 +35,11 @@ bool PumpTypeUsesDoSomeWork(MessagePumpType type) { switch (type) { case MessagePumpType::DEFAULT: -#if defined(OS_IOS) - // iOS uses a MessagePumpCFRunLoop instead of MessagePumpDefault for - // TYPE_DEFAULT. TODO(gab): migrate MessagePumpCFRunLoop too. - return false; -#else return true; -#endif case MessagePumpType::UI: -#if defined(OS_IOS) - // iOS uses a MessagePumpCFRunLoop for UI in unit tests, ref. - // test_support_ios.mm::CreateMessagePumpForUIForTests(). TODO(gab): - // migrate MessagePumpCFRunLoop too. - return false; -#elif defined(OS_WIN) || defined(OS_ANDROID) || defined(USE_GLIB) +#if defined(OS_WIN) || defined(OS_ANDROID) || defined(USE_GLIB) || \ + defined(OS_MACOSX) return true; #elif defined(OS_POSIX) && !defined(OS_NACL_SFI) // MessagePumpLibevent was migrated (ref. message_pump_for_ui.h and @@ -62,7 +52,7 @@ #endif case MessagePumpType::IO: -#if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS)) +#if defined(OS_WIN) || defined(OS_MACOSX) return true; #elif defined(OS_POSIX) && !defined(OS_NACL_SFI) // MessagePumpLibevent was migrated (ref. message_pump_for_io.h and
diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc index a4add2a..ffc8277 100644 --- a/base/task/sequence_manager/sequence_manager_impl.cc +++ b/base/task/sequence_manager/sequence_manager_impl.cc
@@ -282,17 +282,6 @@ std::move(settings))); } -// static -std::unique_ptr<SequenceManagerImpl> -SequenceManagerImpl::CreateSequenceFunneled( - scoped_refptr<SingleThreadTaskRunner> task_runner, - SequenceManager::Settings settings) { - return WrapUnique( - new SequenceManagerImpl(ThreadControllerImpl::CreateSequenceFunneled( - std::move(task_runner), settings.clock), - std::move(settings))); -} - void SequenceManagerImpl::BindToMessagePump(std::unique_ptr<MessagePump> pump) { controller_->BindToCurrentThread(std::move(pump)); CompleteInitializationOnBoundThread();
diff --git a/base/task/sequence_manager/sequence_manager_impl.h b/base/task/sequence_manager/sequence_manager_impl.h index 37141b7..7cc5684 100644 --- a/base/task/sequence_manager/sequence_manager_impl.h +++ b/base/task/sequence_manager/sequence_manager_impl.h
@@ -95,11 +95,6 @@ static std::unique_ptr<SequenceManagerImpl> CreateUnbound( SequenceManager::Settings settings); - // Create a SequenceManager that funnels it's tasks down onto |task_runner|. - static std::unique_ptr<SequenceManagerImpl> CreateSequenceFunneled( - scoped_refptr<SingleThreadTaskRunner> task_runner, - SequenceManager::Settings settings); - // SequenceManager implementation: void BindToCurrentThread() override; scoped_refptr<SequencedTaskRunner> GetTaskRunnerForCurrentTask() override;
diff --git a/base/task/sequence_manager/thread_controller_impl.cc b/base/task/sequence_manager/thread_controller_impl.cc index 1d206ab1..ab55a0cc 100644 --- a/base/task/sequence_manager/thread_controller_impl.cc +++ b/base/task/sequence_manager/thread_controller_impl.cc
@@ -59,14 +59,6 @@ time_source)); } -std::unique_ptr<ThreadControllerImpl> -ThreadControllerImpl::CreateSequenceFunneled( - scoped_refptr<SingleThreadTaskRunner> task_runner, - const TickClock* time_source) { - return WrapUnique( - new ThreadControllerImpl(nullptr, std::move(task_runner), time_source)); -} - void ThreadControllerImpl::SetSequencedTaskSource( SequencedTaskSource* sequence) { DCHECK_CALLED_ON_VALID_SEQUENCE(associated_thread_->sequence_checker);
diff --git a/base/task/sequence_manager/thread_controller_impl.h b/base/task/sequence_manager/thread_controller_impl.h index 9e69ff05..fd1e2463 100644 --- a/base/task/sequence_manager/thread_controller_impl.h +++ b/base/task/sequence_manager/thread_controller_impl.h
@@ -40,10 +40,6 @@ SequenceManagerImpl* funneled_sequence_manager, const TickClock* time_source); - static std::unique_ptr<ThreadControllerImpl> CreateSequenceFunneled( - scoped_refptr<SingleThreadTaskRunner> task_runner, - const TickClock* time_source); - // ThreadController: void SetWorkBatchSize(int work_batch_size) override; void WillQueueTask(PendingTask* pending_task,
diff --git a/base/task/single_thread_task_executor.cc b/base/task/single_thread_task_executor.cc index 3014bde..fff5f83 100644 --- a/base/task/single_thread_task_executor.cc +++ b/base/task/single_thread_task_executor.cc
@@ -43,4 +43,8 @@ return default_task_queue_->task_runner(); } +void SingleThreadTaskExecutor::SetWorkBatchSize(size_t work_batch_size) { + sequence_manager_->SetWorkBatchSize(work_batch_size); +} + } // namespace base
diff --git a/base/task/single_thread_task_executor.h b/base/task/single_thread_task_executor.h index 543310a..03b47c7 100644 --- a/base/task/single_thread_task_executor.h +++ b/base/task/single_thread_task_executor.h
@@ -44,6 +44,12 @@ MessagePumpType type() const { return type_; } + // Sets the number of application tasks executed every time the MessagePump + // asks its delegate to DoWork(). Defaults to 1. Can be increased in some + // scenarios where the native pump (i.e. not MessagePumpType::DEFAULT) has + // high overhead and yielding to native isn't critical. + void SetWorkBatchSize(size_t work_batch_size); + private: explicit SingleThreadTaskExecutor(MessagePumpType type, std::unique_ptr<MessagePump> pump);
diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 154d9e5..afc2309 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn
@@ -276,9 +276,7 @@ # Only the executable template in BUILDCONFIG.gn should reference this. group("executable_deps") { - public_deps = [ - ":common_deps", - ] + public_deps = [ ":common_deps" ] if (export_libcxxabi_from_executables) { public_deps += [ "//buildtools/third_party/libc++abi" ] } @@ -286,16 +284,12 @@ # Only the loadable_module template in BUILDCONFIG.gn should reference this. group("loadable_module_deps") { - public_deps = [ - ":common_deps", - ] + public_deps = [ ":common_deps" ] } # Only the shared_library template in BUILDCONFIG.gn should reference this. group("shared_library_deps") { - public_deps = [ - ":common_deps", - ] + public_deps = [ ":common_deps" ] } # Executable configs -----------------------------------------------------------
diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni index 8f38e4c..883c661 100644 --- a/build/config/chrome_build.gni +++ b/build/config/chrome_build.gni
@@ -31,4 +31,4 @@ declare_args() { # The path to the BRANDING file in chrome/app/theme. branding_file_path = "//chrome/app/theme/$branding_path_component/BRANDING" -} \ No newline at end of file +}
diff --git a/build/config/chromeos/rules.gni b/build/config/chromeos/rules.gni index 6c78415..d603436 100644 --- a/build/config/chromeos/rules.gni +++ b/build/config/chromeos/rules.gni
@@ -64,13 +64,9 @@ } script = "//build/chromeos/create_test_runner_script.py" - outputs = [ - generated_script, - ] + outputs = [ generated_script ] - deps = [ - "//testing/buildbot/filters:chromeos_filters", - ] + deps = [ "//testing/buildbot/filters:chromeos_filters" ] if (defined(invoker.deps)) { deps += invoker.deps }
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index d9253fb..6958081d7e 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -2245,15 +2245,11 @@ rebased_clang_sample_profile = rebase_path(_clang_sample_profile, root_build_dir) cflags += [ "-fprofile-sample-use=${rebased_clang_sample_profile}" ] - inputs = [ - _clang_sample_profile, - ] + inputs = [ _clang_sample_profile ] } } else if (auto_profile_path != "" && is_a_target_toolchain) { cflags = [ "-fauto-profile=${auto_profile_path}" ] - inputs = [ - auto_profile_path, - ] + inputs = [ auto_profile_path ] } } @@ -2527,9 +2523,7 @@ "/ignore:4065", ] } - inputs = [ - chrome_orderfile_path, - ] + inputs = [ chrome_orderfile_path ] } } }
diff --git a/build/config/nacl/rules.gni b/build/config/nacl/rules.gni index 9bb4ede..834c461 100644 --- a/build/config/nacl/rules.gni +++ b/build/config/nacl/rules.gni
@@ -50,13 +50,9 @@ } script = "//native_client_sdk/src/tools/create_nmf.py" - inputs = [ - objdump, - ] + inputs = [ objdump ] sources = executables - outputs = [ - nmf, - ] + outputs = [ nmf ] if (is_nacl_glibc) { if (defined(stage_dependencies)) { nmfflags += [ "--stage-dependencies=" + @@ -159,12 +155,8 @@ ]) script = "//ppapi/tests/create_nonsfi_test_nmf.py" - sources = [ - executable, - ] - outputs = [ - nmf, - ] + sources = [ executable ] + outputs = [ nmf ] # NOTE: We use target_cpu rather than current_cpu on purpose because # current_cpu is always going to be pnacl for Non-SFI, but the Non-SFI
diff --git a/build/config/win/BUILD.gn b/build/config/win/BUILD.gn index 866af23..37a710e 100644 --- a/build/config/win/BUILD.gn +++ b/build/config/win/BUILD.gn
@@ -239,9 +239,7 @@ } else { defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" ] } - cflags_cc += [ - "/EHsc", - ] + cflags_cc += [ "/EHsc" ] # This warning is given because the linker cannot tell the difference # between consuming WinRT APIs versus authoring WinRT within static
diff --git a/build/config/zip.gni b/build/config/zip.gni index 58cb692f..68bc4944 100644 --- a/build/config/zip.gni +++ b/build/config/zip.gni
@@ -29,9 +29,7 @@ ]) script = "//build/android/gyp/zip.py" inputs = invoker.inputs - outputs = [ - invoker.output, - ] + outputs = [ invoker.output ] args = [ "--output",
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index bc51130..2ab499ca 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8891258278389293552 \ No newline at end of file +8891215718560157712 \ No newline at end of file
diff --git a/build/toolchain/toolchain.gni b/build/toolchain/toolchain.gni index 547dab4..ee11e26 100644 --- a/build/toolchain/toolchain.gni +++ b/build/toolchain/toolchain.gni
@@ -37,7 +37,12 @@ declare_args() { if (is_clang) { # Clang compiler version. Clang files are placed at version-dependent paths. - clang_version = "10.0.0" + if (llvm_force_head_revision) { + clang_version = "11.0.0" + } else { + # TODO(crbug.com/1042192): Remove in the next Clang roll. + clang_version = "10.0.0" + } } }
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index db1899c..d1a2311 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -2655,6 +2655,7 @@ "java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/SimpleConfirmInfoBarBuilder.java", "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java", + "java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java", "java/src/org/chromium/chrome/browser/init/NativeStartupBridge.java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index 3d81efa..a5765e3 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -44,6 +44,7 @@ "java/src/org/chromium/chrome/browser/KeyboardShortcuts.java", "java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java", "java/src/org/chromium/chrome/browser/LauncherShortcutActivity.java", + "java/src/org/chromium/chrome/browser/LegacyChromeFeatureList.java", "java/src/org/chromium/chrome/browser/MenuOrKeyboardActionController.java", "java/src/org/chromium/chrome/browser/NavigationPopup.java", "java/src/org/chromium/chrome/browser/NearOomMonitor.java", @@ -848,6 +849,7 @@ "java/src/org/chromium/chrome/browser/infobar/SubPanelListener.java", "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBarDelegate.java", + "java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/TextViewEllipsizerSafe.java", "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java",
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPaymentTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPaymentTest.java index c973585..a46efd9 100644 --- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPaymentTest.java +++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPaymentTest.java
@@ -35,6 +35,7 @@ import org.junit.runner.RunWith; import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.DisabledTest; import org.chromium.chrome.autofill_assistant.R; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.autofill_assistant.proto.ActionProto; @@ -194,6 +195,7 @@ */ @Test @MediumTest + @DisabledTest(message = "https://crbug.com/1041870") public void testKeyboardIsHiddenOnLostFocus() throws Exception { String profileId = mHelper.addDummyProfile("John Doe", "johndoe@gmail.com"); mHelper.addDummyCreditCard(profileId);
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentBridge.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentBridge.java index 94a3f3b..d8e6c26 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentBridge.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentBridge.java
@@ -178,6 +178,11 @@ webContents, available); } + @VisibleForTesting + public static void disableServerPredictionsForTesting() { + ManualFillingComponentBridgeJni.get().disableServerPredictionsForTesting(); + } + @NativeMethods interface Natives { void onFillingTriggered(long nativeManualFillingViewAndroid, @@ -188,5 +193,6 @@ WebContents webContents, String[] userNames, String[] passwords); void notifyFocusedFieldTypeForTesting(WebContents webContents, int focusedFieldType); void signalAutoGenerationStatusForTesting(WebContents webContents, boolean available); + void disableServerPredictionsForTesting(); } }
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java index 4c6ab4e..a8d5d2b 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java
@@ -351,6 +351,11 @@ "94102", "", "US", "(415) 999-0000", "marc@acme-mail.inc", "en")); } + public static void disableServerPredictions() { + TestThreadUtils.runOnUiThreadBlocking( + () -> { ManualFillingComponentBridge.disableServerPredictionsForTesting(); }); + } + // -------------------------------------------------- // Generic helpers to match, check or wait for views. // TODO(fhorschig): Consider Moving to ViewUtils.
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml index 00bad28..700d483a 100644 --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml
@@ -96,6 +96,9 @@ <dimen name="infobar_big_icon_size">48dp</dimen> <dimen name="infobar_big_icon_margin">16dp</dimen> + <!-- Dimension applied to SyncErrorInfoBar icon. --> + <dimen name="sync_error_infobar_icon_size">48dp</dimen> + <!-- Dimensions for compact infobars are a little shorter. --> <dimen name="infobar_compact_size">56dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java index ed4e0c5..3795619 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java
@@ -6,7 +6,6 @@ import android.annotation.SuppressLint; import android.app.Activity; -import android.content.SharedPreferences; import android.provider.Settings; import android.text.TextUtils; @@ -31,8 +30,10 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; import org.chromium.chrome.browser.notifications.chime.ChimeSession; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefServiceBridge; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.settings.privacy.BrowsingDataBridge; import org.chromium.chrome.browser.share.ShareHelper; @@ -47,8 +48,6 @@ */ public class ChromeActivitySessionTracker { - private static final String PREF_LOCALE = "locale"; - @SuppressLint("StaticFieldLeak") private static ChromeActivitySessionTracker sInstance; @@ -219,12 +218,11 @@ } private boolean hasLocaleChanged(String newLocale) { - String previousLocale = ContextUtils.getAppSharedPreferences().getString(PREF_LOCALE, null); + String previousLocale = SharedPreferencesManager.getInstance().readString( + ChromePreferenceKeys.APP_LOCALE, null); if (!TextUtils.equals(previousLocale, newLocale)) { - SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); - SharedPreferences.Editor editor = prefs.edit(); - editor.putString(PREF_LOCALE, newLocale); - editor.apply(); + SharedPreferencesManager.getInstance().writeString( + ChromePreferenceKeys.APP_LOCALE, newLocale); TranslateBridge.resetAcceptLanguages(newLocale); // We consider writing the initial value to prefs as _not_ changing the locale. return previousLocale != null;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java index cafafb9..e661189 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -23,7 +23,7 @@ private static Map<String, Boolean> sTestFeatures; // Prevent instantiation. - private ChromeFeatureList() {} + protected ChromeFeatureList() {} /** * Sets the feature flags to use in JUnit tests, since native calls are not available there.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java index 9389da9..56133c9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -91,6 +91,7 @@ import org.chromium.chrome.browser.incognito.IncognitoTabSnapshotController; import org.chromium.chrome.browser.incognito.IncognitoUtils; import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar; +import org.chromium.chrome.browser.infobar.SyncErrorInfoBar; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.metrics.LaunchMetrics; @@ -597,6 +598,7 @@ R.string.open_in_new_tab_toast, Toast.LENGTH_SHORT).show(); } + SyncErrorInfoBar.maybeLaunchSyncErrorInfoBar(tab.getWebContents()); } @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LegacyChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/LegacyChromeFeatureList.java new file mode 100644 index 0000000..5ed1a11 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/LegacyChromeFeatureList.java
@@ -0,0 +1,16 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser; + +/** + * Temporary class, identical to {@link ChromeFeatureList}, for migration. + * + * This class will be referenced temporarily while ChromeFeatureList is moved to the .flags + * package. + * + * TODO(crbug.com/1041468): Remove this class after downstream uses flags.ChromeFeatureList. + */ +public abstract class LegacyChromeFeatureList extends ChromeFeatureList { +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java new file mode 100644 index 0000000..ba48b68 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java
@@ -0,0 +1,187 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.infobar; + +import static org.chromium.base.ContextUtils.getApplicationContext; + +import android.content.Context; +import android.text.TextUtils; +import android.widget.ImageView; + +import androidx.annotation.IntDef; + +import org.chromium.base.ContextUtils; +import org.chromium.base.annotations.CalledByNative; +import org.chromium.base.annotations.NativeMethods; +import org.chromium.base.metrics.RecordHistogram; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ChromeFeatureList; +import org.chromium.chrome.browser.settings.SettingsLauncher; +import org.chromium.chrome.browser.settings.sync.SyncAndServicesPreferences; +import org.chromium.chrome.browser.settings.sync.SyncPreferenceUtils; +import org.chromium.chrome.browser.settings.sync.SyncPreferenceUtils.SyncError; +import org.chromium.content_public.browser.WebContents; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.concurrent.TimeUnit; + +/** + * An {@link InfoBar} that shows sync errors and prompts the user to open settings page. + */ +public class SyncErrorInfoBar extends ConfirmInfoBar { + // Preference key to save the latest time this infobar is viewed. + private static final String PREF_SYNC_ERROR_INFOBAR_SHOWN_AT_TIME = + "sync_error_infobar_shown_shown_at_time"; + private static final long MINIMAL_DURATION_BETWEEN_INFOBARS_MS = + TimeUnit.MILLISECONDS.convert(24, TimeUnit.HOURS); + + @IntDef({SyncErrorInfoBarType.NOT_SHOWN, SyncErrorInfoBarType.AUTH_ERROR, + SyncErrorInfoBarType.PASSPHRASE_REQUIRED, SyncErrorInfoBarType.SYNC_SETUP_INCOMPLETE}) + @Retention(RetentionPolicy.SOURCE) + private @interface SyncErrorInfoBarType { + int NOT_SHOWN = -1; + int AUTH_ERROR = 0; + int PASSPHRASE_REQUIRED = 1; + int SYNC_SETUP_INCOMPLETE = 2; + } + + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. + @IntDef({SyncErrorInfoBarAction.SHOWN, SyncErrorInfoBarAction.DISMISSED, + SyncErrorInfoBarAction.OPEN_SETTINGS_CLICKED, SyncErrorInfoBarAction.NUM_ENTRIES}) + @Retention(RetentionPolicy.SOURCE) + private @interface SyncErrorInfoBarAction { + int SHOWN = 0; + int DISMISSED = 1; + int OPEN_SETTINGS_CLICKED = 2; + int NUM_ENTRIES = 3; + } + + private final @SyncErrorInfoBarType int mType; + private final String mDetailsMessage; + + /** + * This function is called after maybeLaunchSyncErrorInfoBar sends launch signal to the native + * side code. + */ + @CalledByNative + private static InfoBar show() { + Context context = getApplicationContext(); + @SyncError + int error = SyncPreferenceUtils.getSyncError(); + String error_message = (error == SyncError.SYNC_SETUP_INCOMPLETE) + ? context.getString(R.string.sync_settings_not_confirmed_title) + : SyncPreferenceUtils.getSyncErrorHint(context, error); + return new SyncErrorInfoBar(getSyncErrorInfoBarType(), + context.getString(R.string.sync_error_card_title), error_message, + context.getString(R.string.open_settings_button)); + } + + @CalledByNative + private void accept() { + recordHistogram(mType, SyncErrorInfoBarAction.OPEN_SETTINGS_CLICKED); + + SettingsLauncher.launchSettingsPage(getApplicationContext(), + SyncAndServicesPreferences.class, + SyncAndServicesPreferences.createArguments(false)); + } + + @CalledByNative + private void dismissed() { + recordHistogram(mType, SyncErrorInfoBarAction.DISMISSED); + } + + private SyncErrorInfoBar(@SyncErrorInfoBarType int type, String title, String detailsMessage, + String primaryButtonText) { + super(R.drawable.ic_sync_error_40dp, R.color.default_red, null, title, null, + primaryButtonText, null); + mType = type; + mDetailsMessage = detailsMessage; + ContextUtils.getAppSharedPreferences() + .edit() + .putLong(PREF_SYNC_ERROR_INFOBAR_SHOWN_AT_TIME, System.currentTimeMillis()) + .apply(); + recordHistogram(mType, SyncErrorInfoBarAction.SHOWN); + } + + @Override + public void createContent(InfoBarLayout layout) { + super.createContent(layout); + ImageView icon = layout.getIcon(); + icon.getLayoutParams().width = icon.getLayoutParams().height = + getApplicationContext().getResources().getDimensionPixelSize( + R.dimen.sync_error_infobar_icon_size); + if (!TextUtils.isEmpty(mDetailsMessage)) { + layout.getMessageLayout().addDescription(mDetailsMessage); + } + } + + /** + * Calls native side code to create an infobar. + */ + public static void maybeLaunchSyncErrorInfoBar(WebContents webContents) { + if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SYNC_ERROR_INFOBAR_ANDROID)) { + return; + } + @SyncErrorInfoBarType + int type = getSyncErrorInfoBarType(); + if (hasMinimalIntervalPassed() && type != SyncErrorInfoBarType.NOT_SHOWN) { + SyncErrorInfoBarJni.get().launch(webContents); + } + } + + private static boolean hasMinimalIntervalPassed() { + long lastShownTime = ContextUtils.getAppSharedPreferences().getLong( + PREF_SYNC_ERROR_INFOBAR_SHOWN_AT_TIME, 0); + return System.currentTimeMillis() - lastShownTime > MINIMAL_DURATION_BETWEEN_INFOBARS_MS; + } + + @SyncErrorInfoBarType + private static int getSyncErrorInfoBarType() { + @SyncError + int error = SyncPreferenceUtils.getSyncError(); + switch (error) { + case SyncError.AUTH_ERROR: + return SyncErrorInfoBarType.AUTH_ERROR; + case SyncError.PASSPHRASE_REQUIRED: + return SyncErrorInfoBarType.PASSPHRASE_REQUIRED; + case SyncError.SYNC_SETUP_INCOMPLETE: + return SyncErrorInfoBarType.SYNC_SETUP_INCOMPLETE; + default: + return SyncErrorInfoBarType.NOT_SHOWN; + } + } + + private static String getSyncErrorInfoBarHistogramName(@SyncErrorInfoBarType int type) { + assert type != SyncErrorInfoBarType.NOT_SHOWN; + String name = "Signin.SyncErrorInfoBar."; + switch (type) { + case SyncErrorInfoBarType.AUTH_ERROR: + name += "AuthError"; + break; + case SyncErrorInfoBarType.PASSPHRASE_REQUIRED: + name += "PassphraseRequired"; + break; + case SyncErrorInfoBarType.SYNC_SETUP_INCOMPLETE: + name += "SyncSetupIncomplete"; + break; + default: + assert false; + } + return name; + } + + private static void recordHistogram( + @SyncErrorInfoBarType int type, @SyncErrorInfoBarAction int action) { + String name = getSyncErrorInfoBarHistogramName(type); + RecordHistogram.recordEnumeratedHistogram(name, action, SyncErrorInfoBarAction.NUM_ENTRIES); + } + + @NativeMethods + interface Natives { + void launch(WebContents webContents); + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncAndServicesPreferences.java index 078369f..3b0e006 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncAndServicesPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncAndServicesPreferences.java
@@ -27,11 +27,9 @@ import android.view.View; import android.view.ViewGroup; -import androidx.annotation.IntDef; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import org.chromium.base.BuildInfo; import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.task.PostTask; @@ -56,9 +54,9 @@ import org.chromium.chrome.browser.settings.SettingsUtils; import org.chromium.chrome.browser.settings.password.PasswordUIView; import org.chromium.chrome.browser.settings.privacy.PrivacyPreferencesManager; +import org.chromium.chrome.browser.settings.sync.SyncPreferenceUtils.SyncError; import org.chromium.chrome.browser.signin.IdentityServicesProvider; import org.chromium.chrome.browser.signin.UnifiedConsentServiceBridge; -import org.chromium.chrome.browser.sync.GoogleServiceAuthError; import org.chromium.chrome.browser.sync.ProfileSyncService; import org.chromium.chrome.browser.sync.TrustedVaultClient; import org.chromium.chrome.browser.sync.ui.PassphraseDialogFragment; @@ -73,9 +71,6 @@ import org.chromium.ui.UiUtils; import org.chromium.ui.widget.ButtonCompat; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - /** * Settings fragment to enable Sync and other services that communicate with Google. */ @@ -117,22 +112,6 @@ @VisibleForTesting public static final String PREF_AUTOFILL_ASSISTANT = "autofill_assistant"; - @IntDef({SyncError.NO_ERROR, SyncError.ANDROID_SYNC_DISABLED, SyncError.AUTH_ERROR, - SyncError.PASSPHRASE_REQUIRED, SyncError.CLIENT_OUT_OF_DATE, - SyncError.SYNC_SETUP_INCOMPLETE, SyncError.OTHER_ERRORS}) - @Retention(RetentionPolicy.SOURCE) - private @interface SyncError { - int NO_ERROR = -1; - int ANDROID_SYNC_DISABLED = 0; - int AUTH_ERROR = 1; - int PASSPHRASE_REQUIRED = 2; - int TRUSTED_VAULT_KEY_REQUIRED_FOR_EVERYTHING = 3; - int TRUSTED_VAULT_KEY_REQUIRED_FOR_PASSWORDS = 4; - int CLIENT_OUT_OF_DATE = 5; - int SYNC_SETUP_INCOMPLETE = 6; - int OTHER_ERRORS = 128; - } - private final ProfileSyncService mProfileSyncService = ProfileSyncService.get(); private final PrefServiceBridge mPrefServiceBridge = PrefServiceBridge.getInstance(); private final PrivacyPreferencesManager mPrivacyPrefManager = @@ -473,46 +452,12 @@ @SyncError private int getSyncError() { - if (!AndroidSyncSettings.get().isMasterSyncEnabled()) { - return SyncError.ANDROID_SYNC_DISABLED; - } - - if (!AndroidSyncSettings.get().isChromeSyncEnabled()) { + @SyncError + int error = SyncPreferenceUtils.getSyncError(); + if (error == SyncError.SYNC_SETUP_INCOMPLETE && mIsFromSigninScreen) { return SyncError.NO_ERROR; } - - if (mProfileSyncService.getAuthError() - == GoogleServiceAuthError.State.INVALID_GAIA_CREDENTIALS) { - return SyncError.AUTH_ERROR; - } - - if (mProfileSyncService.requiresClientUpgrade()) { - return SyncError.CLIENT_OUT_OF_DATE; - } - - if (mProfileSyncService.getAuthError() != GoogleServiceAuthError.State.NONE - || mProfileSyncService.hasUnrecoverableError()) { - return SyncError.OTHER_ERRORS; - } - - if (mProfileSyncService.isEngineInitialized() - && mProfileSyncService.isPassphraseRequiredForPreferredDataTypes()) { - return SyncError.PASSPHRASE_REQUIRED; - } - - if (mProfileSyncService.isEngineInitialized() - && mProfileSyncService.isTrustedVaultKeyRequiredForPreferredDataTypes()) { - return mProfileSyncService.isEncryptEverythingEnabled() - ? SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_EVERYTHING - : SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_PASSWORDS; - } - - if (ChromeFeatureList.isEnabled(ChromeFeatureList.SYNC_MANUAL_START_ANDROID) - && wasSigninFlowInterrupted()) { - return SyncError.SYNC_SETUP_INCOMPLETE; - } - - return SyncError.NO_ERROR; + return error; } /** @@ -533,35 +478,6 @@ } } - /** - * Gets hint message to resolve sync error. - * @param error The sync error. - */ - private String getSyncErrorHint(@SyncError int error) { - switch (error) { - case SyncError.ANDROID_SYNC_DISABLED: - return getString(R.string.hint_android_sync_disabled); - case SyncError.AUTH_ERROR: - return getString(R.string.hint_sync_auth_error); - case SyncError.CLIENT_OUT_OF_DATE: - return getString( - R.string.hint_client_out_of_date, BuildInfo.getInstance().hostPackageLabel); - case SyncError.OTHER_ERRORS: - return getString(R.string.hint_other_sync_errors); - case SyncError.PASSPHRASE_REQUIRED: - return getString(R.string.hint_passphrase_required); - case SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_EVERYTHING: - case SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_PASSWORDS: - return getString(R.string.hint_sync_retrieve_keys); - case SyncError.SYNC_SETUP_INCOMPLETE: - assert ChromeFeatureList.isEnabled(ChromeFeatureList.SYNC_MANUAL_START_ANDROID); - return getString(R.string.hint_sync_settings_not_confirmed_description); - case SyncError.NO_ERROR: - default: - return null; - } - } - private void onSyncErrorCardClicked() { if (mCurrentSyncError == SyncError.NO_ERROR) { return; @@ -683,7 +599,8 @@ mSyncCategory.removePreference(mSyncErrorCard); } else { mSyncErrorCard.setTitle(getSyncErrorTitle(mCurrentSyncError)); - mSyncErrorCard.setSummary(getSyncErrorHint(mCurrentSyncError)); + mSyncErrorCard.setSummary( + SyncPreferenceUtils.getSyncErrorHint(getActivity(), mCurrentSyncError)); mSyncCategory.addPreference(mSyncErrorCard); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncPreferenceUtils.java index 9ff78f2e..e380b1b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncPreferenceUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/sync/SyncPreferenceUtils.java
@@ -13,6 +13,7 @@ import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; +import androidx.annotation.IntDef; import androidx.annotation.Nullable; import androidx.browser.customtabs.CustomTabsIntent; @@ -33,6 +34,9 @@ import org.chromium.components.sync.StopSource; import org.chromium.ui.UiUtils; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * Helper methods for sync preferences. */ @@ -40,6 +44,100 @@ private static final String DASHBOARD_URL = "https://www.google.com/settings/chrome/sync"; private static final String MY_ACCOUNT_URL = "https://myaccount.google.com/smartlink/home"; + @IntDef({SyncError.NO_ERROR, SyncError.ANDROID_SYNC_DISABLED, SyncError.AUTH_ERROR, + SyncError.PASSPHRASE_REQUIRED, SyncError.CLIENT_OUT_OF_DATE, + SyncError.SYNC_SETUP_INCOMPLETE, SyncError.OTHER_ERRORS}) + @Retention(RetentionPolicy.SOURCE) + public @interface SyncError { + int NO_ERROR = -1; + int ANDROID_SYNC_DISABLED = 0; + int AUTH_ERROR = 1; + int PASSPHRASE_REQUIRED = 2; + int TRUSTED_VAULT_KEY_REQUIRED_FOR_EVERYTHING = 3; + int TRUSTED_VAULT_KEY_REQUIRED_FOR_PASSWORDS = 4; + int CLIENT_OUT_OF_DATE = 5; + int SYNC_SETUP_INCOMPLETE = 6; + int OTHER_ERRORS = 128; + } + + /** + * Returns the type of the sync error. + */ + @SyncError + public static int getSyncError() { + if (!AndroidSyncSettings.get().isMasterSyncEnabled()) { + return SyncError.ANDROID_SYNC_DISABLED; + } + + if (!AndroidSyncSettings.get().isChromeSyncEnabled()) { + return SyncError.NO_ERROR; + } + + ProfileSyncService profileSyncService = ProfileSyncService.get(); + if (profileSyncService.getAuthError() + == GoogleServiceAuthError.State.INVALID_GAIA_CREDENTIALS) { + return SyncError.AUTH_ERROR; + } + + if (profileSyncService.requiresClientUpgrade()) { + return SyncError.CLIENT_OUT_OF_DATE; + } + + if (profileSyncService.getAuthError() != GoogleServiceAuthError.State.NONE + || profileSyncService.hasUnrecoverableError()) { + return SyncError.OTHER_ERRORS; + } + + if (profileSyncService.isEngineInitialized() + && profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { + return SyncError.PASSPHRASE_REQUIRED; + } + + if (profileSyncService.isEngineInitialized() + && profileSyncService.isTrustedVaultKeyRequiredForPreferredDataTypes()) { + return profileSyncService.isEncryptEverythingEnabled() + ? SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_EVERYTHING + : SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_PASSWORDS; + } + + if (ChromeFeatureList.isEnabled(ChromeFeatureList.SYNC_MANUAL_START_ANDROID) + && !profileSyncService.isFirstSetupComplete()) { + return SyncError.SYNC_SETUP_INCOMPLETE; + } + + return SyncError.NO_ERROR; + } + + /** + * Gets hint message to resolve sync error. + * @param context The application context. + * @param error The sync error. + */ + public static String getSyncErrorHint(Context context, @SyncError int error) { + switch (error) { + case SyncError.ANDROID_SYNC_DISABLED: + return context.getString(R.string.hint_android_sync_disabled); + case SyncError.AUTH_ERROR: + return context.getString(R.string.hint_sync_auth_error); + case SyncError.CLIENT_OUT_OF_DATE: + return context.getString( + R.string.hint_client_out_of_date, BuildInfo.getInstance().hostPackageLabel); + case SyncError.OTHER_ERRORS: + return context.getString(R.string.hint_other_sync_errors); + case SyncError.PASSPHRASE_REQUIRED: + return context.getString(R.string.hint_passphrase_required); + case SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_EVERYTHING: + case SyncError.TRUSTED_VAULT_KEY_REQUIRED_FOR_PASSWORDS: + return context.getString(R.string.hint_sync_retrieve_keys); + case SyncError.SYNC_SETUP_INCOMPLETE: + assert ChromeFeatureList.isEnabled(ChromeFeatureList.SYNC_MANUAL_START_ANDROID); + return context.getString(R.string.hint_sync_settings_not_confirmed_description); + case SyncError.NO_ERROR: + default: + return null; + } + } + /** * Return a short summary of the current sync status. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java index aba2a33..8c1762a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -1209,6 +1209,7 @@ : null; if (bounds != null) original.set(bounds); + mWebContents.setFocus(false); destroyWebContents(false /* do not delete native web contents */); hideNativePage(false, () -> { // Size of the new content is zero at this point. Set the view size in advance
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/portals/PortalsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/portals/PortalsTest.java index e28861d..604eb7eb 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/portals/PortalsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/portals/PortalsTest.java
@@ -199,6 +199,24 @@ JavaScriptUtils.executeJavaScriptAndWaitForResult(tab.getWebContents(), "removePortal();"); } + @Test + @MediumTest + @Feature({"Portals"}) + public void testFocusTransfersAcrossActivation() throws Exception { + mActivityTestRule.startMainActivityWithURL( + mTestServer.getURL("/chrome/test/data/android/portals/focus-transfer.html")); + final Tab tab = mActivityTestRule.getActivity().getActivityTab(); + executeScriptAndAwaitSwap(tab, "activatePortal()"); + JavaScriptUtils.runJavascriptWithAsyncResult(tab.getWebContents(), + "focusPromise.then(() => domAutomationController.send(true));"); + Assert.assertEquals("true", + JavaScriptUtils.runJavascriptWithAsyncResult( + tab.getWebContents(), "windowBlurred()")); + Assert.assertEquals("true", + JavaScriptUtils.runJavascriptWithAsyncResult( + tab.getWebContents(), "buttonBlurred()")); + } + /** * Tests that a drag that started in the predecessor page causes a scroll in the activated page * after a scroll triggered activation.
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index ec722500..c657e24 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -3327,6 +3327,19 @@ <message name="IDS_SETTINGS_SITE_SETTINGS_ADS" desc="Label for the ads site settings."> Ads </message> + <!-- TODO(crbug.com/1041009): Finalize WebXr Permissions strings --> + <message name="IDS_SETTINGS_SITE_SETTINGS_AR" desc="Label for the AR site settings."> + Augmented Reality + </message> + <message name="IDS_SETTINGS_SITE_SETTINGS_AR_ASK" desc="The Ask label for the AR feature in site settings."> + Ask when a site wants to access your camera position or map your room + </message> + <message name="IDS_SETTINGS_SITE_SETTINGS_AR_ASK_RECOMMENDED" desc="The Ask label for the AR feature in site settings (with the 'recommended' suffix)."> + Ask when a site wants to access your camera position or map your room (recommended) + </message> + <message name="IDS_SETTINGS_SITE_SETTINGS_AR_BLOCK" desc="The Ask label for the AR feature in site settings (with the 'recommended' suffix)."> + Do not allow sites to access your camera position or map your room + </message> <message name="IDS_SETTINGS_SITE_SETTINGS_AUTOMATIC_DOWNLOADS" desc="Label for the automatic downloads site settings."> Automatic downloads </message> @@ -3426,6 +3439,19 @@ <message name="IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT_ENABLE" desc="Label for the toggle enabling protected content."> Allow sites to play protected content (recommended) </message> + <!-- TODO(crbug.com/1041009): Finalize WebXr Permissions strings --> + <message name="IDS_SETTINGS_SITE_SETTINGS_VR" desc="Label for the VR site settings."> + Virtual Reality + </message> + <message name="IDS_SETTINGS_SITE_SETTINGS_VR_ASK" desc="The Ask label for the VR feature in site settings."> + Ask when a site wants to access your virtual reality devices/data + </message> + <message name="IDS_SETTINGS_SITE_SETTINGS_VR_ASK_RECOMMENDED" desc="The Ask label for the VR feature in site settings (with the 'recommended' suffix)."> + Ask when a site wants to access your virtual reality devices/data (recommended) + </message> + <message name="IDS_SETTINGS_SITE_SETTINGS_VR_BLOCK" desc="The Ask label for the VR feature in site settings (with the 'recommended' suffix)."> + Do not allow sites to access your virtual reality devices/data + </message> <if expr="chromeos or is_win"> <message name="IDS_SETTINGS_SITE_SETTINGS_PROTECTED_CONTENT_IDENTIFIERS_EXPLANATION" desc="Text that is displayed on the Protected Content section of Content Settings. This text explains that enabling protected content may require using a uniquely identifiable machine identifier."> Some content services use unique identifiers for the purposes of authorizing access to protected content
diff --git a/chrome/app_shim/BUILD.gn b/chrome/app_shim/BUILD.gn index 41d666bb..ad45e38d 100644 --- a/chrome/app_shim/BUILD.gn +++ b/chrome/app_shim/BUILD.gn
@@ -57,21 +57,15 @@ bundle_data("app_mode_loader_plist_bundle_data") { sources = get_target_outputs(":app_mode_loader_plist") - outputs = [ - "{{bundle_resources_dir}}/app_mode-Info.plist", - ] + outputs = [ "{{bundle_resources_dir}}/app_mode-Info.plist" ] - public_deps = [ - ":app_mode_loader_plist", - ] + public_deps = [ ":app_mode_loader_plist" ] } executable("app_mode_loader") { configs += [ "//build/config/compiler:wexit_time_destructors" ] - sources = [ - "app_mode_loader_mac.mm", - ] + sources = [ "app_mode_loader_mac.mm" ] if (is_component_build) { # Loaders are installed to ~/Applications. In a component build, include
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 06aad61..f29a6b4 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1772,6 +1772,8 @@ "sync/sessions/sync_sessions_web_contents_router_factory.h", "sync/sync_encryption_keys_tab_helper.cc", "sync/sync_encryption_keys_tab_helper.h", + "sync/sync_error_infobar_delegate_android.cc", + "sync/sync_error_infobar_delegate_android.h", "sync/sync_startup_tracker.cc", "sync/sync_startup_tracker.h", "sync/trusted_vault_client_android.cc", @@ -3305,6 +3307,10 @@ "obsolete_system/obsolete_system_win.cc", "page_load_metrics/observers/session_restore_page_load_metrics_observer.cc", "page_load_metrics/observers/session_restore_page_load_metrics_observer.h", + "performance_manager/graph/policies/urgent_page_discarding_policy.cc", + "performance_manager/graph/policies/urgent_page_discarding_policy.h", + "performance_manager/mechanisms/page_discarder.cc", + "performance_manager/mechanisms/page_discarder.h", "performance_manager/persistence/site_data/exponential_moving_average.cc", "performance_manager/persistence/site_data/exponential_moving_average.h", "performance_manager/persistence/site_data/feature_usage.h",
diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc index 2e3978d..f5e7175c 100644 --- a/chrome/browser/chromeos/login/wizard_controller.cc +++ b/chrome/browser/chromeos/login/wizard_controller.cc
@@ -771,18 +771,6 @@ VLOG(1) << "SkipToLoginForTesting."; StartupUtils::MarkEulaAccepted(); - // Enable metrics and crash collection, and verify that they're enabled. - ChangeMetricsReportingStateWithReply( - true, - base::BindRepeating(&WizardController::OnChangedMetricsReportingState, - weak_factory_.GetWeakPtr())); - if (!StatsReportingController::Get()->IsEnabled()) { - LOG(ERROR) << "StatsReportingController reports collection is NOT enabled"; - } - if (!crash_reporter::GetUploadsEnabled()) { - LOG(ERROR) << "crash_reporter reports that crash uploads NOT enabled"; - } - PerformPostEulaActions(); OnDeviceDisabledChecked(false /* device_disabled */); }
diff --git a/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.cc b/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.cc index 575ee4d..b92b38f 100644 --- a/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.cc +++ b/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.cc
@@ -4,24 +4,9 @@ #include "chrome/browser/chromeos/power/smart_charging/smart_charging_manager.h" -#include <memory> - -#include "base/bind.h" -#include "base/files/file_path.h" -#include "base/files/file_util.h" -#include "base/files/important_file_writer.h" -#include "base/location.h" -#include "base/task/post_task.h" -#include "base/task/task_traits.h" -#include "base/task_runner_util.h" -#include "base/threading/scoped_blocking_call.h" #include "chrome/browser/chromeos/power/ml/recent_events_counter.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/profiles/profile_manager.h" #include "chromeos/constants/devicetype.h" #include "chromeos/dbus/power_manager/backlight.pb.h" -#include "components/session_manager/core/session_manager.h" -#include "components/session_manager/core/session_manager_observer.h" #include "components/viz/host/host_frame_sink_manager.h" #include "services/metrics/public/cpp/metrics_utils.h" #include "ui/aura/env.h" @@ -31,8 +16,6 @@ namespace power { namespace { -constexpr int kBucketSize = 15; - // Interval at which data should be logged. constexpr base::TimeDelta kLoggingInterval = base::TimeDelta::FromMinutes(30); @@ -44,89 +27,11 @@ // Granularity of input events is per minute. constexpr int kNumUserInputEventsBuckets = kUserActivityDuration / base::TimeDelta::FromMinutes(1); - -constexpr char kSavedFileName[] = "past_charging_events.pb"; -constexpr char kSavedDir[] = "smartcharging"; - -// Given a proto and file path, writes to disk and logs the error(if any). -void WriteProtoToDisk(const PastChargingEvents& proto, - const base::FilePath& file_path) { - std::string proto_string; - if (!proto.SerializeToString(&proto_string)) { - // TODO(crbug.com/1028853): adds a UMA log here. - return; - } - bool write_result; - { - base::ScopedBlockingCall scoped_blocking_call( - FROM_HERE, base::BlockingType::MAY_BLOCK); - write_result = base::ImportantFileWriter::WriteFileAtomically( - file_path, proto_string.data(), "SmartCharging"); - } - - if (!write_result) { - // TODO(crbug.com/1028853): adds a UMA log here. - return; - } - // TODO(crbug.com/1028853): adds a UMA log here. -} - -// Reads a proto from a file path. -std::unique_ptr<PastChargingEvents> ReadProto(const base::FilePath& file_path) { - base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, - base::BlockingType::MAY_BLOCK); - std::string proto_str; - if (!base::ReadFileToString(file_path, &proto_str)) { - // TODO(crbug.com/1028853): adds a UMA log here. - return nullptr; - } - - auto proto = std::make_unique<PastChargingEvents>(); - if (!proto->ParseFromString(proto_str)) { - // TODO(crbug.com/1028853): adds a UMA log here. - return nullptr; - } - // TODO(crbug.com/1028853): adds a UMA log here. - return proto; -} - -// If |create_new_path| is true, try to create new path and return true if -// success. -// If |create_new_path| is false, try to get the path and return true if -// sucesss. -bool GetPathSuccess(base::FilePath* file_path, bool create_new_path) { - if (!ProfileManager::GetPrimaryUserProfile()) { - // TODO(crbug.com/1028853): adds a UMA log here. - return false; - } - - const base::FilePath path = - ProfileManager::GetPrimaryUserProfile()->GetPath().AppendASCII(kSavedDir); - if (create_new_path) { - if (!base::DirectoryExists(path) && !base::CreateDirectory(path)) { - // TODO(crbug.com/1028853): adds a UMA log here. - return false; - } - } else if (!base::PathExists(path.AppendASCII(kSavedFileName))) { - // TODO(crbug.com/1028853): adds a UMA log here. - return false; - } - // TODO(crbug.com/1028853): adds a UMA log here. - *file_path = path.AppendASCII(kSavedFileName); - return true; -} - -// Checks if an event is a halt (shutdown/suspend) event. -bool IsHaltEvent(const PastEvent& event) { - return event.reason() == UserChargingEvent::Event::SHUTDOWN || - event.reason() == UserChargingEvent::Event::SUSPEND; -} } // namespace SmartChargingManager::SmartChargingManager( ui::UserActivityDetector* detector, mojo::PendingReceiver<viz::mojom::VideoDetectorObserver> receiver, - session_manager::SessionManager* session_manager, std::unique_ptr<base::RepeatingTimer> periodic_timer) : periodic_timer_(std::move(periodic_timer)), receiver_(this, std::move(receiver)), @@ -145,13 +50,8 @@ ukm_logger_(std::make_unique<SmartChargingUkmLogger>()) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(detector); - DCHECK(session_manager); user_activity_observer_.Add(detector); power_manager_client_observer_.Add(chromeos::PowerManagerClient::Get()); - session_manager_observer_.Add(session_manager); - blocking_task_runner_ = base::CreateSequencedTaskRunner( - {base::ThreadPool(), base::TaskPriority::BEST_EFFORT, base::MayBlock(), - base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}); } SmartChargingManager::~SmartChargingManager() = default; @@ -170,7 +70,6 @@ std::unique_ptr<SmartChargingManager> screen_brightness_manager = std::make_unique<SmartChargingManager>( detector, video_observer.InitWithNewPipeAndPassReceiver(), - session_manager::SessionManager::Get(), std::make_unique<base::RepeatingTimer>()); aura::Env::GetInstance() @@ -302,17 +201,6 @@ is_video_playing_ = false; } -void SmartChargingManager::OnUserSessionStarted(bool /* is_primary_user */) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - // The first sign-in user is the primary user, hence if |OnUserSessionStarted| - // is called, the primary user profile should have been created. We will - // ignore |is_primary_user|. - if (loaded_from_disk_) - return; - - MaybeLoadFromDisk(); -} - void SmartChargingManager::PopulateUserChargingEventProto( UserChargingEvent* proto) { auto& features = *proto->mutable_features(); @@ -341,9 +229,8 @@ base::Time::Exploded now_exploded; now.LocalExplode(&now_exploded); - features.set_time_of_the_day(ukm::GetLinearBucketMin( - static_cast<int64_t>(now_exploded.hour * 60 + now_exploded.minute), - kBucketSize)); + features.set_time_of_the_day(ukm::GetExponentialBucketMinForCounts1000( + now_exploded.hour * 60 + now_exploded.minute)); features.set_day_of_week(static_cast<UserChargingEvent::Features::DayOfWeek>( now_exploded.day_of_week)); features.set_day_of_month(now_exploded.day_of_month); @@ -360,41 +247,10 @@ } else { features.set_device_mode(UserChargingEvent::Features::UNKNOWN_MODE); } - - // Last charge related features. This logic relies on the fact that - // there will be at most one halt event because of |UpdatePastEvents()|. - bool halt_from_last_charge = false; - for (const auto& event : past_events_) { - if (IsHaltEvent(event)) { - halt_from_last_charge = true; - break; - } - } - features.set_halt_from_last_charge(halt_from_last_charge); - - PastEvent last_charge_plugged_in; - PastEvent last_charge_unplugged; - std::tie(last_charge_plugged_in, last_charge_unplugged) = - GetLastChargeEvents(); - - if (!last_charge_plugged_in.has_time() || !last_charge_unplugged.has_time()) - return; - features.set_time_since_last_charge(ukm::GetExponentialBucketMinForCounts1000( - now.ToDeltaSinceWindowsEpoch().InMinutes() - - last_charge_unplugged.time())); - features.set_duration_of_last_charge( - ukm::GetExponentialBucketMinForCounts1000(last_charge_unplugged.time() - - last_charge_plugged_in.time())); - features.set_battery_percentage_before_last_charge( - last_charge_plugged_in.battery_percent()); - features.set_battery_percentage_of_last_charge( - last_charge_unplugged.battery_percent()); - features.set_timezone_difference_from_last_charge( - (now.UTCMidnight() - now.LocalMidnight()).InHours() - - last_charge_unplugged.timezone()); } -void SmartChargingManager::LogEvent(const EventReason& reason) { +void SmartChargingManager::LogEvent( + const UserChargingEvent::Event::Reason& reason) { UserChargingEvent proto; proto.mutable_event()->set_event_id(++event_id_); proto.mutable_event()->set_reason(reason); @@ -405,12 +261,6 @@ user_charging_event_for_test_ = proto; ukm_logger_->LogEvent(proto); - - AddPastEvent(reason); - // Calls |UpdatePastEvents()| after |AddPastEvent()| to keep the number of - // saved past events to be minimum. - UpdatePastEvents(); - MaybeSaveToDisk(); } void SmartChargingManager::OnTimerFired() { @@ -456,143 +306,5 @@ return total_time; } -void SmartChargingManager::MaybeLoadFromDisk() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - base::FilePath file_path; - if (GetPathSuccess(&file_path, false /*create_new_path*/)) { - LoadFromDisk(file_path); - loaded_from_disk_ = true; - } -} - -void SmartChargingManager::MaybeSaveToDisk() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - base::FilePath file_path; - if (GetPathSuccess(&file_path, true /*create_new_path*/)) - SaveToDisk(file_path); -} - -void SmartChargingManager::OnLoadProtoFromDiskComplete( - std::unique_ptr<PastChargingEvents> proto) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!proto) { - return; - } - - for (const auto& event : proto.get()->events()) { - past_events_.emplace_back(event); - } -} - -void SmartChargingManager::LoadFromDisk(const base::FilePath& file_path) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - - base::PostTaskAndReplyWithResult( - blocking_task_runner_.get(), FROM_HERE, - base::BindOnce(&ReadProto, file_path), - base::BindOnce(&SmartChargingManager::OnLoadProtoFromDiskComplete, - weak_ptr_factory_.GetWeakPtr())); -} - -void SmartChargingManager::SaveToDisk(const base::FilePath& file_path) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - PastChargingEvents proto; - for (const auto& event : past_events_) { - *proto.add_events() = event; - } - blocking_task_runner_->PostTask( - FROM_HERE, base::BindOnce(&WriteProtoToDisk, proto, file_path)); -} - -void SmartChargingManager::AddPastEvent(const EventReason& reason) { - // Since we use |past_events_| to calculate last charge information, we don't - // need to save if the reason is PERIODIC_LOG. - if (reason == UserChargingEvent::Event::PERIODIC_LOG) - return; - PastEvent new_event; - const base::Time now = base::Time::Now(); - new_event.set_time(now.ToDeltaSinceWindowsEpoch().InMinutes()); - if (battery_percent_.has_value()) - new_event.set_battery_percent(static_cast<int>(battery_percent_.value())); - new_event.set_timezone((now.UTCMidnight() - now.LocalMidnight()).InHours()); - new_event.set_reason(reason); - past_events_.emplace_back(new_event); -} - -void SmartChargingManager::UpdatePastEvents() { - PastEvent last_charge_plugged_in; - PastEvent last_charge_unplugged; - PastEvent new_plugged_in; - PastEvent new_halt; - - std::tie(last_charge_plugged_in, last_charge_unplugged) = - GetLastChargeEvents(); - if (last_charge_unplugged.has_time()) { - // Gets the unplugged and halt(shutdown/suspend) events after the unplug (if - // any). - for (const auto& event : past_events_) { - if (event.time() > last_charge_unplugged.time()) { - if (event.reason() == UserChargingEvent::Event::CHARGER_PLUGGED_IN) { - new_plugged_in = event; - } else if (IsHaltEvent(event)) { - new_halt = event; - } - } - } - } else { - // Gets the last halt and plugged in event. - for (const auto& event : past_events_) { - if (event.reason() == UserChargingEvent::Event::CHARGER_PLUGGED_IN) { - new_plugged_in = event; - } - if (IsHaltEvent(event)) { - new_halt = event; - } - } - } - - // Removes everything else. - past_events_.clear(); - - // Adds useful events back. - if (last_charge_plugged_in.has_time()) - past_events_.emplace_back(last_charge_plugged_in); - if (last_charge_unplugged.has_time()) - past_events_.emplace_back(last_charge_unplugged); - if (new_plugged_in.has_time()) - past_events_.emplace_back(new_plugged_in); - if (new_halt.has_time()) - past_events_.emplace_back(new_halt); -} - -// Returns the last pair of plug/unplug events. If can't find the last pair, -// return a pair of empty events. -std::tuple<PastEvent, PastEvent> SmartChargingManager::GetLastChargeEvents() { - PastEvent plugged_in; - PastEvent unplugged; - PastEvent temp_plugged_in; - // There could be multiple events with CHARGER_PLUGGED_IN and/or - // CHARGER_UNPLUGGED. This function relies on the fact that all events are - // sorted by time. - for (const auto& event : past_events_) { - if (event.has_reason()) { - if (event.reason() == UserChargingEvent::Event::CHARGER_PLUGGED_IN) { - temp_plugged_in = event; - } else if (event.reason() == - UserChargingEvent::Event::CHARGER_UNPLUGGED) { - if (!temp_plugged_in.has_time()) - continue; - // Updates the pair of results. - if (!plugged_in.has_time() || - temp_plugged_in.time() != plugged_in.time()) { - plugged_in = temp_plugged_in; - unplugged = event; - } - } - } - } - return std::make_tuple(plugged_in, unplugged); -} - } // namespace power } // namespace chromeos
diff --git a/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.h b/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.h index 95cef881..52ac00f 100644 --- a/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.h +++ b/chrome/browser/chromeos/power/smart_charging/smart_charging_manager.h
@@ -5,7 +5,6 @@ #ifndef CHROME_BROWSER_CHROMEOS_POWER_SMART_CHARGING_SMART_CHARGING_MANAGER_H_ #define CHROME_BROWSER_CHROMEOS_POWER_SMART_CHARGING_SMART_CHARGING_MANAGER_H_ -#include "base/files/file_path.h" #include "base/gtest_prod_util.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" @@ -17,8 +16,6 @@ #include "chrome/browser/chromeos/power/smart_charging/smart_charging_ukm_logger.h" #include "chrome/browser/chromeos/power/smart_charging/user_charging_event.pb.h" #include "chromeos/dbus/power/power_manager_client.h" -#include "components/session_manager/core/session_manager.h" -#include "components/session_manager/core/session_manager_observer.h" #include "mojo/public/cpp/bindings/receiver.h" #include "services/viz/public/mojom/compositing/video_detector_observer.mojom.h" #include "ui/base/user_activity/user_activity_detector.h" @@ -30,21 +27,16 @@ class RecentEventsCounter; } // namespace ml -using PastEvent = PastChargingEvents::Event; -using EventReason = UserChargingEvent::Event::Reason; - // SmartChargingManager logs battery percentage and other features related to // user charging events. It is currently used to log data and will be // extended to do inference in the future. class SmartChargingManager : public ui::UserActivityObserver, public PowerManagerClient::Observer, - public viz::mojom::VideoDetectorObserver, - public session_manager::SessionManagerObserver { + public viz::mojom::VideoDetectorObserver { public: SmartChargingManager( ui::UserActivityDetector* detector, mojo::PendingReceiver<viz::mojom::VideoDetectorObserver> receiver, - session_manager::SessionManager* session_manager, std::unique_ptr<base::RepeatingTimer> periodic_timer); ~SmartChargingManager() override; SmartChargingManager(const SmartChargingManager&) = delete; @@ -81,9 +73,6 @@ void OnVideoActivityStarted() override; void OnVideoActivityEnded() override; - // session_manager::SessionManagerObserver overrides: - void OnUserSessionStarted(bool is_primary_user) override; - private: friend class SmartChargingManagerTest; @@ -91,7 +80,7 @@ void PopulateUserChargingEventProto(UserChargingEvent* proto); // Log the event. - void LogEvent(const EventReason& reason); + void LogEvent(const UserChargingEvent::Event::Reason& reason); // Called when the periodic timer triggers. void OnTimerFired(); @@ -108,47 +97,16 @@ // minutes). base::TimeDelta DurationRecentVideoPlaying(); - // Checks if the file for current user exists, if yes loads from disk. - void MaybeLoadFromDisk(); - - // Checks if we can create a path on disk to save the data, if yes saves to - // disk. - void MaybeSaveToDisk(); - - // Loads data from disk given a file path. - void LoadFromDisk(const base::FilePath& file_path); - - // Saves data to disk given a file path. - void SaveToDisk(const base::FilePath& file_path); - - // Calls after SaveToDisk completes. - void OnLoadProtoFromDiskComplete(std::unique_ptr<PastChargingEvents> proto); - - // Adds a past events given it's reason to |past_events_|. - void AddPastEvent(const EventReason& reason); - - // Updates and deletes events. - void UpdatePastEvents(); - - // Gets the "plug in" and "unplug" events of the last charge. - std::tuple<PastEvent, PastEvent> GetLastChargeEvents(); - ScopedObserver<ui::UserActivityDetector, ui::UserActivityObserver> user_activity_observer_{this}; ScopedObserver<chromeos::PowerManagerClient, chromeos::PowerManagerClient::Observer> power_manager_client_observer_{this}; - ScopedObserver<session_manager::SessionManager, - session_manager::SessionManagerObserver> - session_manager_observer_{this}; // Timer to trigger periodically for logging data. const std::unique_ptr<base::RepeatingTimer> periodic_timer_; - // Checks if data is loaded from disk yet. - bool loaded_from_disk_ = false; - // Helper to return TimeSinceBoot. ml::BootClock boot_clock_; int event_id_ = -1; @@ -176,7 +134,6 @@ // TODO(crbug.com/1028853): This is for testing only. Need to remove when ukm // logger is available. UserChargingEvent user_charging_event_for_test_; - std::vector<PastEvent> past_events_; base::Optional<double> battery_percent_; base::Optional<double> screen_brightness_percent_; @@ -186,7 +143,6 @@ const std::unique_ptr<SmartChargingUkmLogger> ukm_logger_; SEQUENCE_CHECKER(sequence_checker_); - scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; base::WeakPtrFactory<SmartChargingManager> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/chromeos/power/smart_charging/smart_charging_manager_unittest.cc b/chrome/browser/chromeos/power/smart_charging/smart_charging_manager_unittest.cc index da3073d..cebebbc9 100644 --- a/chrome/browser/chromeos/power/smart_charging/smart_charging_manager_unittest.cc +++ b/chrome/browser/chromeos/power/smart_charging/smart_charging_manager_unittest.cc
@@ -4,32 +4,15 @@ #include "chrome/browser/chromeos/power/smart_charging/smart_charging_manager.h" -#include "base/files/file_util.h" -#include "base/files/scoped_temp_dir.h" #include "base/test/test_mock_time_task_runner.h" #include "base/time/clock.h" #include "base/timer/timer.h" -#include "chrome/browser/chromeos/power/smart_charging/user_charging_event.pb.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chromeos/dbus/power/fake_power_manager_client.h" -#include "components/session_manager/core/session_manager.h" #include "ui/events/keycodes/dom/dom_code.h" namespace chromeos { namespace power { -namespace { -PastEvent CreateEvent(int time, - int battery_percent, - int timezone, - const EventReason& reason) { - PastEvent event; - event.set_time(time); - event.set_battery_percent(battery_percent); - event.set_timezone(timezone); - event.set_reason(reason); - return event; -} -} // namespace class SmartChargingManagerTest : public ChromeRenderViewHostTestHarness { public: @@ -53,7 +36,7 @@ task_environment()->GetMainThreadTaskRunner()); smart_charging_manager_ = std::make_unique<SmartChargingManager>( &user_activity_detector_, observer.InitWithNewPipeAndPassReceiver(), - &session_manager_, std::move(periodic_timer)); + std::move(periodic_timer)); } void TearDown() override { @@ -129,40 +112,6 @@ return smart_charging_manager_->DurationRecentVideoPlaying(); } - std::tuple<PastEvent, PastEvent> GetLastChargeEvents() { - return smart_charging_manager_->GetLastChargeEvents(); - } - - void UpdatePastEvents() { smart_charging_manager_->UpdatePastEvents(); } - - std::vector<PastEvent> GetPastEvents() { - return smart_charging_manager_->past_events_; - } - - void SetBatteryPercentage(double battery_percent) { - smart_charging_manager_->battery_percent_ = battery_percent; - } - - void AddEvent(const PastEvent& event) { - smart_charging_manager_->past_events_.emplace_back(event); - } - - void AddPastEvent(const EventReason& reason) { - smart_charging_manager_->AddPastEvent(reason); - } - - void SaveToDisk(const base::FilePath& file_path) { - smart_charging_manager_->SaveToDisk(file_path); - } - - void LoadFromDisk(const base::FilePath& file_path) { - smart_charging_manager_->LoadFromDisk(file_path); - } - - void ClearPastEvents() { smart_charging_manager_->past_events_.clear(); } - - void Wait() { task_environment()->RunUntilIdle(); } - const gfx::Point kEventLocation = gfx::Point(90, 90); const ui::MouseEvent kMouseEvent = ui::MouseEvent(ui::ET_MOUSE_MOVED, kEventLocation, @@ -173,7 +122,6 @@ private: ui::UserActivityDetector user_activity_detector_; - session_manager::SessionManager session_manager_; std::unique_ptr<SmartChargingManager> smart_charging_manager_; }; @@ -333,184 +281,5 @@ EXPECT_EQ(GetUserChargingEvent().features().device_mode(), UserChargingEvent::Features::LAPTOP_MODE); } - -TEST_F(SmartChargingManagerTest, GetLastChargeEventsNoLastCharges) { - AddEvent(CreateEvent(1, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(2, 20, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(3, 30, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent( - CreateEvent(4, 40, 11, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(5, 50, 11, UserChargingEvent::Event::SHUTDOWN)); - AddEvent(CreateEvent(6, 60, 11, UserChargingEvent::Event::PERIODIC_LOG)); - - PastEvent plugged_in; - PastEvent unplugged; - std::tie(plugged_in, unplugged) = GetLastChargeEvents(); - EXPECT_FALSE(plugged_in.has_time()); - EXPECT_FALSE(unplugged.has_time()); -} - -TEST_F(SmartChargingManagerTest, GetLastChargeEventsComplex) { - AddEvent(CreateEvent(1, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(2, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(3, 20, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(4, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(5, 30, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent( - CreateEvent(6, 20, 11, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(7, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent( - CreateEvent(8, 30, 11, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(9, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(10, 20, 1, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(11, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(12, 20, 1, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(13, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent( - CreateEvent(14, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent( - CreateEvent(15, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(16, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(17, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(18, 20, 1, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(19, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent( - CreateEvent(20, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(21, 40, 1, UserChargingEvent::Event::SHUTDOWN)); - AddEvent( - CreateEvent(22, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - - PastEvent plugged_in; - PastEvent unplugged; - std::tie(plugged_in, unplugged) = GetLastChargeEvents(); - EXPECT_TRUE(plugged_in.has_time()); - EXPECT_TRUE(unplugged.has_time()); - EXPECT_EQ(plugged_in.time(), 15); - EXPECT_EQ(unplugged.time(), 18); -} - -TEST_F(SmartChargingManagerTest, UpdatePastEventsNoLastCharge) { - AddEvent(CreateEvent(1, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(2, 20, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(3, 30, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent( - CreateEvent(4, 40, 11, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(5, 50, 11, UserChargingEvent::Event::SHUTDOWN)); - AddEvent(CreateEvent(6, 60, 11, UserChargingEvent::Event::PERIODIC_LOG)); - - UpdatePastEvents(); - - const std::vector<PastEvent> events = GetPastEvents(); - EXPECT_EQ(events.size(), static_cast<unsigned long>(2)); - EXPECT_EQ(events[0].time(), 4); - EXPECT_EQ(events[1].time(), 5); -} - -TEST_F(SmartChargingManagerTest, UpdatePastEventsComplex) { - AddEvent(CreateEvent(1, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(2, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(3, 20, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(4, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(5, 30, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent( - CreateEvent(6, 20, 11, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(7, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent( - CreateEvent(8, 30, 11, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(9, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(10, 20, 1, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(11, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(12, 20, 1, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(13, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent( - CreateEvent(14, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent( - CreateEvent(15, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(16, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(17, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(18, 20, 1, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(19, 10, 1, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent( - CreateEvent(20, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - AddEvent(CreateEvent(21, 40, 1, UserChargingEvent::Event::SHUTDOWN)); - AddEvent( - CreateEvent(22, 40, 1, UserChargingEvent::Event::CHARGER_PLUGGED_IN)); - - UpdatePastEvents(); - - const std::vector<PastEvent> events = GetPastEvents(); - EXPECT_EQ(events.size(), static_cast<unsigned long>(4)); - EXPECT_EQ(events[0].time(), 15); - EXPECT_EQ(events[1].time(), 18); - EXPECT_EQ(events[2].time(), 22); - EXPECT_EQ(events[3].time(), 21); -} - -TEST_F(SmartChargingManagerTest, AddPastEventTest) { - SetBatteryPercentage(15.5); - AddPastEvent(UserChargingEvent::Event::CHARGER_PLUGGED_IN); - SetBatteryPercentage(25.7); - AddPastEvent(UserChargingEvent::Event::CHARGER_UNPLUGGED); - - const std::vector<PastEvent> events = GetPastEvents(); - EXPECT_EQ(events.size(), static_cast<unsigned long>(2)); - EXPECT_EQ(events[0].battery_percent(), 15); - EXPECT_EQ(events[0].reason(), UserChargingEvent::Event::CHARGER_PLUGGED_IN); - EXPECT_EQ(events[1].battery_percent(), 25); - EXPECT_EQ(events[1].reason(), UserChargingEvent::Event::CHARGER_UNPLUGGED); -} - -TEST_F(SmartChargingManagerTest, LoadAndSave) { - AddEvent(CreateEvent(1, 10, 11, UserChargingEvent::Event::PERIODIC_LOG)); - AddEvent(CreateEvent(2, 20, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - AddEvent(CreateEvent(3, 30, 11, UserChargingEvent::Event::CHARGER_UNPLUGGED)); - - EXPECT_EQ(GetPastEvents().size(), static_cast<unsigned long>(3)); - - // Save to disk - base::ScopedTempDir temp_dir; - ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); - const base::FilePath file_path = - temp_dir.GetPath().AppendASCII("smartcharging.txt"); - SaveToDisk(file_path); - Wait(); - ASSERT_TRUE(base::PathExists(file_path)); - - // Clear memory - ClearPastEvents(); - - // Now there is no past event on memory - EXPECT_EQ(GetPastEvents().size(), static_cast<unsigned long>(0)); - - // Load from disk - LoadFromDisk(file_path); - Wait(); - - // Check the result - const std::vector<PastEvent> events = GetPastEvents(); - EXPECT_EQ(events.size(), static_cast<unsigned long>(3)); - EXPECT_EQ(events[0].time(), 1); - EXPECT_EQ(events[1].time(), 2); - EXPECT_EQ(events[2].time(), 3); -} - -TEST_F(SmartChargingManagerTest, LastChargeRelatedFeatures) { - ReportPowerChangeEvent(power_manager::PowerSupplyProperties::AC, 23.0f); - FastForwardTimeBySecs(3600); - ReportPowerChangeEvent(power_manager::PowerSupplyProperties::DISCONNECTED, - 80.0f); - FastForwardTimeBySecs(600); - ReportShutdownEvent(); - FastForwardTimeBySecs(1800); - ReportPowerChangeEvent(power_manager::PowerSupplyProperties::AC, 75.0f); - - const auto features = GetUserChargingEvent().features(); - - EXPECT_TRUE(features.halt_from_last_charge()); - EXPECT_EQ(features.time_since_last_charge(), 38); - EXPECT_EQ(features.duration_of_last_charge(), 58); - EXPECT_EQ(features.battery_percentage_before_last_charge(), 23); - EXPECT_EQ(features.battery_percentage_of_last_charge(), 80); -} } // namespace power } // namespace chromeos
diff --git a/chrome/browser/chromeos/power/smart_charging/user_charging_event.proto b/chrome/browser/chromeos/power/smart_charging/user_charging_event.proto index 6a38a98..2e112a6 100644 --- a/chrome/browser/chromeos/power/smart_charging/user_charging_event.proto +++ b/chrome/browser/chromeos/power/smart_charging/user_charging_event.proto
@@ -117,21 +117,3 @@ optional Features features = 1; optional Event event = 2; } - -// PastChargingEvents contain a list of events that have information about "past -// charging events". It will only store the plug/unplug pair of the last charge -// and a recent plug/halt event if any. -message PastChargingEvents { - message Event { - // Time of the event in minutes since Windows epoch. - optional int32 time = 1; - // Battery percentage of the device. - optional int32 battery_percent = 2; - // Timezone of the device. - optional int32 timezone = 3; - // Reason for the event. - optional UserChargingEvent.Event.Reason reason = 4; - } - // A list containing past charging events. - repeated Event events = 1; -}
diff --git a/chrome/browser/chromeos/profiles/profile_helper.cc b/chrome/browser/chromeos/profiles/profile_helper.cc index 9148d82..44722e8c 100644 --- a/chrome/browser/chromeos/profiles/profile_helper.cc +++ b/chrome/browser/chromeos/profiles/profile_helper.cc
@@ -416,7 +416,8 @@ ProfileManager* profile_manager = g_browser_process->profile_manager(); // Check if signin profile was loaded. - if (!profile_manager->GetProfileByPath(GetSigninProfileDir())) { + if (!profile_manager || + !profile_manager->GetProfileByPath(GetSigninProfileDir())) { OnSigninProfileCleared(); return; }
diff --git a/chrome/browser/metrics/first_web_contents_profiler.cc b/chrome/browser/metrics/first_web_contents_profiler.cc index a3cca88..cabdd71 100644 --- a/chrome/browser/metrics/first_web_contents_profiler.cc +++ b/chrome/browser/metrics/first_web_contents_profiler.cc
@@ -51,10 +51,6 @@ kMaxValue = kAbandonNoInitiallyVisibleContent }; -// Per documentation in navigation_request.cc, a navigation id is guaranteed -// nonzero. -constexpr int64_t kInvalidNavigationId = 0; - void RecordFinishReason(FinishReason finish_reason) { base::UmaHistogramEnumeration("Startup.FirstWebContents.FinishReason", finish_reason); @@ -79,9 +75,6 @@ // Logs |finish_reason| to UMA and deletes this FirstWebContentsProfiler. void FinishedCollectingMetrics(FinishReason finish_reason); - // The first NavigationHandle id observed by this. - int64_t first_navigation_id_ = kInvalidNavigationId; - // Whether a main frame navigation finished since this was created. bool did_finish_first_navigation_ = false; @@ -90,7 +83,13 @@ FirstWebContentsProfiler::FirstWebContentsProfiler( content::WebContents* web_contents) - : content::WebContentsObserver(web_contents) {} + : content::WebContentsObserver(web_contents) { + // FirstWebContentsProfiler is created before the main MessageLoop starts + // running. At that time, any visible WebContents should have a pending + // NavigationEntry, i.e. should have dispatched DidStartNavigation() but not + // DidFinishNavigation(). + DCHECK(web_contents->GetController().GetPendingEntry()); +} void FirstWebContentsProfiler::DidStartNavigation( content::NavigationHandle* navigation_handle) { @@ -100,22 +99,11 @@ return; } - // TODO(https://crbug.com/1035419): Ensure that all visible tabs start - // navigating before FirstWebContentsProfiler creation and always handle - // a top-level DidStartNavigation() as a new navigation. - // Upcoming CL: https://crrev.com/c/chromium/src/+/1976500 - - if (first_navigation_id_ != kInvalidNavigationId) { - // Abandon if this is not the first observed top-level navigation. - DCHECK_NE(first_navigation_id_, navigation_handle->GetNavigationId()); - FinishedCollectingMetrics(FinishReason::kAbandonNewNavigation); - return; - } - - DCHECK(!did_finish_first_navigation_); - - // Keep track of the first top-level navigation id observed by this. - first_navigation_id_ = navigation_handle->GetNavigationId(); + // FirstWebContentsProfiler is created after DidStartNavigation() has been + // dispatched for the first top-level navigation. If another + // DidStartNavigation() is received, it means that a new navigation was + // initiated. + FinishedCollectingMetrics(FinishReason::kAbandonNewNavigation); } void FirstWebContentsProfiler::DidFinishNavigation( @@ -137,21 +125,10 @@ return; } - if (first_navigation_id_ == kInvalidNavigationId) { - // Keep track of the first top-level navigation id observed by this. - // - // Note: FirstWebContentsProfiler may be created before or after - // DidStartNavigation() is dispatched for the first navigation, which is why - // |first_navigation_id_| may be set in DidStartNavigation() or - // DidFinishNavigation(). - first_navigation_id_ = navigation_handle->GetNavigationId(); - } else if (first_navigation_id_ != navigation_handle->GetNavigationId()) { - // Abandon if this is not the first observed top-level navigation. - FinishedCollectingMetrics(FinishReason::kAbandonNewNavigation); - return; - } - + // It is not possible to get a second top-level DidFinishNavigation() without + // first having a DidStartNavigation(), which would have deleted |this|. DCHECK(!did_finish_first_navigation_); + did_finish_first_navigation_ = true; startup_metric_utils::RecordFirstWebContentsMainNavigationStart(
diff --git a/chrome/browser/metrics/thread_watcher.cc b/chrome/browser/metrics/thread_watcher.cc index 7601ee27..c140e3a 100644 --- a/chrome/browser/metrics/thread_watcher.cc +++ b/chrome/browser/metrics/thread_watcher.cc
@@ -13,6 +13,7 @@ #include "base/location.h" #include "base/macros.h" #include "base/metrics/histogram.h" +#include "base/stl_util.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_tokenizer.h" @@ -26,6 +27,7 @@ #include "chrome/common/channel_info.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/logging_chrome.h" +#include "components/crash/core/common/crash_key.h" #include "components/metrics/call_stack_profile_metrics_provider.h" #include "components/omnibox/browser/omnibox_event_global_tracker.h" #include "components/version_info/version_info.h" @@ -429,6 +431,13 @@ static bool crashed_once = false; if (!crashed_once) { crashed_once = true; + + // The swap storm that happens under critical memory pressure can cause + // hangs. Add the time since last critical memory pressure signal as a + // crash key to allow filtering of hangs that are likely caused by that. + SetTimeSinceLastCriticalMemoryPressureCrashKey(); + + // Simulate a crash.ou metrics::CrashBecauseThreadWasUnresponsive(thread_id_); } } @@ -436,6 +445,29 @@ hung_processing_complete_ = true; } +void ThreadWatcher::SetTimeSinceLastCriticalMemoryPressureCrashKey() { + // The crash key size is large enough to hold the biggest possible return + // value from base::TimeDelta::InSeconds(). + constexpr size_t kCrashKeyContentSize = 19; + DCHECK_EQ(kCrashKeyContentSize, + base::NumberToString(std::numeric_limits<int64_t>::max()).size()); + + static crash_reporter::CrashKeyString<kCrashKeyContentSize> crash_key( + "seconds-since-last-memory-pressure"); + + if (last_critical_memory_pressure_.is_null()) { + constexpr char kNoMemoryPressureMsg[] = "No memory pressure"; + static_assert(base::size(kNoMemoryPressureMsg) <= kCrashKeyContentSize, + "The crash key is too small to hold \"No memory pressure\"."); + crash_key.Set(kNoMemoryPressureMsg); + } else { + base::TimeDelta time_since_last_critical_memory_pressure = + base::TimeTicks::Now() - last_critical_memory_pressure_; + crash_key.Set(base::NumberToString( + time_since_last_critical_memory_pressure.InSeconds())); + } +} + bool ThreadWatcher::IsVeryUnresponsive() { DCHECK(WatchDogThread::CurrentlyOnWatchDogThread()); return unresponsive_count_ >= unresponsive_threshold_; @@ -543,7 +575,10 @@ it->second->WakeUp(); } -ThreadWatcherList::ThreadWatcherList() { +ThreadWatcherList::ThreadWatcherList() + : memory_pressure_listener_( + base::BindRepeating(&ThreadWatcherList::OnMemoryPressure, + base::Unretained(this))) { DCHECK(WatchDogThread::CurrentlyOnWatchDogThread()); CHECK(!g_thread_watcher_list_); g_thread_watcher_list_ = this; @@ -729,6 +764,19 @@ g_stopped_ = stopped; } +// static +void ThreadWatcherList::OnMemoryPressure( + base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { + DCHECK(WatchDogThread::CurrentlyOnWatchDogThread()); + + if (memory_pressure_level == + base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) { + const base::TimeTicks now = base::TimeTicks::Now(); + for (auto& thread_watcher : registered_) + thread_watcher.second->last_critical_memory_pressure_ = now; + } +} + // WatchDogThread methods and members. // This lock protects g_watchdog_thread.
diff --git a/chrome/browser/metrics/thread_watcher.h b/chrome/browser/metrics/thread_watcher.h index 4e130b1..ba67306 100644 --- a/chrome/browser/metrics/thread_watcher.h +++ b/chrome/browser/metrics/thread_watcher.h
@@ -48,6 +48,7 @@ #include "base/command_line.h" #include "base/gtest_prod_util.h" #include "base/macros.h" +#include "base/memory/memory_pressure_listener.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/single_thread_task_runner.h" @@ -184,6 +185,8 @@ FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, ThreadNotResponding); FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, MultipleThreadsResponding); FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, MultipleThreadsNotResponding); + FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTestWithMockTime, + MemoryPressureCrashKey); // Post constructor initialization. void Initialize(); @@ -201,6 +204,9 @@ // It increments |unresponsive_count_| by 1. void GotNoResponse(); + // Sets a crash key with the time since last critical memory pressure signal. + void SetTimeSinceLastCriticalMemoryPressureCrashKey(); + // This method returns true if the watched thread has not responded with a // pong message for |unresponsive_threshold_| number of ping messages. bool IsVeryUnresponsive(); @@ -280,6 +286,10 @@ // responsive. bool crash_on_hang_; + // The last time at which a critical memory pressure signal was received, or + // null if no signal was ever received. Maintained by ThreadWatcherList. + base::TimeTicks last_critical_memory_pressure_; + // We use this factory to create callback tasks for ThreadWatcher object. We // use this during ping-pong messaging between WatchDog thread and watched // thread. @@ -358,6 +368,7 @@ FRIEND_TEST_ALL_PREFIXES(ThreadWatcherListTest, Restart); FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, ThreadNamesOnlyArgs); FRIEND_TEST_ALL_PREFIXES(ThreadWatcherTest, CrashOnHangThreadsAllArgs); + FRIEND_TEST_ALL_PREFIXES(ThreadWatcherCrashKeyTest, MemoryPressureCrashKey); // This singleton holds the global list of registered ThreadWatchers. ThreadWatcherList(); @@ -410,6 +421,10 @@ // |StopWatchingAll|. static void SetStopped(bool stopped); + // Invoked on memory pressure signal. + void OnMemoryPressure( + base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level); + // The singleton of this class and is used to keep track of information about // threads that are being watched. static ThreadWatcherList* g_thread_watcher_list_; @@ -432,6 +447,9 @@ // Non-const for tests. static int g_initialize_delay_seconds; + // Registration to receive memory pressure signals. + base::MemoryPressureListener memory_pressure_listener_; + // Map of all registered watched threads, from thread_id to ThreadWatcher. RegistrationList registered_;
diff --git a/chrome/browser/metrics/thread_watcher_unittest.cc b/chrome/browser/metrics/thread_watcher_unittest.cc index 227feee..d92dc5d 100644 --- a/chrome/browser/metrics/thread_watcher_unittest.cc +++ b/chrome/browser/metrics/thread_watcher_unittest.cc
@@ -23,11 +23,13 @@ #include "base/synchronization/lock.h" #include "base/synchronization/waitable_event.h" #include "base/task/post_task.h" +#include "base/test/bind_test_util.h" #include "base/threading/platform_thread.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "build/build_config.h" #include "chrome/common/chrome_switches.h" +#include "components/crash/core/common/crash_key.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" @@ -302,10 +304,15 @@ CustomThreadWatcher* ui_watcher_; ThreadWatcherList* thread_watcher_list_; - ThreadWatcherTest() - : task_environment_(content::BrowserTaskEnvironment::REAL_IO_THREAD), + template <typename... TaskEnvironmentTraits> + ThreadWatcherTest(base::test::TaskEnvironment::TimeSource time_source = + base::test::TaskEnvironment::TimeSource::SYSTEM_TIME) + : task_environment_(content::BrowserTaskEnvironment::REAL_IO_THREAD, + time_source), setup_complete_(&lock_), initialized_(false) { + crash_reporter::InitializeCrashKeysForTesting(); + // Make sure UI and IO threads are started and ready. task_environment_.RunIOThreadUntilIdle(); @@ -366,9 +373,11 @@ ui_watcher_ = nullptr; watchdog_thread_.reset(); thread_watcher_list_ = nullptr; + + crash_reporter::ResetCrashKeysForTesting(); } - private: + protected: content::BrowserTaskEnvironment task_environment_; base::Lock lock_; base::ConditionVariable setup_complete_; @@ -378,6 +387,65 @@ DISALLOW_COPY_AND_ASSIGN(ThreadWatcherTest); }; +class ThreadWatcherTestWithMockTime : public ThreadWatcherTest { + public: + ThreadWatcherTestWithMockTime() + : ThreadWatcherTest(base::test::TaskEnvironment::TimeSource::MOCK_TIME) {} +}; + +// Verify that the "seconds-since-last-memory-pressure" crash key is written +// correctly. +// +// Note: It is not possible to split this test in 3 smaller tests, because +// reusing the same crash key in multiple unit tests is broken with breakpad. +// https://crbug.com/1041106. +TEST_F(ThreadWatcherTestWithMockTime, MemoryPressureCrashKey) { + // The "seconds-since-last-memory-pressure" crash key should hold "No memory + // pressure" when there has never been any memory pressure signal. + watchdog_thread_->PostTask( + FROM_HERE, base::BindLambdaForTesting([&]() { + ui_watcher_->SetTimeSinceLastCriticalMemoryPressureCrashKey(); + EXPECT_EQ("No memory pressure", + crash_reporter::GetCrashKeyValue( + "seconds-since-last-memory-pressure")); + })); + + watchdog_thread_->FlushForTesting(); + + // The "seconds-since-last-memory-pressure" crash key should hold "No memory + // pressure" when there has been a MODERATE memory pressure signal, but no + // CRITICAL memory pressure signal. + base::MemoryPressureListener::SimulatePressureNotification( + base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE); + watchdog_thread_->FlushForTesting(); + + watchdog_thread_->PostTask( + FROM_HERE, base::BindLambdaForTesting([&]() { + ui_watcher_->SetTimeSinceLastCriticalMemoryPressureCrashKey(); + EXPECT_EQ("No memory pressure", + crash_reporter::GetCrashKeyValue( + "seconds-since-last-memory-pressure")); + })); + + watchdog_thread_->FlushForTesting(); + + // The "seconds-since-last-memory-pressure" crash key should hold "4" when set + // 4 seconds after a CRITICAL memory pressure signal. + base::MemoryPressureListener::SimulatePressureNotification( + base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); + watchdog_thread_->FlushForTesting(); + + task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(4)); + watchdog_thread_->PostTask( + FROM_HERE, base::BindLambdaForTesting([&]() { + ui_watcher_->SetTimeSinceLastCriticalMemoryPressureCrashKey(); + EXPECT_EQ("4", crash_reporter::GetCrashKeyValue( + "seconds-since-last-memory-pressure")); + })); + + watchdog_thread_->FlushForTesting(); +} + // Test fixture that runs a test body on the WatchDogThread. Subclasses override // TestBodyOnWatchDogThread() and should call RunTestOnWatchDogThread() in their // TEST_F() declaration.
diff --git a/chrome/browser/net/profile_network_context_service_browsertest.cc b/chrome/browser/net/profile_network_context_service_browsertest.cc index 2dcb983..483c52a 100644 --- a/chrome/browser/net/profile_network_context_service_browsertest.cc +++ b/chrome/browser/net/profile_network_context_service_browsertest.cc
@@ -16,6 +16,7 @@ #include "base/strings/string_piece.h" #include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/thread_pool/thread_pool_instance.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "base/threading/thread_restrictions.h" @@ -191,9 +192,11 @@ base::HistogramTester histograms_; }; -// TODO(https://crbug.com/1041810): flaky IN_PROC_BROWSER_TEST_F(ProfileNetworkContextServiceCacheSameBrowsertest, - DISABLED_TestCacheResetParameter) { + TestCacheResetParameter) { + base::RunLoop().RunUntilIdle(); + base::ThreadPoolInstance::Get()->FlushForTesting(); + // At this point, we have already called the initialization once on startup. // Verify that we have the correct values in the local_state. PrefService* local_state = g_browser_process->local_state(); @@ -228,9 +231,11 @@ base::HistogramTester histograms_; }; -// TODO(https://crbug.com/1041810): flaky IN_PROC_BROWSER_TEST_F(ProfileNetworkContextServiceCacheChangeBrowsertest, - DISABLED_TestCacheResetParameter) { + TestCacheResetParameter) { + base::RunLoop().RunUntilIdle(); + base::ThreadPoolInstance::Get()->FlushForTesting(); + // At this point, we have already called the initialization once on startup. // Verify that we have the correct values in the local_state. PrefService* local_state = g_browser_process->local_state();
diff --git a/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc b/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc index d9ac1cb..3db4af1 100644 --- a/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc +++ b/chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.cc
@@ -16,6 +16,7 @@ #include "chrome/browser/performance_manager/decorators/page_aggregator.h" #include "chrome/browser/performance_manager/decorators/process_metrics_decorator.h" #include "chrome/browser/performance_manager/graph/policies/policy_features.h" +#include "chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h" #include "chrome/browser/performance_manager/graph/policies/working_set_trimmer_policy.h" #include "chrome/browser/performance_manager/observers/isolation_context_metrics.h" #include "chrome/browser/performance_manager/observers/metrics_collector.h" @@ -93,6 +94,14 @@ #if !defined(OS_ANDROID) graph->PassToGraph(FormInteractionTabHelper::CreateGraphObserver()); + + if (base::FeatureList::IsEnabled( + performance_manager::features:: + kUrgentDiscardingFromPerformanceManager)) { + graph->PassToGraph( + std::make_unique< + performance_manager::policies::UrgentPageDiscardingPolicy>()); + } #endif // !defined(OS_ANDROID) }
diff --git a/chrome/browser/performance_manager/decorators/helpers/page_live_state_decorator_helper.cc b/chrome/browser/performance_manager/decorators/helpers/page_live_state_decorator_helper.cc index 7d8fe99..e3377560 100644 --- a/chrome/browser/performance_manager/decorators/helpers/page_live_state_decorator_helper.cc +++ b/chrome/browser/performance_manager/decorators/helpers/page_live_state_decorator_helper.cc
@@ -134,9 +134,12 @@ void PageLiveStateDecoratorHelper::OnPageNodeCreatedForWebContents( content::WebContents* web_contents) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(web_contents); // Start observing the WebContents. See comment on // |first_web_contents_observer_| for lifetime management details. new WebContentsObserver(web_contents, this); + PageLiveStateDecorator::SetWasDiscarded(web_contents, + web_contents->WasDiscarded()); } } // namespace performance_manager
diff --git a/chrome/browser/performance_manager/decorators/process_metrics_decorator.cc b/chrome/browser/performance_manager/decorators/process_metrics_decorator.cc index 604c0247..9b15ac3 100644 --- a/chrome/browser/performance_manager/decorators/process_metrics_decorator.cc +++ b/chrome/browser/performance_manager/decorators/process_metrics_decorator.cc
@@ -4,6 +4,9 @@ #include "chrome/browser/performance_manager/decorators/process_metrics_decorator.h" +#include "base/feature_list.h" +#include "build/build_config.h" +#include "chrome/browser/performance_manager/graph/policies/policy_features.h" #include "components/performance_manager/graph/graph_impl.h" #include "components/performance_manager/graph/node_attached_data_impl.h" #include "components/performance_manager/graph/process_node_impl.h" @@ -14,8 +17,18 @@ namespace { -// The process metrics refresh interval. -constexpr base::TimeDelta kRefreshTimerPeriod = base::TimeDelta::FromMinutes(2); + +// The default process metrics refresh interval. +constexpr base::TimeDelta kDefaultRefreshTimerPeriod = + base::TimeDelta::FromMinutes(2); + +#if !defined(OS_ANDROID) +// The fast process metrics refresh interval. Used in certain situations, see +// the comment in ProcessMetricsDecorator::StartTimer for more details. +constexpr base::TimeDelta kFastRefreshTimerPeriod = + base::TimeDelta::FromSeconds(20); +#endif + } // namespace ProcessMetricsDecorator::ProcessMetricsDecorator() = default; @@ -32,8 +45,20 @@ } void ProcessMetricsDecorator::StartTimer() { + base::TimeDelta refresh_period = kDefaultRefreshTimerPeriod; + +#if !defined(OS_ANDROID) + // Bump the refresh frequency when urgent discarding is done from the graph as + // this relies on relatively fresh data. + // TODO(sebmarchand): Measure the performance impact of this. + if (base::FeatureList::IsEnabled( + features::kUrgentDiscardingFromPerformanceManager)) { + refresh_period = kFastRefreshTimerPeriod; + } +#endif + refresh_timer_.Start( - FROM_HERE, kRefreshTimerPeriod, + FROM_HERE, refresh_period, base::BindRepeating(&ProcessMetricsDecorator::RefreshMetrics, base::Unretained(this))); } @@ -50,6 +75,7 @@ void ProcessMetricsDecorator::RequestProcessesMemoryMetrics( memory_instrumentation::MemoryInstrumentation::RequestGlobalDumpCallback callback) { + // TODO(sebmarchand): Use the synchronous calls once they are available. auto* mem_instrumentation = memory_instrumentation::MemoryInstrumentation::GetInstance(); // The memory instrumentation service is not available in unit tests unless
diff --git a/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.cc b/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.cc new file mode 100644 index 0000000..2701bef --- /dev/null +++ b/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.cc
@@ -0,0 +1,305 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h" + +#include <memory> + +#include "base/containers/flat_map.h" +#include "base/containers/flat_set.h" +#include "base/feature_list.h" +#include "base/sequence_checker.h" +#include "base/time/time.h" +#include "build/build_config.h" +#include "chrome/browser/performance_manager/graph/policies/policy_features.h" +#include "chrome/browser/performance_manager/mechanisms/page_discarder.h" +#include "components/performance_manager/graph/node_attached_data_impl.h" +#include "components/performance_manager/graph/page_node_impl.h" +#include "components/performance_manager/public/graph/frame_node.h" +#include "components/performance_manager/public/graph/graph_operations.h" +#include "components/performance_manager/public/graph/page_node.h" +#include "components/performance_manager/public/graph/process_node.h" +#include "url/gurl.h" + +namespace performance_manager { +namespace policies { +namespace { + +#if !defined(OS_CHROMEOS) +// Time during which non visible pages are protected from urgent discarding +// (not on ChromeOS). +constexpr base::TimeDelta kNonVisiblePagesUrgentProtectionTime = + base::TimeDelta::FromSeconds(10); +#endif + +// Time during which a tab cannot be discarded after having played audio. +constexpr base::TimeDelta kTabAudioProtectionTime = + base::TimeDelta::FromMinutes(1); + +// NodeAttachedData used to indicate that there's already been an attempt to +// discard a PageNode. +// TODO(sebmarchand): The only reason for a discard attempt to fail is if we try +// to discard a prerenderer, remove this once we can detect if a PageNode is a +// prerenderer in |CanUrgentlyDiscard|. +class DiscardAttemptMarker : public NodeAttachedDataImpl<DiscardAttemptMarker> { + public: + struct Traits : public NodeAttachedDataInMap<PageNodeImpl> {}; + ~DiscardAttemptMarker() override = default; + + private: + friend class ::performance_manager::NodeAttachedDataImpl< + DiscardAttemptMarker>; + explicit DiscardAttemptMarker(const PageNodeImpl* page_node) {} +}; + +} // namespace + +UrgentPageDiscardingPolicy::UrgentPageDiscardingPolicy() + : page_discarder_(std::make_unique<mechanism::PageDiscarder>()) {} +UrgentPageDiscardingPolicy::~UrgentPageDiscardingPolicy() = default; + +void UrgentPageDiscardingPolicy::OnPassedToGraph(Graph* graph) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + graph_ = graph; + RegisterMemoryPressureListener(); + graph->AddPageNodeObserver(this); +} + +void UrgentPageDiscardingPolicy::OnTakenFromGraph(Graph* graph) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + graph->RemovePageNodeObserver(this); + UnregisterMemoryPressureListener(); + graph_ = nullptr; +} + +void UrgentPageDiscardingPolicy::OnBeforePageNodeRemoved( + const PageNode* page_node) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + last_change_to_non_audible_time_.erase(page_node); +} + +void UrgentPageDiscardingPolicy::OnIsAudibleChanged(const PageNode* page_node) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (!page_node->IsAudible()) + last_change_to_non_audible_time_[page_node] = base::TimeTicks::Now(); +} + +void UrgentPageDiscardingPolicy::OnMemoryPressure( + base::MemoryPressureListener::MemoryPressureLevel level) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // The Memory Pressure Monitor will send notifications at regular interval, + // it's important to unregister the pressure listener to ensure that we don't + // reply to multiple notifications at the same time. + UnregisterMemoryPressureListener(); + + UrgentlyDiscardAPage(); +} + +void UrgentPageDiscardingPolicy::SetMockDiscarderForTesting( + std::unique_ptr<mechanism::PageDiscarder> discarder) { + page_discarder_ = std::move(discarder); +} + +void UrgentPageDiscardingPolicy::AdornsPageWithDiscardAttemptMarkerForTesting( + PageNode* page_node) { + DiscardAttemptMarker::GetOrCreate(PageNodeImpl::FromNode(page_node)); +} + +const PageLiveStateDecorator::Data* +UrgentPageDiscardingPolicy::GetPageNodeLiveStateData( + const PageNode* page_node) const { + return PageLiveStateDecorator::Data::FromPageNode(page_node); +} + +void UrgentPageDiscardingPolicy::RegisterMemoryPressureListener() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(!memory_pressure_listener_); + + memory_pressure_listener_ = std::make_unique<base::MemoryPressureListener>( + base::BindRepeating(&UrgentPageDiscardingPolicy::OnMemoryPressure, + base::Unretained(this))); +} + +void UrgentPageDiscardingPolicy::UnregisterMemoryPressureListener() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + memory_pressure_listener_.reset(); +} + +bool UrgentPageDiscardingPolicy::CanUrgentlyDiscard( + const PageNode* page_node) const { + if (page_node->IsVisible()) + return false; + if (page_node->IsAudible()) + return false; + + if (DiscardAttemptMarker::Get(PageNodeImpl::FromNode(page_node))) + return false; + + // Don't discard tabs that have recently played audio. + auto it = last_change_to_non_audible_time_.find(page_node); + if (it != last_change_to_non_audible_time_.end()) { + if (base::TimeTicks::Now() - it->second < kTabAudioProtectionTime) + return false; + } + +#if !defined(OS_CHROMEOS) + if (page_node->GetTimeSinceLastVisibilityChange() < + kNonVisiblePagesUrgentProtectionTime) { + return false; + } +#endif + + // Do not discard PDFs as they might contain entry that is not saved and they + // don't remember their scrolling positions. See crbug.com/547286 and + // crbug.com/65244. + if (page_node->GetContentsMimeType() == "application/pdf") + return false; + + // Don't discard tabs that don't have a main frame yet. + auto* main_frame = page_node->GetMainFrameNode(); + if (!main_frame) + return false; + + // Only discard http(s) pages and internal pages to make sure that we don't + // discard extensions or other PageNode that don't correspond to a tab. + bool is_web_page_or_internal_page = + main_frame->GetURL().SchemeIsHTTPOrHTTPS() || + main_frame->GetURL().SchemeIs("chrome"); + if (!is_web_page_or_internal_page) + return false; + + if (!main_frame->GetURL().is_valid() || main_frame->GetURL().is_empty()) + return false; + + const auto* live_state_data = GetPageNodeLiveStateData(page_node); + + // The live state data won't be available if none of these events ever + // happened on the page. + if (live_state_data) { + if (!live_state_data->IsAutoDiscardable()) + return false; + if (live_state_data->IsCapturingVideo()) + return false; + if (live_state_data->IsCapturingAudio()) + return false; + if (live_state_data->IsBeingMirrored()) + return false; + if (live_state_data->IsCapturingDesktop()) + return false; + if (live_state_data->IsConnectedToBluetoothDevice()) + return false; + if (live_state_data->IsConnectedToUSBDevice()) + return false; +#if !defined(OS_CHROMEOS) + // TODO(sebmarchand): Skip this check if the Entreprise memory limit is set. + if (live_state_data->WasDiscarded()) + return false; + // TODO(sebmarchand): Consider resetting the |WasDiscarded| value when the + // main frame document changes, also remove the DiscardAttemptMarker in + // this case. +#endif + } + + if (page_node->HadFormInteraction()) + return false; + + // TODO(sebmarchand): Do not discard pages if they're connected to DevTools. + + // TODO(sebmarchand): Do not discard crashed tabs. + + // TODO(sebmarchand): Do not discard tabs that are the active ones in a tab + // strip. + + // TODO(sebmarchand): Do not try to discard PageNode not attached to a tab + // strip. + + return true; +} + +void UrgentPageDiscardingPolicy::UrgentlyDiscardAPage() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + // The memory pressure listener should always have been unregistered before + // calling this function. + DCHECK(!memory_pressure_listener_); + + base::flat_map<const PageNode*, uint64_t> discardable_pages; + base::TimeDelta oldest_bg_time; + const PageNode* oldest_bg_discardable_page_node = nullptr; + // Find all the pages that could be discarded. + for (const auto* page_node : graph_->GetAllPageNodes()) { + if (!CanUrgentlyDiscard(page_node)) + continue; + discardable_pages.emplace(page_node, 0); + // Track the discardable page that has been in background for the longest + // period of time. + if (page_node->GetTimeSinceLastVisibilityChange() > oldest_bg_time) { + oldest_bg_time = page_node->GetTimeSinceLastVisibilityChange(); + oldest_bg_discardable_page_node = page_node; + } + } + + if (discardable_pages.empty()) { + RegisterMemoryPressureListener(); + return; + } + + // List all the processes associated with these page nodes. + base::flat_set<const ProcessNode*> process_nodes; + for (const auto iter : discardable_pages) { + auto processes = GraphOperations::GetAssociatedProcessNodes(iter.first); + process_nodes.insert(processes.begin(), processes.end()); + } + + uint64_t largest_resident_set_kb = 0; + const PageNode* largest_page_node = nullptr; + // Compute the resident set of each page by simply summing up the estimated + // resident set of all its frames, find the largest one. + for (const ProcessNode* process_node : process_nodes) { + auto process_frames = process_node->GetFrameNodes(); + uint64_t frame_rss_kb = 0; + // Get the resident set of the process and split it equally across its + // frames. + if (process_frames.size()) + frame_rss_kb = process_node->GetResidentSetKb() / process_frames.size(); + for (const FrameNode* frame_node : process_frames) { + // Check if the frame belongs to a discardable page, if so update the + // resident set of the page. + auto iter = discardable_pages.find(frame_node->GetPageNode()); + if (iter == discardable_pages.end()) + continue; + iter->second += frame_rss_kb; + if (iter->second > largest_resident_set_kb) { + largest_resident_set_kb = iter->second; + largest_page_node = iter->first; + } + } + } + + if (!largest_page_node) + largest_page_node = oldest_bg_discardable_page_node; + + // Adorns the PageNode with a discard attempt marker to make sure that we + // don't try to discard it multiple times if it fails to be discarded. In + // practice this should only happen to prerenderers. + DiscardAttemptMarker::GetOrCreate(PageNodeImpl::FromNode(largest_page_node)); + + page_discarder_->DiscardPageNode( + largest_page_node, + base::BindOnce(&UrgentPageDiscardingPolicy::PostDiscardAttemptCallback, + weak_factory_.GetWeakPtr())); +} + +void UrgentPageDiscardingPolicy::PostDiscardAttemptCallback(bool success) { + if (!success) { + // Try to discard another page. + UrgentlyDiscardAPage(); + return; + } + + RegisterMemoryPressureListener(); +} + +} // namespace policies +} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h b/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h new file mode 100644 index 0000000..1e15dff --- /dev/null +++ b/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h
@@ -0,0 +1,98 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_GRAPH_POLICIES_URGENT_PAGE_DISCARDING_POLICY_H_ +#define CHROME_BROWSER_PERFORMANCE_MANAGER_GRAPH_POLICIES_URGENT_PAGE_DISCARDING_POLICY_H_ + +#include "base/containers/flat_map.h" +#include "base/macros.h" +#include "base/memory/memory_pressure_listener.h" +#include "base/memory/weak_ptr.h" +#include "base/optional.h" +#include "base/sequence_checker.h" +#include "components/performance_manager/public/decorators/page_live_state_decorator.h" +#include "components/performance_manager/public/graph/graph.h" +#include "components/performance_manager/public/graph/page_node.h" + +namespace performance_manager { + +namespace mechanism { +class PageDiscarder; +} // namespace mechanism + +namespace policies { + +// Urgently discard a tab when receiving a memory pressure signal. The discarded +// tab will be the eligible tab with the largest resident set. +class UrgentPageDiscardingPolicy : public GraphOwned, + public PageNode::ObserverDefaultImpl { + public: + UrgentPageDiscardingPolicy(); + ~UrgentPageDiscardingPolicy() override; + UrgentPageDiscardingPolicy(const UrgentPageDiscardingPolicy& other) = delete; + UrgentPageDiscardingPolicy& operator=(const UrgentPageDiscardingPolicy&) = + delete; + + // GraphOwned implementation: + void OnPassedToGraph(Graph* graph) override; + void OnTakenFromGraph(Graph* graph) override; + + // PageNodeObserver: + void OnBeforePageNodeRemoved(const PageNode* page_node) override; + void OnIsAudibleChanged(const PageNode* page_node) override; + + void SetMockDiscarderForTesting( + std::unique_ptr<mechanism::PageDiscarder> discarder); + bool CanUrgentlyDiscardForTesting(const PageNode* page_node) const { + return CanUrgentlyDiscard(page_node); + } + void AdornsPageWithDiscardAttemptMarkerForTesting(PageNode* page_node); + + protected: + // Returns the PageLiveStateDecorator::Data associated with a PageNode. + // Exposed and made virtual to allowed injecting some fake data in tests. + virtual const PageLiveStateDecorator::Data* GetPageNodeLiveStateData( + const PageNode* page_node) const; + + private: + void OnMemoryPressure( + base::MemoryPressureListener::MemoryPressureLevel level); + + // Register to start listening to memory pressure. Called on startup or after + // handling a pressure event. + void RegisterMemoryPressureListener(); + + // Unregister to stop listening to memory pressure. Called on shutdown or + // when handling a pressure event. + void UnregisterMemoryPressureListener(); + + // Indicates if a PageNode can be urgently discarded. + bool CanUrgentlyDiscard(const PageNode* page_node) const; + + // Selects a tab to discard and posts to the UI thread to discard it. + void UrgentlyDiscardAPage(); + + // Callback called when a discard attempt has completed. + void PostDiscardAttemptCallback(bool success); + + std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_; + Graph* graph_ = nullptr; + + // Map that associates a PageNode with the last time it became non audible. + // PageNodes that have never been audible are not present in this map. + base::flat_map<const PageNode*, base::TimeTicks> + last_change_to_non_audible_time_; + + std::unique_ptr<performance_manager::mechanism::PageDiscarder> + page_discarder_; + + SEQUENCE_CHECKER(sequence_checker_); + + base::WeakPtrFactory<UrgentPageDiscardingPolicy> weak_factory_{this}; +}; + +} // namespace policies +} // namespace performance_manager + +#endif // CHROME_BROWSER_PERFORMANCE_MANAGER_GRAPH_POLICIES_URGENT_PAGE_DISCARDING_POLICY_H_
diff --git a/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy_unittest.cc b/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy_unittest.cc new file mode 100644 index 0000000..aaba7dad --- /dev/null +++ b/chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy_unittest.cc
@@ -0,0 +1,417 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/performance_manager/graph/policies/urgent_page_discarding_policy.h" + +#include <memory> + +#include "base/memory/memory_pressure_listener.h" +#include "base/time/time.h" +#include "base/util/memory_pressure/fake_memory_pressure_monitor.h" +#include "chrome/browser/performance_manager/decorators/page_aggregator.h" +#include "chrome/browser/performance_manager/mechanisms/page_discarder.h" +#include "components/performance_manager/graph/frame_node_impl.h" +#include "components/performance_manager/graph/graph_impl.h" +#include "components/performance_manager/graph/node_attached_data_impl.h" +#include "components/performance_manager/graph/page_node_impl.h" +#include "components/performance_manager/graph/process_node_impl.h" +#include "components/performance_manager/public/decorators/page_live_state_decorator.h" +#include "components/performance_manager/test_support/graph_test_harness.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace performance_manager { +namespace policies { + +using ::testing::Return; + +// Class allowing setting some fake PageLiveStateDecorator::Data for a PageNode. +class FakePageLiveStateData + : public PageLiveStateDecorator::Data, + public NodeAttachedDataImpl<FakePageLiveStateData> { + public: + struct Traits : public NodeAttachedDataInMap<PageNodeImpl> {}; + ~FakePageLiveStateData() override = default; + FakePageLiveStateData(const FakePageLiveStateData& other) = delete; + FakePageLiveStateData& operator=(const FakePageLiveStateData&) = delete; + + // PageLiveStateDecorator::Data: + bool IsConnectedToUSBDevice() const override { + return is_connected_to_usb_device_; + } + bool IsConnectedToBluetoothDevice() const override { + return is_connected_to_bluetooth_device_; + } + bool IsCapturingVideo() const override { return is_capturing_video_; } + bool IsCapturingAudio() const override { return is_capturing_audio_; } + bool IsBeingMirrored() const override { return is_being_mirrored_; } + bool IsCapturingDesktop() const override { return is_capturing_desktop_; } + bool IsAutoDiscardable() const override { return is_auto_discardable_; } + bool WasDiscarded() const override { return was_discarded_; } + + bool is_connected_to_usb_device_ = false; + bool is_connected_to_bluetooth_device_ = false; + bool is_capturing_video_ = false; + bool is_capturing_audio_ = false; + bool is_being_mirrored_ = false; + bool is_capturing_desktop_ = false; + bool is_auto_discardable_ = true; + bool was_discarded_ = false; + + private: + friend class ::performance_manager::NodeAttachedDataImpl< + FakePageLiveStateData>; + + explicit FakePageLiveStateData(const PageNodeImpl* page_node) {} +}; + +// Mock version of a performance_manager::mechanism::PageDiscarder. +class LenientMockPageDiscarder + : public performance_manager::mechanism::PageDiscarder { + public: + LenientMockPageDiscarder() = default; + ~LenientMockPageDiscarder() override = default; + LenientMockPageDiscarder(const LenientMockPageDiscarder& other) = delete; + LenientMockPageDiscarder& operator=(const LenientMockPageDiscarder&) = delete; + + MOCK_METHOD1(DiscardPageNodeImpl, bool(const PageNode* page_node)); + + private: + void DiscardPageNode( + const PageNode* page_node, + base::OnceCallback<void(bool)> post_discard_cb) override { + std::move(post_discard_cb).Run(DiscardPageNodeImpl(page_node)); + } +}; +using MockPageDiscarder = ::testing::StrictMock<LenientMockPageDiscarder>; + +// Test version of the UrgentPageDiscardingPolicy. +class TestUrgentPageDiscardingPolicy : public UrgentPageDiscardingPolicy { + public: + TestUrgentPageDiscardingPolicy() = default; + ~TestUrgentPageDiscardingPolicy() override = default; + TestUrgentPageDiscardingPolicy(const TestUrgentPageDiscardingPolicy& other) = + delete; + TestUrgentPageDiscardingPolicy& operator=( + const TestUrgentPageDiscardingPolicy&) = delete; + + protected: + const PageLiveStateDecorator::Data* GetPageNodeLiveStateData( + const PageNode* page_node) const override { + // Returns a fake version of the PageLiveStateDecorator::Data, create it if + // it doesn't exist. Tests that want to set some fake live state data should + // call |FakePageLiveStateData::GetOrCreate|. + return FakePageLiveStateData::GetOrCreate( + PageNodeImpl::FromNode(page_node)); + } +}; + +class UrgentPageDiscardingPolicyTest : public GraphTestHarness { + public: + UrgentPageDiscardingPolicyTest() { + // Some tests depends on the existence of the PageAggregator. + graph()->PassToGraph(std::make_unique<PageAggregator>()); + } + ~UrgentPageDiscardingPolicyTest() override = default; + UrgentPageDiscardingPolicyTest(const UrgentPageDiscardingPolicyTest& other) = + delete; + UrgentPageDiscardingPolicyTest& operator=( + const UrgentPageDiscardingPolicyTest&) = delete; + + void SetUp() override { + // Create the policy and pass it to the graph. + auto policy = std::make_unique<TestUrgentPageDiscardingPolicy>(); + policy_ = policy.get(); + graph()->PassToGraph(std::move(policy)); + + // Make the policy use a mock PageDiscarder. + auto mock_discarder = std::make_unique<MockPageDiscarder>(); + mock_discarder_ = mock_discarder.get(); + policy_->SetMockDiscarderForTesting(std::move(mock_discarder)); + + // Create a PageNode and make it discardable. + process_node_ = CreateNode<performance_manager::ProcessNodeImpl>(); + page_node_ = CreateNode<performance_manager::PageNodeImpl>(); + main_frame_node_ = + CreateFrameNodeAutoId(process_node_.get(), page_node_.get()); + main_frame_node_->SetIsCurrent(true); + MakePageNodeDiscardable(page_node()); + } + + void TearDown() override { + graph()->TakeFromGraph(policy_); + main_frame_node_.reset(); + page_node_.reset(); + process_node_.reset(); + } + + void SimulateMemoryPressure() { + mem_pressure_monitor_.SetAndNotifyMemoryPressure( + base::MemoryPressureListener::MemoryPressureLevel:: + MEMORY_PRESSURE_LEVEL_CRITICAL); + task_env().RunUntilIdle(); + } + + TestUrgentPageDiscardingPolicy* policy() { return policy_; } + PageNodeImpl* page_node() { return page_node_.get(); } + ProcessNodeImpl* process_node() { return process_node_.get(); } + FrameNodeImpl* frame_node() { return main_frame_node_.get(); } + void ResetFrameNode() { main_frame_node_.reset(); } + MockPageDiscarder* discarder() { return mock_discarder_; } + + protected: + // Make sure that |page_node| is discardable. + void MakePageNodeDiscardable(PageNodeImpl* page_node); + + util::test::FakeMemoryPressureMonitor mem_pressure_monitor_; + TestUrgentPageDiscardingPolicy* policy_; + MockPageDiscarder* mock_discarder_; + performance_manager::TestNodeWrapper<performance_manager::PageNodeImpl> + page_node_; + performance_manager::TestNodeWrapper<performance_manager::ProcessNodeImpl> + process_node_; + performance_manager::TestNodeWrapper<performance_manager::FrameNodeImpl> + main_frame_node_; +}; + +void UrgentPageDiscardingPolicyTest::MakePageNodeDiscardable( + PageNodeImpl* page_node) { + page_node->SetIsVisible(false); + page_node->SetIsAudible(false); + const auto kUrl = GURL("https://foo.com"); + page_node->OnMainFrameNavigationCommitted(false, base::TimeTicks::Now(), 42, + kUrl, "text/html"); + (*page_node->main_frame_nodes().begin())->OnNavigationCommitted(kUrl, false); + AdvanceClock(base::TimeDelta::FromMinutes(1)); + EXPECT_TRUE(policy()->CanUrgentlyDiscardForTesting(page_node)); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardVisiblePage) { + page_node()->SetIsVisible(true); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardAudiblePage) { + page_node()->SetIsAudible(true); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + TestCannotDiscardPageWithDiscardAttemptMarker) { + policy()->AdornsPageWithDiscardAttemptMarkerForTesting(page_node()); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardRecentlyAudiblePage) { + page_node()->SetIsAudible(true); + page_node()->SetIsAudible(false); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +#if !defined(OS_CHROMEOS) +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardRecentlyVisiblePage) { + page_node()->SetIsVisible(true); + page_node()->SetIsVisible(false); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} +#endif + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPdf) { + page_node()->OnMainFrameNavigationCommitted(false, base::TimeTicks::Now(), 53, + GURL("https://foo.com/doc.pdf"), + "application/pdf"); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageWithoutMainFrame) { + ResetFrameNode(); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardExtension) { + frame_node()->OnNavigationCommitted(GURL("chrome-extention://foo"), false); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageWithInvalidURL) { + frame_node()->OnNavigationCommitted(GURL("foo42"), false); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + TestCannotDiscardPageProtectedByExtension) { + FakePageLiveStateData::GetOrCreate(page_node())->is_auto_discardable_ = false; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageCapturingVideo) { + FakePageLiveStateData::GetOrCreate(page_node())->is_capturing_video_ = true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageCapturingAudio) { + FakePageLiveStateData::GetOrCreate(page_node())->is_capturing_audio_ = true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageBeingMirrored) { + FakePageLiveStateData::GetOrCreate(page_node())->is_being_mirrored_ = true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageCapturingDesktop) { + FakePageLiveStateData::GetOrCreate(page_node())->is_capturing_desktop_ = true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + TestCannotDiscardPageConnectedToBluetoothDevice) { + FakePageLiveStateData::GetOrCreate(page_node()) + ->is_connected_to_bluetooth_device_ = true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + TestCannotDiscardIsConnectedToUSBDevice) { + FakePageLiveStateData::GetOrCreate(page_node())->is_connected_to_usb_device_ = + true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +#if !defined(OS_CHROMEOS) +TEST_F(UrgentPageDiscardingPolicyTest, TestCannotDiscardPageMultipleTimes) { + FakePageLiveStateData::GetOrCreate(page_node())->was_discarded_ = true; + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} +#endif + +TEST_F(UrgentPageDiscardingPolicyTest, + TestCannotDiscardPageWithFormInteractions) { + frame_node()->SetHadFormInteraction(); + EXPECT_FALSE(policy()->CanUrgentlyDiscardForTesting(page_node())); +} + +TEST_F(UrgentPageDiscardingPolicyTest, UrgentlyDiscardAPageNoCandidate) { + page_node()->SetIsVisible(true); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +TEST_F(UrgentPageDiscardingPolicyTest, UrgentlyDiscardAPageSingleCandidate) { + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node())) + .WillOnce(Return(true)); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + UrgentlyDiscardAPageSingleCandidateFails) { + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node())) + .WillOnce(Return(false)); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +TEST_F(UrgentPageDiscardingPolicyTest, UrgentlyDiscardAPageTwoCandidates) { + auto process_node2 = CreateNode<performance_manager::ProcessNodeImpl>(); + auto page_node2 = CreateNode<performance_manager::PageNodeImpl>(); + auto main_frame_node2 = + CreateFrameNodeAutoId(process_node2.get(), page_node2.get()); + main_frame_node2->SetIsCurrent(true); + MakePageNodeDiscardable(page_node2.get()); + + // Pretend that |page_node2| is the most recently visible page. + page_node2->SetIsVisible(true); + AdvanceClock(base::TimeDelta::FromMinutes(30)); + page_node2->SetIsVisible(false); + AdvanceClock(base::TimeDelta::FromMinutes(30)); + EXPECT_TRUE(policy()->CanUrgentlyDiscardForTesting(page_node2.get())); + EXPECT_GT(page_node()->TimeSinceLastVisibilityChange(), + page_node2->TimeSinceLastVisibilityChange()); + + process_node()->set_resident_set_kb(1024); + process_node2->set_resident_set_kb(2048); + + // |page_node2| should be discarded despite being the most recently visible + // page as it has a bigger footprint. + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node2.get())) + .WillOnce(Return(true)); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + UrgentlyDiscardAPageTwoCandidatesFirstFails) { + auto process_node2 = CreateNode<performance_manager::ProcessNodeImpl>(); + auto page_node2 = CreateNode<performance_manager::PageNodeImpl>(); + auto main_frame_node2 = + CreateFrameNodeAutoId(process_node2.get(), page_node2.get()); + main_frame_node2->SetIsCurrent(true); + MakePageNodeDiscardable(page_node2.get()); + + process_node()->set_resident_set_kb(1024); + process_node2->set_resident_set_kb(2048); + + // Pretends that the first discardable page hasn't been discarded + // successfully, the other one should be discarded in this case. + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node2.get())) + .WillOnce(Return(false)); + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node())) + .WillOnce(Return(true)); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + UrgentlyDiscardAPageTwoCandidatesMultipleFrames) { + auto process_node2 = CreateNode<performance_manager::ProcessNodeImpl>(); + auto page_node2 = CreateNode<performance_manager::PageNodeImpl>(); + auto main_frame_node2 = + CreateFrameNodeAutoId(process_node2.get(), page_node2.get()); + main_frame_node2->SetIsCurrent(true); + MakePageNodeDiscardable(page_node2.get()); + // Adds a second frame to |page_node()| and host it in |process_node2|. + auto page_node1_extra_frame = + CreateFrameNodeAutoId(process_node2.get(), page_node(), frame_node()); + + process_node()->set_resident_set_kb(1024); + process_node2->set_resident_set_kb(2048); + + // The total RSS of |page_node()| should be 1024 + 2048 / 2 = 2048 and the + // RSS of |page_node2| should be 2048 / 2 = 1024, so |page_node()| will get + // discarded despite having spent less time in background than |page_node2|. + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node())) + .WillOnce(Return(true)); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +TEST_F(UrgentPageDiscardingPolicyTest, + UrgentlyDiscardAPageTwoCandidatesNoRSSData) { + auto process_node2 = CreateNode<performance_manager::ProcessNodeImpl>(); + auto page_node2 = CreateNode<performance_manager::PageNodeImpl>(); + auto main_frame_node2 = + CreateFrameNodeAutoId(process_node2.get(), page_node2.get()); + main_frame_node2->SetIsCurrent(true); + MakePageNodeDiscardable(page_node2.get()); + + // Pretend that |page_node()| is the most recently visible page. + page_node()->SetIsVisible(true); + AdvanceClock(base::TimeDelta::FromMinutes(30)); + page_node()->SetIsVisible(false); + AdvanceClock(base::TimeDelta::FromMinutes(30)); + EXPECT_TRUE(policy()->CanUrgentlyDiscardForTesting(page_node())); + EXPECT_GT(page_node2->TimeSinceLastVisibilityChange(), + page_node()->TimeSinceLastVisibilityChange()); + + // |page_node2| should be discarded as there's no RSS data for any of the + // pages and it's the least recently visible page. + EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node2.get())) + .WillOnce(Return(true)); + SimulateMemoryPressure(); + testing::Mock::VerifyAndClearExpectations(discarder()); +} + +} // namespace policies +} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/mechanisms/page_discarder.cc b/chrome/browser/performance_manager/mechanisms/page_discarder.cc new file mode 100644 index 0000000..b221ad7 --- /dev/null +++ b/chrome/browser/performance_manager/mechanisms/page_discarder.cc
@@ -0,0 +1,58 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/performance_manager/mechanisms/page_discarder.h" + +#include "base/bind.h" +#include "base/callback_forward.h" +#include "base/task/post_task.h" +#include "base/task/task_traits.h" +#include "build/build_config.h" +#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h" +#include "chrome/browser/resource_coordinator/tab_lifecycle_unit.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_list.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "components/performance_manager/public/graph/page_node.h" +#include "components/performance_manager/public/web_contents_proxy.h" +#include "content/public/browser/browser_task_traits.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/render_process_host.h" +#include "content/public/browser/web_contents.h" + +namespace performance_manager { +namespace mechanism { +namespace { + +// Discards a page on the UI thread. +bool DiscardPageOnUIThread(const WebContentsProxy& contents_proxy) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + content::WebContents* const contents = contents_proxy.Get(); + if (!contents) + return false; + + auto* lifecycle_unit = + resource_coordinator::TabLifecycleUnitSource::GetTabLifecycleUnitExternal( + contents); + if (!lifecycle_unit) + return false; + + return lifecycle_unit->DiscardTab( + resource_coordinator::LifecycleUnitDiscardReason::URGENT); +} + +} // namespace + +void PageDiscarder::DiscardPageNode( + const PageNode* page_node, + base::OnceCallback<void(bool)> post_discard_cb) { + DCHECK(page_node); + base::PostTaskAndReplyWithResult( + FROM_HERE, {content::BrowserThread::UI}, + base::BindOnce(&DiscardPageOnUIThread, page_node->GetContentsProxy()), + std::move(post_discard_cb)); +} + +} // namespace mechanism +} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/mechanisms/page_discarder.h b/chrome/browser/performance_manager/mechanisms/page_discarder.h new file mode 100644 index 0000000..ae46e8d --- /dev/null +++ b/chrome/browser/performance_manager/mechanisms/page_discarder.h
@@ -0,0 +1,34 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_MECHANISMS_PAGE_DISCARDER_H_ +#define CHROME_BROWSER_PERFORMANCE_MANAGER_MECHANISMS_PAGE_DISCARDER_H_ + +#include "base/callback.h" +#include "base/macros.h" + +namespace performance_manager { + +class PageNode; + +namespace mechanism { + +// Mechanism that allows discarding a PageNode. +class PageDiscarder { + public: + PageDiscarder() = default; + virtual ~PageDiscarder() = default; + PageDiscarder(const PageDiscarder& other) = delete; + PageDiscarder& operator=(const PageDiscarder&) = delete; + + // Discards |page_node| and run |post_discard_cb| on the origin sequence once + // this is done. + virtual void DiscardPageNode(const PageNode* page_node, + base::OnceCallback<void(bool)> post_discard_cb); +}; + +} // namespace mechanism +} // namespace performance_manager + +#endif // CHROME_BROWSER_PERFORMANCE_MANAGER_MECHANISMS_PAGE_DISCARDER_H_
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc index ec99041..fdc62f7 100644 --- a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc +++ b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
@@ -2963,8 +2963,14 @@ ExpectLeavePictureInPicture(active_web_contents); } +// TODO(crbug.com/1002489): Test is flaky on Linux. +#if defined(OS_LINUX) +#define MAYBE_UpdateMaxSize DISABLED_UpdateMaxSize +#else +#define MAYBE_UpdateMaxSize UpdateMaxSize +#endif IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, - UpdateMaxSize) { + MAYBE_UpdateMaxSize) { LoadTabAndEnterPictureInPicture( browser(), base::FilePath(kPictureInPictureWindowSizePage));
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index ad9eabb2..da0c25b 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -1184,6 +1184,25 @@ { key::kBrowserSwitcherDelay, browser_switcher::prefs::kDelay, base::Value::Type::INTEGER }, +#endif +#if defined(OS_WIN) + { key::kBrowserSwitcherUseIeSitelist, + browser_switcher::prefs::kUseIeSitelist, + base::Value::Type::BOOLEAN }, + { key::kBrowserSwitcherChromePath, + browser_switcher::prefs::kChromePath, + base::Value::Type::STRING }, + { key::kBrowserSwitcherChromeParameters, + browser_switcher::prefs::kChromeParameters, + base::Value::Type::LIST }, +#endif +#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) + { key::kBrowserGuestModeEnforced, + prefs::kBrowserGuestModeEnforced, + base::Value::Type::BOOLEAN }, + { key::kUnsafeEventsReportingEnabled, + prefs::kUnsafeEventsReportingEnabled, + base::Value::Type::BOOLEAN }, { key::kDelayDeliveryUntilVerdict, prefs::kDelayDeliveryUntilVerdict, base::Value::Type::INTEGER }, @@ -1206,25 +1225,6 @@ prefs::kURLsToNotCheckComplianceOfUploadedContent, base::Value::Type::LIST }, #endif -#if defined(OS_WIN) - { key::kBrowserSwitcherUseIeSitelist, - browser_switcher::prefs::kUseIeSitelist, - base::Value::Type::BOOLEAN }, - { key::kBrowserSwitcherChromePath, - browser_switcher::prefs::kChromePath, - base::Value::Type::STRING }, - { key::kBrowserSwitcherChromeParameters, - browser_switcher::prefs::kChromeParameters, - base::Value::Type::LIST }, -#endif -#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_MACOSX) - { key::kBrowserGuestModeEnforced, - prefs::kBrowserGuestModeEnforced, - base::Value::Type::BOOLEAN }, - { key::kUnsafeEventsReportingEnabled, - prefs::kUnsafeEventsReportingEnabled, - base::Value::Type::BOOLEAN }, -#endif { key::kPasswordLeakDetectionEnabled, password_manager::prefs::kPasswordLeakDetectionEnabled, base::Value::Type::BOOLEAN },
diff --git a/chrome/browser/portal/portal_interactive_uittest.cc b/chrome/browser/portal/portal_interactive_uittest.cc new file mode 100644 index 0000000..336c4a3 --- /dev/null +++ b/chrome/browser/portal/portal_interactive_uittest.cc
@@ -0,0 +1,63 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <vector> + +#include "base/test/scoped_feature_list.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/browser/web_contents.h" +#include "content/public/test/browser_test_utils.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "third_party/blink/public/common/features.h" + +using content::WebContents; + +class PortalInteractiveUITest : public InProcessBrowserTest { + public: + PortalInteractiveUITest() = default; + + void SetUp() override { + scoped_feature_list_.InitAndEnableFeature(blink::features::kPortals); + InProcessBrowserTest::SetUp(); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(PortalInteractiveUITest, + FocusTransfersAcrossActivation) { + ASSERT_TRUE(embedded_test_server()->Start()); + GURL url(embedded_test_server()->GetURL("/portal/activate.html")); + ui_test_utils::NavigateToURL(browser(), url); + + WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); + EXPECT_EQ(true, content::EvalJs(contents, "loadPromise")); + EXPECT_TRUE(content::ExecJs(contents, + "var blurPromise = new Promise(r => {" + " window.onblur = () => r(true)" + "})")); + EXPECT_TRUE(content::ExecJs(contents, + "var button = document.createElement('button');" + "document.body.appendChild(button);" + "button.focus();" + "var buttonBlurPromise = new Promise(r => {" + " button.onblur = () => r(true)" + "});")); + WebContents* portal_contents = contents->GetInnerWebContents()[0]; + EXPECT_TRUE(content::ExecJs(portal_contents, + "var focusPromise = new Promise(r => {" + " window.onfocus = () => r(true)" + "})")); + + // Activate the portal, and then check if the predecessor contents lost focus, + // and the portal contents got focus. + EXPECT_EQ(true, content::EvalJs(contents, "activate()")); + EXPECT_EQ(true, content::EvalJs(contents, "blurPromise")); + EXPECT_EQ(true, content::EvalJs(contents, "buttonBlurPromise")); + EXPECT_EQ(true, content::EvalJs(portal_contents, "focusPromise")); +}
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java index d28498b..243c4f2 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -47,6 +47,8 @@ */ public static final String ACCESSIBILITY_TAB_SWITCHER = "accessibility_tab_switcher"; + public static final String APP_LOCALE = "locale"; + /** Whether Autofill Assistant is enabled */ public static final String AUTOFILL_ASSISTANT_ENABLED = "autofill_assistant_switch"; /** Whether the Autofill Assistant onboarding has been accepted. */ @@ -635,6 +637,7 @@ // clang-format off return Arrays.asList( ACCESSIBILITY_TAB_SWITCHER, + APP_LOCALE, AUTOFILL_ASSISTANT_ENABLED, AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED, AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN,
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java index 3c68a4a..a895f1a 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java
@@ -263,6 +263,33 @@ } /** + * Writes the given float to the named shared preference. + * + * @param key The name of the preference to modify. + * @param value The new value for the preference. + */ + public void writeFloat(String key, float value) { + mKeyChecker.checkIsKeyInUse(key); + SharedPreferences.Editor ed = ContextUtils.getAppSharedPreferences().edit(); + ed.putFloat(key, value); + ed.apply(); + } + + /** + * Reads the given float value from the named shared preference. + * + * @param key The name of the preference to return. + * @param defaultValue The default value to return if there's no value stored. + * @return The value of the preference if stored; defaultValue otherwise. + */ + public float readFloat(String key, float defaultValue) { + mKeyChecker.checkIsKeyInUse(key); + try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) { + return ContextUtils.getAppSharedPreferences().getFloat(key, defaultValue); + } + } + + /** * Writes the given boolean to the named shared preference. * * @param key The name of the preference to modify.
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManagerTest.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManagerTest.java index 29b471e0..e7211ed5 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManagerTest.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManagerTest.java
@@ -134,6 +134,28 @@ @Test @SmallTest + public void testWriteReadFloat() { + // Verify default return values when no value is written. + assertEquals(1.5f, mSubject.readFloat("float_key", 1.5f), 0.001f); + assertFalse(mSubject.contains("float_key")); + + // Write a value. + mSubject.writeFloat("float_key", 42.42f); + + // Verify value written can be read. + assertEquals(42.42f, mSubject.readFloat("float_key", 1.5f), 0.001f); + assertTrue(mSubject.contains("float_key")); + + // Remove the value. + mSubject.removeKey("float_key"); + + // Verify the removed value is not returned anymore. + assertEquals(1.5f, mSubject.readFloat("float_key", 1.5f), 0.001f); + assertFalse(mSubject.contains("float_key")); + } + + @Test + @SmallTest public void testWriteReadStringSet() { Set<String> defaultStringSet = new HashSet<>(Arrays.asList("a", "b", "c")); Set<String> exampleStringSet = new HashSet<>(Arrays.asList("d", "e")); @@ -223,6 +245,11 @@ mSubject.readLong("long_key"); verify(mChecker, times(2)).checkIsKeyInUse("long_key"); + mSubject.writeFloat("float_key", 2.5f); + verify(mChecker, times(1)).checkIsKeyInUse("float_key"); + mSubject.readFloat("float_key", 0f); + verify(mChecker, times(2)).checkIsKeyInUse("float_key"); + mSubject.writeStringSet("string_set_key", new HashSet<>()); verify(mChecker, times(1)).checkIsKeyInUse("string_set_key"); mSubject.readStringSet("string_set_key");
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc b/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc index 04dcba5..79805ca 100644 --- a/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc +++ b/chrome/browser/resource_coordinator/tab_activity_watcher_browsertest.cc
@@ -442,7 +442,7 @@ browser()->tab_strip_model()->GetWebContentsAt(0); resource_coordinator::GetTabLifecycleUnitSource() ->GetTabLifecycleUnitExternal(first_contents) - ->DiscardTab(); + ->DiscardTab(LifecycleUnitDiscardReason::URGENT); // Logs tab@0. LogTabFeaturesAt(0); @@ -493,7 +493,7 @@ browser()->tab_strip_model()->GetWebContentsAt(1); resource_coordinator::GetTabLifecycleUnitSource() ->GetTabLifecycleUnitExternal(second_content) - ->DiscardTab(); + ->DiscardTab(LifecycleUnitDiscardReason::URGENT); CloseBrowserSynchronously(browser()); { @@ -666,7 +666,7 @@ browser()->tab_strip_model()->GetWebContentsAt(0); resource_coordinator::GetTabLifecycleUnitSource() ->GetTabLifecycleUnitExternal(first_contents) - ->DiscardTab(); + ->DiscardTab(LifecycleUnitDiscardReason::URGENT); // Switching to first tab logs a forgrounded event for test_urls_[0]. browser()->tab_strip_model()->ActivateTabAt( @@ -700,7 +700,7 @@ browser()->tab_strip_model()->GetWebContentsAt(1); resource_coordinator::GetTabLifecycleUnitSource() ->GetTabLifecycleUnitExternal(second_content) - ->DiscardTab(); + ->DiscardTab(LifecycleUnitDiscardReason::URGENT); CloseBrowserSynchronously(browser()); {
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc index afc54923..79c47d28 100644 --- a/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc +++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit.cc
@@ -277,8 +277,8 @@ tab_lifecycle_unit_->SetAutoDiscardable(auto_discardable); } - bool DiscardTab() override { - return tab_lifecycle_unit_->Discard(LifecycleUnitDiscardReason::EXTERNAL); + bool DiscardTab(LifecycleUnitDiscardReason reason) override { + return tab_lifecycle_unit_->Discard(reason); } bool IsDiscarded() const override {
diff --git a/chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h b/chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h index c2aa25f..6819946 100644 --- a/chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h +++ b/chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h
@@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_RESOURCE_COORDINATOR_TAB_LIFECYCLE_UNIT_EXTERNAL_H_ #define CHROME_BROWSER_RESOURCE_COORDINATOR_TAB_LIFECYCLE_UNIT_EXTERNAL_H_ +#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h" + namespace content { class WebContents; } // namespace content @@ -39,7 +41,7 @@ virtual void SetAutoDiscardable(bool auto_discardable) = 0; // Discards the tab. - virtual bool DiscardTab() = 0; + virtual bool DiscardTab(mojom::LifecycleUnitDiscardReason reason) = 0; // Returns true if the tab is discarded. virtual bool IsDiscarded() const = 0;
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc index ee566a8..b556bfa 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc
@@ -261,8 +261,10 @@ TabLifecycleUnitExternal* tab_lifecycle_unit_external = TabLifecycleUnitExternal::FromWebContents(contents); DCHECK(tab_lifecycle_unit_external); - if (tab_lifecycle_unit_external->DiscardTab()) + if (tab_lifecycle_unit_external->DiscardTab( + LifecycleUnitDiscardReason::EXTERNAL)) { return tab_lifecycle_unit_external->GetWebContents(); + } return nullptr; }
diff --git a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc index 099c8f64..3184d0f 100644 --- a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc +++ b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
@@ -1341,7 +1341,8 @@ int renderer_id = process->GetID(); // Discard the tab. This simulates a tab discard. - TabLifecycleUnitExternal::FromWebContents(web_contents)->DiscardTab(); + TabLifecycleUnitExternal::FromWebContents(web_contents) + ->DiscardTab(LifecycleUnitDiscardReason::URGENT); content::WebContents* new_web_contents = tsm()->GetActiveWebContents(); EXPECT_NE(new_web_contents, web_contents); web_contents = new_web_contents; @@ -1407,7 +1408,8 @@ EXPECT_FALSE(before_discard_childframe_result); // Discard the tab. This simulates a tab discard. - TabLifecycleUnitExternal::FromWebContents(contents)->DiscardTab(); + TabLifecycleUnitExternal::FromWebContents(contents)->DiscardTab( + LifecycleUnitDiscardReason::URGENT); // Here we simulate re-focussing the tab causing reload with navigation, // the navigation will reload the tab. @@ -1497,7 +1499,7 @@ #else #define MAYBE_DiscardTabsWithMinimizedWindow DiscardTabsWithMinimizedWindow #endif -IN_PROC_BROWSER_TEST_F(TabManagerTest, DiscardTabsWithMinimizedWindow) { +IN_PROC_BROWSER_TEST_F(TabManagerTest, MAYBE_DiscardTabsWithMinimizedWindow) { // Minimized browser. EnsureTabsInBrowser(browser(), 2); browser()->window()->Minimize(); @@ -1534,7 +1536,7 @@ #else #define MAYBE_DiscardTabsWithOccludedWindow DiscardTabsWithOccludedWindow #endif -IN_PROC_BROWSER_TEST_F(TabManagerTest, DiscardTabsWithOccludedWindow) { +IN_PROC_BROWSER_TEST_F(TabManagerTest, MAYBE_DiscardTabsWithOccludedWindow) { // Occluded browser. EnsureTabsInBrowser(browser(), 2); browser()->window()->SetBounds(gfx::Rect(10, 10, 10, 10));
diff --git a/chrome/browser/resource_coordinator/tab_manager_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_unittest.cc index 56f5790..3c07332 100644 --- a/chrome/browser/resource_coordinator/tab_manager_unittest.cc +++ b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
@@ -1037,7 +1037,7 @@ // WebContents. for (int i = 0; i < 5; i++) { TabLifecycleUnitExternal::FromWebContents(tab_strip->GetWebContentsAt(i)) - ->DiscardTab(); + ->DiscardTab(LifecycleUnitDiscardReason::URGENT); EXPECT_EQ(tab_manager_->num_loaded_lifecycle_units_, 4 - i); }
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc b/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc index 0bb67c3..02fa2076 100644 --- a/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc +++ b/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc
@@ -66,7 +66,7 @@ void DiscardTabAt(const int index) { auto* web_contents = browser()->tab_strip_model()->GetWebContentsAt(index); auto* external = TabLifecycleUnitExternal::FromWebContents(web_contents); - external->DiscardTab(); + external->DiscardTab(mojom::LifecycleUnitDiscardReason::URGENT); } base::test::ScopedFeatureList scoped_feature_list_;
diff --git a/chrome/browser/resources/chromeos/login/security_token_pin.css b/chrome/browser/resources/chromeos/login/security_token_pin.css index f4e1f84..d9059396 100644 --- a/chrome/browser/resources/chromeos/login/security_token_pin.css +++ b/chrome/browser/resources/chromeos/login/security_token_pin.css
@@ -9,7 +9,7 @@ #pinKeyboard { --pin-keyboard-pin-input-style: { - width: 244px; + width: 192px; padding-bottom: 24px; }; --pin-keyboard-number-color: var(--google-grey-900);
diff --git a/chrome/browser/resources/safe_browsing/download_file_types.asciipb b/chrome/browser/resources/safe_browsing/download_file_types.asciipb index 39734614..403f64c3 100644 --- a/chrome/browser/resources/safe_browsing/download_file_types.asciipb +++ b/chrome/browser/resources/safe_browsing/download_file_types.asciipb
@@ -8,7 +8,7 @@ ## ## Top level settings ## -version_id: 41 +version_id: 42 sampled_ping_probability: 0.01 max_archived_binaries_to_report: 10 default_file_type { @@ -2228,7 +2228,7 @@ ping_setting: FULL_PING platform_settings { platform: PLATFORM_WINDOWS - danger_level: ALLOW_ON_USER_GESTURE + danger_level: DANGEROUS auto_open_hint: DISALLOW_AUTO_OPEN } }
diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resources/settings/icons.html index faa635e2..fdb026b 100644 --- a/chrome/browser/resources/settings/icons.html +++ b/chrome/browser/resources/settings/icons.html
@@ -51,6 +51,9 @@ <path d="M10,15 L6,11.1783439 L7.41,9.83121019 L10,12.2961783 L16.59,6 L18,7.3566879 L10,15 Z M21,3 L3,3 C1.89,3 1,3.89 1,5 L1,17 C1,18.1 1.89,19 3,19 L8,19 L8,21 L16,21 L16,19 L21,19 C22.1,19 22.99,18.1 22.99,17 L23,5 C23,3.89 22.1,3 21,3 Z M21,17 L3,17 L3,5 L21,5 L21,17 Z"></path> </g> + <!-- vr-headset SVG obtained from amyroberts@ --> + <g id="vr-headset"><path d="M18.477.678A2.54 2.54 0 0016.73 0H2.47C1.811 0 1.19.24.723.678A2.229 2.229 0 000 2.315v7.37c0 .618.256 1.2.723 1.637A2.54 2.54 0 002.47 12h3.424c.448 0 .884-.114 1.268-.33.384-.216.697-.522.908-.893l.967-1.68a.572.572 0 01.16-.74.67.67 0 01.806 0c.235.18.302.49.16.74l.967 1.68c.21.365.524.677.908.893.384.216.82.33 1.268.33h3.424c.659 0 1.28-.24 1.747-.678.467-.437.723-1.02.723-1.637v-7.37c0-.618-.256-1.2-.723-1.637zM5.4 7.8C4.072 7.8 3 6.72 3 5.4 3 4.08 4.08 3 5.4 3c1.32 0 2.4 1.08 2.4 2.4 0 1.32-1.072 2.4-2.4 2.4zm8.4 0c-1.328 0-2.4-1.08-2.4-2.4 0-1.32 1.08-2.4 2.4-2.4 1.32 0 2.4 1.08 2.4 2.4 0 1.32-1.072 2.4-2.4 2.4z"></path></g> + <!-- These icons are copied from Polymer's iron-icons and kept in sorted order. See http://goo.gl/Y1OdAq for instructions on adding additional icons.
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html index 8406ec8..2a786c4 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -711,6 +711,44 @@ </settings-subpage> </template> </template> + <template is="dom-if" if="[[enableWebXrContentSetting_]]"> + <template is="dom-if" route-path="/content/vr" no-search> + <settings-subpage page-title="$i18n{siteSettingsVr}" + search-label="$i18n{siteSettingsAllSitesSearch}" + search-term="{{searchFilter_}}"> + <category-default-setting + toggle-off-label="$i18n{siteSettingsVrBlock}" + toggle-on-label= + "$i18n{siteSettingsVrAskRecommended}" + category="{{ContentSettingsTypes.VR}}"> + </category-default-setting> + <category-setting-exceptions + category="{{ContentSettingsTypes.VR}}" + read-only-list + block-header="$i18n{siteSettingsBlock}" + search-filter="[[searchFilter_]]"> + </category-setting-exceptions> + </settings-subpage> + </template> + <template is="dom-if" route-path="/content/ar" no-search> + <settings-subpage page-title="$i18n{siteSettingsAr}" + search-label="$i18n{siteSettingsAllSitesSearch}" + search-term="{{searchFilter_}}"> + <category-default-setting + toggle-off-label="$i18n{siteSettingsArBlock}" + toggle-on-label= + "$i18n{siteSettingsArAskRecommended}" + category="{{ContentSettingsTypes.AR}}"> + </category-default-setting> + <category-setting-exceptions + category="{{ContentSettingsTypes.AR}}" + read-only-list + block-header="$i18n{siteSettingsBlock}" + search-filter="[[searchFilter_]]"> + </category-setting-exceptions> + </settings-subpage> + </template> + </template> </settings-animated-pages> </template> <script src="privacy_page.js"></script>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chrome/browser/resources/settings/privacy_page/privacy_page.js index da6ef390..efbbdc7c 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.js +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.js
@@ -199,6 +199,12 @@ loadTimeData.getBoolean('enableQuietNotificationPromptsSetting'), }, + /** @private */ + enableWebXrContentSetting_: { + type: Boolean, + value: () => loadTimeData.getBoolean('enableWebXrContentSetting'), + }, + /** @private {!Map<string, string>} */ focusConfig_: { type: Object,
diff --git a/chrome/browser/resources/settings/route.js b/chrome/browser/resources/settings/route.js index 30643be..4e4bade 100644 --- a/chrome/browser/resources/settings/route.js +++ b/chrome/browser/resources/settings/route.js
@@ -52,6 +52,9 @@ // TODO(tommycli): Find a way to refactor these repetitive category // routes. r.SITE_SETTINGS_ADS = r.SITE_SETTINGS.createChild('ads'); + if (loadTimeData.getBoolean('enableWebXrContentSetting')) { + r.SITE_SETTINGS_AR = r.SITE_SETTINGS.createChild('ar'); + } r.SITE_SETTINGS_AUTOMATIC_DOWNLOADS = r.SITE_SETTINGS.createChild('automaticDownloads'); r.SITE_SETTINGS_BACKGROUND_SYNC = @@ -90,6 +93,9 @@ r.SITE_SETTINGS_PAYMENT_HANDLER = r.SITE_SETTINGS.createChild('paymentHandler'); } + if (loadTimeData.getBoolean('enableWebXrContentSetting')) { + r.SITE_SETTINGS_VR = r.SITE_SETTINGS.createChild('vr'); + } if (loadTimeData.getBoolean('enableExperimentalWebPlatformFeatures')) { r.SITE_SETTINGS_BLUETOOTH_SCANNING = r.SITE_SETTINGS.createChild('bluetoothScanning');
diff --git a/chrome/browser/resources/settings/site_settings/category_default_setting.js b/chrome/browser/resources/settings/site_settings/category_default_setting.js index 5becf24..619b727 100644 --- a/chrome/browser/resources/settings/site_settings/category_default_setting.js +++ b/chrome/browser/resources/settings/site_settings/category_default_setting.js
@@ -183,6 +183,8 @@ case settings.ContentSettingsTypes.BLUETOOTH_SCANNING: case settings.ContentSettingsTypes.NATIVE_FILE_SYSTEM_WRITE: case settings.ContentSettingsTypes.HID_DEVICES: + case settings.ContentSettingsTypes.VR: + case settings.ContentSettingsTypes.AR: // "Ask" vs "Blocked". this.browserProxy.setDefaultValueForContentType( this.category,
diff --git a/chrome/browser/resources/settings/site_settings/constants.js b/chrome/browser/resources/settings/site_settings/constants.js index 939ce7b..09988539 100644 --- a/chrome/browser/resources/settings/site_settings/constants.js +++ b/chrome/browser/resources/settings/site_settings/constants.js
@@ -40,6 +40,8 @@ BLUETOOTH_SCANNING: 'bluetooth-scanning', NATIVE_FILE_SYSTEM_WRITE: 'native-file-system-write', HID_DEVICES: 'hid-devices', + AR: 'ar', + VR: 'vr', }; /**
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html index 10b2607d..029b5b7d 100644 --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -299,6 +299,18 @@ label="$i18n{siteSettingsInsecureContent}"> </site-details-permission> </template> + <template is="dom-if" if="[[enableWebXrContentSetting_]]"> + <site-details-permission + category="{{ContentSettingsTypes.AR}}" + icon="settings:vr-headset" id="ar" + label="$i18n{siteSettingsAr}"> + </site-details-permission> + <site-details-permission + category="{{ContentSettingsTypes.VR}}" + icon="settings:vr-headset" id="vr" + label="$i18n{siteSettingsVr}"> + </site-details-permission> + </template> </div> <website-usage-private-api id="usageApi"
diff --git a/chrome/browser/resources/settings/site_settings/site_details.js b/chrome/browser/resources/settings/site_settings/site_details.js index 27b8d37a..2e2a23e 100644 --- a/chrome/browser/resources/settings/site_settings/site_details.js +++ b/chrome/browser/resources/settings/site_settings/site_details.js
@@ -86,6 +86,12 @@ }, }, + /** @private */ + enableWebXrContentSetting_: { + type: Boolean, + value: () => loadTimeData.getBoolean('enableWebXrContentSetting'), + }, + listeners: { 'usage-deleted': 'onUsageDeleted_', },
diff --git a/chrome/browser/resources/settings/site_settings/site_settings_behavior.js b/chrome/browser/resources/settings/site_settings/site_settings_behavior.js index 5642ab87..30b4a3c 100644 --- a/chrome/browser/resources/settings/site_settings/site_settings_behavior.js +++ b/chrome/browser/resources/settings/site_settings/site_settings_behavior.js
@@ -210,6 +210,10 @@ addOrRemoveSettingWithFlag( settings.ContentSettingsTypes.HID_DEVICES, 'enableExperimentalWebPlatformFeatures'); + addOrRemoveSettingWithFlag( + settings.ContentSettingsTypes.AR, 'enableWebXrContentSetting'); + addOrRemoveSettingWithFlag( + settings.ContentSettingsTypes.VR, 'enableWebXrContentSetting'); return this.contentTypes_.slice(0); },
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html index 1a8711e..96b8bfa 100644 --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
@@ -308,6 +308,29 @@ role-description="$i18n{subpageArrowRoleDescription}"> </cr-link-row> </template> + + <template is="dom-if" if="[[enableWebXrContentSetting_]]"> + <cr-link-row class="hr two-line" + data-route="SITE_SETTINGS_AR" + id="ar" label="$i18n{siteSettingsAr}" + on-click="onTapNavigate_" start-icon="settings:vr-headset" + sub-label="[[defaultSettingLabel_( + default_.ar, + '$i18nPolymer{siteSettingsArAsk}', + '$i18nPolymer{siteSettingsArBlock}')]]" + role-description="$i18n{subpageArrowRoleDescription}"> + </cr-link-row> + <cr-link-row class="hr two-line" + data-route="SITE_SETTINGS_VR" + id="vr" label="$i18n{siteSettingsVr}" + on-click="onTapNavigate_" start-icon="settings:vr-headset" + sub-label="[[defaultSettingLabel_( + default_.vr, + '$i18nPolymer{siteSettingsVrAsk}', + '$i18nPolymer{siteSettingsVrBlock}')]]" + role-description="$i18n{subpageArrowRoleDescription}"> + </cr-link-row> + </template> </template> <script src="site_settings_page.js"></script> </dom-module>
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.js b/chrome/browser/resources/settings/site_settings_page/site_settings_page.js index 47e472d..554d4be 100644 --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.js +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.js
@@ -68,6 +68,14 @@ }, /** @private */ + enableWebXrContentSetting_: { + type: Boolean, + value: function() { + return loadTimeData.getBoolean('enableWebXrContentSetting'); + } + }, + + /** @private */ enableNativeFileSystemWriteContentSetting_: { type: Boolean, value() { @@ -143,6 +151,11 @@ pairs.push([R.SITE_SETTINGS_MIXEDSCRIPT, 'mixed-script']); } + if (this.enableWebXrContentSetting_) { + pairs.push([R.SITE_SETTINGS_AR, 'ar']); + pairs.push([R.SITE_SETTINGS_VR, 'vr']); + } + pairs.forEach(([route, id]) => { this.focusConfig.set(route.path, () => this.async(() => { cr.ui.focusWithoutInk(assert(this.$$(`#${id}`)));
diff --git a/chrome/browser/sharing/ack_message_handler.cc b/chrome/browser/sharing/ack_message_handler.cc index 5224123..1f205426 100644 --- a/chrome/browser/sharing/ack_message_handler.cc +++ b/chrome/browser/sharing/ack_message_handler.cc
@@ -24,8 +24,7 @@ if (ack_message->has_response_message()) response = base::WrapUnique(ack_message->release_response_message()); - sharing_message_sender_->OnAckReceived(ack_message->original_message_type(), - ack_message->original_message_id(), + sharing_message_sender_->OnAckReceived(ack_message->original_message_id(), std::move(response)); std::move(done_callback).Run(/*response=*/nullptr);
diff --git a/chrome/browser/sharing/ack_message_handler_unittest.cc b/chrome/browser/sharing/ack_message_handler_unittest.cc index 9d937da..2e8b832 100644 --- a/chrome/browser/sharing/ack_message_handler_unittest.cc +++ b/chrome/browser/sharing/ack_message_handler_unittest.cc
@@ -24,10 +24,9 @@ /*local_device_info_provider=*/nullptr) {} ~MockSharingMessageSender() override = default; - MOCK_METHOD3( + MOCK_METHOD2( OnAckReceived, - void(chrome_browser_sharing::MessageType message_type, - const std::string& fcm_message_id, + void(const std::string& fcm_message_id, std::unique_ptr<chrome_browser_sharing::ResponseMessage> response)); private: @@ -59,16 +58,12 @@ chrome_browser_sharing::SharingMessage sharing_message; sharing_message.mutable_ack_message()->set_original_message_id( kTestMessageId); - sharing_message.mutable_ack_message()->set_original_message_type( - chrome_browser_sharing::CLICK_TO_CALL_MESSAGE); base::MockCallback<SharingMessageHandler::DoneCallback> done_callback; EXPECT_CALL(done_callback, Run(testing::Eq(nullptr))); - EXPECT_CALL( - mock_response_callback_helper_, - OnAckReceived(testing::Eq(chrome_browser_sharing::CLICK_TO_CALL_MESSAGE), - testing::Eq(kTestMessageId), testing::Eq(nullptr))); + EXPECT_CALL(mock_response_callback_helper_, + OnAckReceived(testing::Eq(kTestMessageId), testing::Eq(nullptr))); ack_message_handler_.OnMessage(std::move(sharing_message), done_callback.Get()); @@ -78,8 +73,6 @@ chrome_browser_sharing::SharingMessage sharing_message; sharing_message.mutable_ack_message()->set_original_message_id( kTestMessageId); - sharing_message.mutable_ack_message()->set_original_message_type( - chrome_browser_sharing::CLICK_TO_CALL_MESSAGE); sharing_message.mutable_ack_message()->mutable_response_message(); chrome_browser_sharing::ResponseMessage response_message_copy = @@ -88,11 +81,9 @@ base::MockCallback<SharingMessageHandler::DoneCallback> done_callback; EXPECT_CALL(done_callback, Run(testing::Eq(nullptr))); - EXPECT_CALL( - mock_response_callback_helper_, - OnAckReceived(testing::Eq(chrome_browser_sharing::CLICK_TO_CALL_MESSAGE), - testing::Eq(kTestMessageId), - ProtoEquals(response_message_copy))); + EXPECT_CALL(mock_response_callback_helper_, + OnAckReceived(testing::Eq(kTestMessageId), + ProtoEquals(response_message_copy))); ack_message_handler_.OnMessage(std::move(sharing_message), done_callback.Get());
diff --git a/chrome/browser/sharing/proto/sharing_message.proto b/chrome/browser/sharing/proto/sharing_message.proto index d1c57271..70a4de2 100644 --- a/chrome/browser/sharing/proto/sharing_message.proto +++ b/chrome/browser/sharing/proto/sharing_message.proto
@@ -65,13 +65,13 @@ } // Message for acknowledging the sender after a non-AckMessage is received. +// Next tag: 4 message AckMessage { + reserved 2; + // required. string original_message_id = 1; - // The type of message that this is acknowledging. optional. - MessageType original_message_type = 2; - // Response of the message, optional. ResponseMessage response_message = 3; }
diff --git a/chrome/browser/sharing/sharing_fcm_handler.cc b/chrome/browser/sharing/sharing_fcm_handler.cc index 8ed590ed..9f78d706 100644 --- a/chrome/browser/sharing/sharing_fcm_handler.cc +++ b/chrome/browser/sharing/sharing_fcm_handler.cc
@@ -95,16 +95,8 @@ << "No payload set in SharingMessage received"; chrome_browser_sharing::MessageType message_type = - chrome_browser_sharing::UNKNOWN_MESSAGE; - if (sharing_message.payload_case() == - chrome_browser_sharing::SharingMessage::kAckMessage) { - DCHECK(sharing_message.has_ack_message()); - message_type = sharing_message.ack_message().original_message_type(); - } else { - message_type = - SharingPayloadCaseToMessageType(sharing_message.payload_case()); - } - LogSharingMessageReceived(message_type, sharing_message.payload_case()); + SharingPayloadCaseToMessageType(sharing_message.payload_case()); + LogSharingMessageReceived(sharing_message.payload_case()); SharingMessageHandler* handler = handler_registry_->GetSharingHandler(sharing_message.payload_case()); @@ -170,7 +162,6 @@ chrome_browser_sharing::AckMessage* ack_message = sharing_message.mutable_ack_message(); ack_message->set_original_message_id(original_message_id); - ack_message->set_original_message_type(original_message_type); if (response) ack_message->set_allocated_response_message(response.release());
diff --git a/chrome/browser/sharing/sharing_fcm_handler_unittest.cc b/chrome/browser/sharing/sharing_fcm_handler_unittest.cc index 3f945d7..1e4d225 100644 --- a/chrome/browser/sharing/sharing_fcm_handler_unittest.cc +++ b/chrome/browser/sharing/sharing_fcm_handler_unittest.cc
@@ -177,8 +177,6 @@ SharingMessage sharing_ack_message; sharing_ack_message.mutable_ack_message()->set_original_message_id( kTestMessageId); - sharing_ack_message.mutable_ack_message()->set_original_message_type( - chrome_browser_sharing::PING_MESSAGE); // Tests OnMessage flow in SharingFCMHandler when no handler is registered. EXPECT_CALL(mock_sharing_message_handler_, OnMessage(_, _)).Times(0); @@ -225,8 +223,6 @@ SharingMessage sharing_ack_message; sharing_ack_message.mutable_ack_message()->set_original_message_id( kTestMessageId); - sharing_ack_message.mutable_ack_message()->set_original_message_type( - chrome_browser_sharing::PING_MESSAGE); sharing_ack_message.mutable_ack_message()->mutable_response_message(); // Tests OnMessage flow in SharingFCMHandler after handler is added. @@ -263,8 +259,6 @@ SharingMessage sharing_ack_message; sharing_ack_message.mutable_ack_message()->set_original_message_id( kTestMessageId); - sharing_ack_message.mutable_ack_message()->set_original_message_type( - chrome_browser_sharing::PING_MESSAGE); // Tests OnMessage flow in SharingFCMHandler after handler is added. ON_CALL(mock_sharing_message_handler_, @@ -300,8 +294,6 @@ SharingMessage sharing_ack_message; sharing_ack_message.mutable_ack_message()->set_original_message_id( kTestMessageId); - sharing_ack_message.mutable_ack_message()->set_original_message_type( - chrome_browser_sharing::PING_MESSAGE); ON_CALL(mock_sharing_message_handler_, OnMessage(ProtoEquals(sharing_message), _))
diff --git a/chrome/browser/sharing/sharing_message_sender.cc b/chrome/browser/sharing/sharing_message_sender.cc index 6d4d27b..eaf0dce 100644 --- a/chrome/browser/sharing/sharing_message_sender.cc +++ b/chrome/browser/sharing/sharing_message_sender.cc
@@ -38,11 +38,13 @@ SharingPayloadCaseToMessageType(message.payload_case()); SharingDevicePlatform receiver_device_platform = sync_prefs_->GetDevicePlatform(device.guid()); + base::TimeDelta last_updated_age = + base::Time::Now() - device.last_updated_timestamp(); auto delegate_iter = send_delegates_.find(delegate_type); if (delegate_iter == send_delegates_.end()) { InvokeSendMessageCallback(message_guid, message_type, - receiver_device_platform, + receiver_device_platform, last_updated_age, SharingSendMessageResult::kInternalError, /*response=*/nullptr); return; @@ -57,7 +59,7 @@ local_device_info_provider_->GetLocalDeviceInfo(); if (!local_device_info) { InvokeSendMessageCallback(message_guid, message_type, - receiver_device_platform, + receiver_device_platform, last_updated_age, SharingSendMessageResult::kInternalError, /*response=*/nullptr); return; @@ -67,13 +69,12 @@ FROM_HERE, {base::TaskPriority::USER_VISIBLE, content::BrowserThread::UI}, base::BindOnce(&SharingMessageSender::InvokeSendMessageCallback, weak_ptr_factory_.GetWeakPtr(), message_guid, message_type, - receiver_device_platform, + receiver_device_platform, last_updated_age, SharingSendMessageResult::kAckTimeout, /*response=*/nullptr), response_timeout); - LogSharingDeviceLastUpdatedAge( - message_type, base::Time::Now() - device.last_updated_timestamp()); + LogSharingDeviceLastUpdatedAge(message_type, last_updated_age); LogSharingVersionComparison(message_type, device.chrome_version()); message.set_sender_guid(local_device_info->guid()); @@ -84,7 +85,8 @@ device, response_timeout - kAckTimeToLive, std::move(message), base::BindOnce(&SharingMessageSender::OnMessageSent, weak_ptr_factory_.GetWeakPtr(), base::TimeTicks::Now(), - message_guid, message_type, receiver_device_platform)); + message_guid, message_type, receiver_device_platform, + last_updated_age)); } void SharingMessageSender::OnMessageSent( @@ -92,11 +94,13 @@ const std::string& message_guid, chrome_browser_sharing::MessageType message_type, SharingDevicePlatform receiver_device_platform, + base::TimeDelta last_updated_age, SharingSendMessageResult result, base::Optional<std::string> message_id) { if (result != SharingSendMessageResult::kSuccessful) { InvokeSendMessageCallback(message_guid, message_type, - receiver_device_platform, result, + receiver_device_platform, last_updated_age, + result, /*response=*/nullptr); return; } @@ -104,10 +108,11 @@ send_message_times_.emplace(*message_id, start_time); message_guids_.emplace(*message_id, message_guid); receiver_device_platform_.emplace(*message_id, receiver_device_platform); + receiver_last_updated_age_.emplace(*message_id, last_updated_age); + message_types_.emplace(*message_id, message_type); } void SharingMessageSender::OnAckReceived( - chrome_browser_sharing::MessageType message_type, const std::string& message_id, std::unique_ptr<chrome_browser_sharing::ResponseMessage> response) { auto guid_iter = message_guids_.find(message_id); @@ -117,6 +122,12 @@ std::string message_guid = std::move(guid_iter->second); message_guids_.erase(guid_iter); + auto message_types_iter = message_types_.find(message_id); + DCHECK(message_types_iter != message_types_.end()); + + chrome_browser_sharing::MessageType message_type = message_types_iter->second; + message_types_.erase(message_types_iter); + auto times_iter = send_message_times_.find(message_id); DCHECK(times_iter != send_message_times_.end()); @@ -130,8 +141,14 @@ base::TimeTicks::Now() - times_iter->second); send_message_times_.erase(times_iter); + auto last_updated_age_iter = receiver_last_updated_age_.find(message_id); + DCHECK(last_updated_age_iter != receiver_last_updated_age_.end()); + + base::TimeDelta last_updated_age = last_updated_age_iter->second; + receiver_last_updated_age_.erase(last_updated_age_iter); + InvokeSendMessageCallback( - message_guid, message_type, receiver_device_platform, + message_guid, message_type, receiver_device_platform, last_updated_age, SharingSendMessageResult::kSuccessful, std::move(response)); } @@ -146,6 +163,7 @@ const std::string& message_guid, chrome_browser_sharing::MessageType message_type, SharingDevicePlatform receiver_device_platform, + base::TimeDelta last_updated_age, SharingSendMessageResult result, std::unique_ptr<chrome_browser_sharing::ResponseMessage> response) { auto iter = send_message_callbacks_.find(message_guid); @@ -157,4 +175,5 @@ std::move(callback).Run(result, std::move(response)); LogSendSharingMessageResult(message_type, receiver_device_platform, result); + LogSharingDeviceLastUpdatedAgeWithResult(result, last_updated_age); }
diff --git a/chrome/browser/sharing/sharing_message_sender.h b/chrome/browser/sharing/sharing_message_sender.h index cd835b3..a70719a4 100644 --- a/chrome/browser/sharing/sharing_message_sender.h +++ b/chrome/browser/sharing/sharing_message_sender.h
@@ -70,7 +70,6 @@ ResponseCallback callback); virtual void OnAckReceived( - chrome_browser_sharing::MessageType message_type, const std::string& message_id, std::unique_ptr<chrome_browser_sharing::ResponseMessage> response); @@ -84,6 +83,7 @@ const std::string& message_guid, chrome_browser_sharing::MessageType message_type, SharingDevicePlatform receiver_device_platform, + base::TimeDelta last_updated_age, SharingSendMessageResult result, base::Optional<std::string> message_id); @@ -91,6 +91,7 @@ const std::string& message_guid, chrome_browser_sharing::MessageType message_type, SharingDevicePlatform receiver_device_platform, + base::TimeDelta last_updated_age, SharingSendMessageResult result, std::unique_ptr<chrome_browser_sharing::ResponseMessage> response); @@ -105,6 +106,10 @@ std::map<std::string, std::string> message_guids_; // Map of FCM message_id to platform of receiver device for metrics. std::map<std::string, SharingDevicePlatform> receiver_device_platform_; + // Map of FCM message_id to age of last updated timestamp of receiver device. + std::map<std::string, base::TimeDelta> receiver_last_updated_age_; + // Map of FCM message_id to message type for metrics. + std::map<std::string, chrome_browser_sharing::MessageType> message_types_; // Registered delegates to send messages. std::map<DelegateType, std::unique_ptr<SendMessageDelegate>> send_delegates_;
diff --git a/chrome/browser/sharing/sharing_message_sender_unittest.cc b/chrome/browser/sharing/sharing_message_sender_unittest.cc index 6114b9d..e10e48b 100644 --- a/chrome/browser/sharing/sharing_message_sender_unittest.cc +++ b/chrome/browser/sharing/sharing_message_sender_unittest.cc
@@ -158,9 +158,8 @@ // Callback already run with result timeout, ack received for same message // id is ignored. - sharing_message_sender_.OnAckReceived( - SharingPayloadCaseToMessageType(message.payload_case()), - kSenderMessageID, /*response=*/nullptr); + sharing_message_sender_.OnAckReceived(kSenderMessageID, + /*response=*/nullptr); }; EXPECT_CALL( @@ -200,9 +199,8 @@ // Callback already run with result timeout, ack received for same // message id is ignored. - sharing_message_sender_.OnAckReceived( - SharingPayloadCaseToMessageType(message.payload_case()), - kSenderMessageID, /*response=*/nullptr); + sharing_message_sender_.OnAckReceived(kSenderMessageID, + /*response=*/nullptr); }; EXPECT_CALL( @@ -263,9 +261,8 @@ std::make_unique<chrome_browser_sharing::ResponseMessage>(); response_message->CopyFrom(expected_response_message); - sharing_message_sender_.OnAckReceived( - SharingPayloadCaseToMessageType(message.payload_case()), - kSenderMessageID, std::move(response_message)); + sharing_message_sender_.OnAckReceived(kSenderMessageID, + std::move(response_message)); }; EXPECT_CALL(
diff --git a/chrome/browser/sharing/sharing_metrics.cc b/chrome/browser/sharing/sharing_metrics.cc index d491d43..cce5101 100644 --- a/chrome/browser/sharing/sharing_metrics.cc +++ b/chrome/browser/sharing/sharing_metrics.cc
@@ -25,8 +25,8 @@ } } -// These value are mapped to histogram suffixes. Please keep in sync with -// "SharingDevicePlatform" in src/tools/metrics/histograms/enums.xml. +// Maps SharingDevicePlatform enum values to strings used as histogram +// suffixes. Keep in sync with "SharingDevicePlatform" in histograms.xml. std::string DevicePlatformToString(SharingDevicePlatform device_platform) { switch (device_platform) { case SharingDevicePlatform::kAndroid: @@ -46,6 +46,25 @@ } } +// Maps SharingSendMessageResult enum values to strings used as histogram +// suffixes. Keep in sync with "SharingSendMessageResult" in histograms.xml. +std::string SharingSendMessageResultToSuffix(SharingSendMessageResult result) { + switch (result) { + case SharingSendMessageResult::kSuccessful: + return "Successful"; + case SharingSendMessageResult::kDeviceNotFound: + return "DeviceNotFound"; + case SharingSendMessageResult::kNetworkError: + return "NetworkError"; + case SharingSendMessageResult::kPayloadTooLarge: + return "PayloadTooLarge"; + case SharingSendMessageResult::kAckTimeout: + return "AckTimeout"; + case SharingSendMessageResult::kInternalError: + return "InternalError"; + } +} + const std::string& MessageTypeToMessageSuffix( chrome_browser_sharing::MessageType message_type) { // For proto3 enums unrecognized enum values are kept when parsing and their @@ -102,17 +121,10 @@ } void LogSharingMessageReceived( - chrome_browser_sharing::MessageType original_message_type, chrome_browser_sharing::SharingMessage::PayloadCase payload_case) { - chrome_browser_sharing::MessageType actual_message_type = - SharingPayloadCaseToMessageType(payload_case); base::UmaHistogramExactLinear("Sharing.MessageReceivedType", - actual_message_type, + SharingPayloadCaseToMessageType(payload_case), chrome_browser_sharing::MessageType_ARRAYSIZE); - base::UmaHistogramExactLinear( - base::StrCat({"Sharing.MessageReceivedType.", - MessageTypeToMessageSuffix(original_message_type)}), - actual_message_type, chrome_browser_sharing::MessageType_ARRAYSIZE); } void LogSharingRegistrationResult(SharingDeviceRegistrationResult result) { @@ -240,6 +252,14 @@ hours); } +void LogSharingDeviceLastUpdatedAgeWithResult(SharingSendMessageResult result, + base::TimeDelta age) { + base::UmaHistogramCounts1000( + base::StrCat({"Sharing.DeviceLastUpdatedAgeWithResult.", + SharingSendMessageResultToSuffix(result)}), + age.InHours()); +} + void LogSharingVersionComparison( chrome_browser_sharing::MessageType message_type, const std::string& receiver_version) {
diff --git a/chrome/browser/sharing/sharing_metrics.h b/chrome/browser/sharing/sharing_metrics.h index a7f3204..36df70c 100644 --- a/chrome/browser/sharing/sharing_metrics.h +++ b/chrome/browser/sharing/sharing_metrics.h
@@ -46,11 +46,8 @@ chrome_browser_sharing::SharingMessage::PayloadCase payload_case); // Logs the |payload_case| to UMA. This should be called when a SharingMessage -// is received. Additionally, a suffixed version of the histogram is logged -// using |original_message_type| which is different from the actual message type -// for ack messages. +// is received. void LogSharingMessageReceived( - chrome_browser_sharing::MessageType original_message_type, chrome_browser_sharing::SharingMessage::PayloadCase payload_case); // Logs the |result| to UMA. This should be called after attempting register @@ -112,6 +109,11 @@ chrome_browser_sharing::MessageType message_type, base::TimeDelta age); +// Logs to UMA the number of hours since the target device timestamp was last +// updated. Logged when a message is sent to the device and the result is known. +void LogSharingDeviceLastUpdatedAgeWithResult(SharingSendMessageResult result, + base::TimeDelta age); + // Logs to UMA the comparison of the major version of Chrome on this // (the sender) device and the receiver device. Logged when a message is sent. // The |receiver_version| should be a dotted version number with optional @@ -131,7 +133,7 @@ SharingDevicePlatform receiver_device_platform, SharingSendMessageResult result); -// Logs to UMA result of sendin an ack of a SharingMessage. +// Logs to UMA result of sending an ack of a SharingMessage. void LogSendSharingAckMessageResult( chrome_browser_sharing::MessageType message_type, SharingDevicePlatform ack_receiver_device_type,
diff --git a/chrome/browser/sync/sync_error_infobar_delegate_android.cc b/chrome/browser/sync/sync_error_infobar_delegate_android.cc new file mode 100644 index 0000000..b752d21 --- /dev/null +++ b/chrome/browser/sync/sync_error_infobar_delegate_android.cc
@@ -0,0 +1,61 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/sync/sync_error_infobar_delegate_android.h" + +#include "chrome/android/chrome_jni_headers/SyncErrorInfoBar_jni.h" +#include "chrome/browser/infobars/infobar_service.h" +#include "chrome/browser/ui/android/infobars/sync_error_infobar.h" +#include "content/public/browser/web_contents.h" + +using base::android::JavaParamRef; + +SyncErrorInfoBarDelegateAndroid::SyncErrorInfoBarDelegateAndroid() = default; + +SyncErrorInfoBarDelegateAndroid::~SyncErrorInfoBarDelegateAndroid() = default; + +base::android::ScopedJavaLocalRef<jobject> +SyncErrorInfoBarDelegateAndroid::CreateRenderInfoBar(JNIEnv* env) { + base::android::ScopedJavaLocalRef<jobject> java_infobar = + Java_SyncErrorInfoBar_show(env); + java_delegate_.Reset(java_infobar); + return java_infobar; +} + +infobars::InfoBarDelegate::InfoBarIdentifier +SyncErrorInfoBarDelegateAndroid::GetIdentifier() const { + return SYNC_ERROR_INFOBAR_DELEGATE_ANDROID; +} + +base::string16 SyncErrorInfoBarDelegateAndroid::GetMessageText() const { + // Message is set in SyncErrorInfoBar.java. + return base::string16(); +} + +bool SyncErrorInfoBarDelegateAndroid::Accept() { + JNIEnv* env = base::android::AttachCurrentThread(); + DCHECK(env); + DCHECK(java_delegate_); + Java_SyncErrorInfoBar_accept(env, java_delegate_); + return true; +} + +void SyncErrorInfoBarDelegateAndroid::InfoBarDismissed() { + JNIEnv* env = base::android::AttachCurrentThread(); + DCHECK(env); + DCHECK(java_delegate_); + Java_SyncErrorInfoBar_dismissed(env, java_delegate_); +} + +// JNI for SyncErrorInfoBar. +void JNI_SyncErrorInfoBar_Launch(JNIEnv* env, + const JavaParamRef<jobject>& jweb_contents) { + content::WebContents* web_contents = + content::WebContents::FromJavaWebContents(jweb_contents); + DCHECK(web_contents); + InfoBarService* infobar_service = + InfoBarService::FromWebContents(web_contents); + infobar_service->AddInfoBar(std::make_unique<SyncErrorInfoBar>( + base::WrapUnique(new SyncErrorInfoBarDelegateAndroid()))); +}
diff --git a/chrome/browser/sync/sync_error_infobar_delegate_android.h b/chrome/browser/sync/sync_error_infobar_delegate_android.h new file mode 100644 index 0000000..cb666d2 --- /dev/null +++ b/chrome/browser/sync/sync_error_infobar_delegate_android.h
@@ -0,0 +1,30 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_SYNC_SYNC_ERROR_INFOBAR_DELEGATE_ANDROID_H_ +#define CHROME_BROWSER_SYNC_SYNC_ERROR_INFOBAR_DELEGATE_ANDROID_H_ + +#include "base/android/scoped_java_ref.h" +#include "components/infobars/core/confirm_infobar_delegate.h" + +class SyncErrorInfoBarDelegateAndroid : public ConfirmInfoBarDelegate { + public: + SyncErrorInfoBarDelegateAndroid(); + ~SyncErrorInfoBarDelegateAndroid() override; + + // ConfirmInfoBarDelegate: + infobars::InfoBarDelegate::InfoBarIdentifier GetIdentifier() const override; + base::string16 GetMessageText() const override; + bool Accept() override; + void InfoBarDismissed() override; + + base::android::ScopedJavaLocalRef<jobject> CreateRenderInfoBar(JNIEnv* env); + + private: + base::android::ScopedJavaGlobalRef<jobject> java_delegate_; + + DISALLOW_COPY_AND_ASSIGN(SyncErrorInfoBarDelegateAndroid); +}; + +#endif // CHROME_BROWSER_SYNC_SYNC_ERROR_INFOBAR_DELEGATE_ANDROID_H_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 57e11ff..ea1db62a 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -717,6 +717,8 @@ "android/infobars/simple_confirm_infobar_builder.cc", "android/infobars/survey_infobar.cc", "android/infobars/survey_infobar.h", + "android/infobars/sync_error_infobar.cc", + "android/infobars/sync_error_infobar.h", "android/infobars/translate_compact_infobar.cc", "android/infobars/translate_compact_infobar.h", "android/infobars/update_password_infobar.cc",
diff --git a/chrome/browser/ui/android/infobars/sync_error_infobar.cc b/chrome/browser/ui/android/infobars/sync_error_infobar.cc new file mode 100644 index 0000000..998f478 --- /dev/null +++ b/chrome/browser/ui/android/infobars/sync_error_infobar.cc
@@ -0,0 +1,17 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/android/infobars/sync_error_infobar.h" + +SyncErrorInfoBar::SyncErrorInfoBar( + std::unique_ptr<SyncErrorInfoBarDelegateAndroid> delegate) + : ConfirmInfoBar(std::move(delegate)) {} + +SyncErrorInfoBar::~SyncErrorInfoBar() {} + +base::android::ScopedJavaLocalRef<jobject> +SyncErrorInfoBar::CreateRenderInfoBar(JNIEnv* env) { + return static_cast<SyncErrorInfoBarDelegateAndroid*>(delegate()) + ->CreateRenderInfoBar(env); +}
diff --git a/chrome/browser/ui/android/infobars/sync_error_infobar.h b/chrome/browser/ui/android/infobars/sync_error_infobar.h new file mode 100644 index 0000000..965058d --- /dev/null +++ b/chrome/browser/ui/android/infobars/sync_error_infobar.h
@@ -0,0 +1,27 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_ANDROID_INFOBARS_SYNC_ERROR_INFOBAR_H_ +#define CHROME_BROWSER_UI_ANDROID_INFOBARS_SYNC_ERROR_INFOBAR_H_ + +#include "base/android/jni_android.h" +#include "base/macros.h" +#include "chrome/browser/sync/sync_error_infobar_delegate_android.h" +#include "chrome/browser/ui/android/infobars/confirm_infobar.h" + +class SyncErrorInfoBar : public ConfirmInfoBar { + public: + explicit SyncErrorInfoBar( + std::unique_ptr<SyncErrorInfoBarDelegateAndroid> delegate); + ~SyncErrorInfoBar() override; + + protected: + // ConfirmInfoBar: + base::android::ScopedJavaLocalRef<jobject> CreateRenderInfoBar( + JNIEnv* env) override; + + DISALLOW_COPY_AND_ASSIGN(SyncErrorInfoBar); +}; + +#endif // CHROME_BROWSER_UI_ANDROID_INFOBARS_SYNC_ERROR_INFOBAR_H_
diff --git a/chrome/browser/ui/android/passwords/manual_filling_view_android.cc b/chrome/browser/ui/android/passwords/manual_filling_view_android.cc index 84640a6b..e92b606 100644 --- a/chrome/browser/ui/android/passwords/manual_filling_view_android.cc +++ b/chrome/browser/ui/android/passwords/manual_filling_view_android.cc
@@ -26,6 +26,7 @@ #include "components/autofill/core/browser/ui/accessory_sheet_data.h" #include "components/autofill/core/common/password_form.h" #include "components/password_manager/core/browser/credential_cache.h" +#include "components/password_manager/core/browser/password_form_manager.h" #include "ui/android/view_android.h" #include "ui/android/window_android.h" @@ -221,6 +222,13 @@ } // static +void JNI_ManualFillingComponentBridge_DisableServerPredictionsForTesting( + JNIEnv* env) { + password_manager::PasswordFormManager:: + DisableFillingServerPredictionsForTesting(); +} + +// static std::unique_ptr<ManualFillingViewInterface> ManualFillingViewInterface::Create( ManualFillingController* controller) { return std::make_unique<ManualFillingViewAndroid>(controller);
diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc index c37f67e..faf7010 100644 --- a/chrome/browser/ui/browser_tabrestore.cc +++ b/chrome/browser/ui/browser_tabrestore.cc
@@ -21,9 +21,11 @@ #include "components/sessions/content/content_serialized_navigation_builder.h" #include "components/tab_groups/tab_group_id.h" #include "content/public/browser/navigation_entry.h" +#include "content/public/browser/render_widget_host_view.h" #include "content/public/browser/restore_type.h" #include "content/public/browser/session_storage_namespace.h" #include "content/public/browser/web_contents.h" +#include "ui/gfx/geometry/size.h" using content::NavigationEntry; using content::RestoreType; @@ -89,6 +91,32 @@ return web_contents; } +// Start loading a restored tab after adding it to its browser, if visible. +// +// Without this, loading starts when +// WebContentsImpl::UpdateWebContentsVisibility(VISIBLE) is invoked, which +// happens at a different time on Mac vs. other desktop platform due to a +// different windowing system. Starting to load here ensures consistent behavior +// across desktop platforms and allows FirstWebContentsProfiler to have strict +// cross-platform expectations about events it observes. +void LoadRestoredTabIfVisible(Browser* browser, + content::WebContents* web_contents) { + if (web_contents->GetVisibility() != content::Visibility::VISIBLE) + return; + + DCHECK_EQ(browser->tab_strip_model()->GetActiveWebContents(), web_contents); + // A layout should already have been performed to determine the contents size. + // The contents size should not be empty, unless the browser size and restored + // size are also empty. + DCHECK(!browser->window()->GetContentsSize().IsEmpty() || + (browser->window()->GetBounds().IsEmpty() && + browser->window()->GetRestoredBounds().IsEmpty())); + DCHECK_EQ(GetWebContentsSize(web_contents), + browser->window()->GetContentsSize()); + + web_contents->GetController().LoadIfNecessary(); +} + } // namespace WebContents* AddRestoredTab( @@ -105,10 +133,11 @@ content::SessionStorageNamespace* session_storage_namespace, const std::string& user_agent_override, bool from_session_restore) { + const bool initially_hidden = !select || browser->window()->IsMinimized(); std::unique_ptr<WebContents> web_contents = CreateRestoredTab( browser, navigations, selected_navigation, extension_app_id, from_last_session, last_active_time, session_storage_namespace, - user_agent_override, !select, from_session_restore); + user_agent_override, initially_hidden, from_session_restore); int add_types = select ? TabStripModel::ADD_ACTIVE : TabStripModel::ADD_NONE; if (pin) { @@ -126,24 +155,16 @@ group.value()); } - if (select) { - if ( -#if defined(OS_MACOSX) - // Activating a window on another space causes the system to switch to - // that space. Since the session restore process shows and activates - // windows itself, activating windows here should be safe to skip. - // Cautiously apply only to macOS, for now (https://crbug.com/1019048). - !from_session_restore && -#endif - !browser->window()->IsMinimized()) - browser->window()->Activate(); - } else { + if (initially_hidden) { // We set the size of the view here, before Blink does its initial layout. // If we don't, the initial layout of background tabs will be performed // with a view width of 0, which may cause script outputs and anchor link // location calculations to be incorrect even after a new layout with // proper view dimensions. TabStripModel::AddWebContents() contains similar // logic. + // + // TODO(https://crbug.com/1040221): There should be a way to ask the browser + // to perform a layout so that size of the hidden WebContents is right. gfx::Size size = browser->window()->GetContentsSize(); // Fallback to the restore bounds if it's empty as the window is not shown // yet and the bounds may not be available on all platforms. @@ -151,11 +172,28 @@ size = browser->window()->GetRestoredBounds().size(); ResizeWebContents(raw_web_contents, gfx::Rect(size)); raw_web_contents->WasHidden(); + } else { + const bool should_activate = +#if defined(OS_MACOSX) + // Activating a window on another space causes the system to switch to + // that space. Since the session restore process shows and activates + // windows itself, activating windows here should be safe to skip. + // Cautiously apply only to macOS, for now (https://crbug.com/1019048). + !from_session_restore; +#else + true; +#endif + if (should_activate) + browser->window()->Activate(); } + SessionService* session_service = SessionServiceFactory::GetForProfileIfExisting(browser->profile()); if (session_service) session_service->TabRestored(raw_web_contents, pin); + + LoadRestoredTabIfVisible(browser, raw_web_contents); + return raw_web_contents; } @@ -182,6 +220,9 @@ insertion_index + 1, std::move(web_contents), TabStripModel::ADD_ACTIVE | TabStripModel::ADD_INHERIT_OPENER); tab_strip->CloseWebContentsAt(insertion_index, TabStripModel::CLOSE_NONE); + + LoadRestoredTabIfVisible(browser, raw_web_contents); + return raw_web_contents; }
diff --git a/chrome/browser/ui/browser_tabrestore_browsertest.cc b/chrome/browser/ui/browser_tabrestore_browsertest.cc index aa39ae4..2ed95e8 100644 --- a/chrome/browser/ui/browser_tabrestore_browsertest.cc +++ b/chrome/browser/ui/browser_tabrestore_browsertest.cc
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "chrome/browser/ui/browser_tabrestore.h" + #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/sessions/tab_restore_service_factory.h" #include "chrome/browser/ui/browser.h" @@ -14,6 +16,7 @@ #include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/ui_test_utils.h" #include "components/sessions/core/tab_restore_service.h" +#include "content/public/browser/navigation_controller.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/web_contents.h" #include "content/public/common/url_constants.h" @@ -80,12 +83,17 @@ Browser* browser = active_browser_list->get(0); RecentTabsSubMenuModel menu(nullptr, browser); menu.ExecuteCommand(RecentTabsSubMenuModel::GetFirstRecentTabsCommandId(), 0); + // There should be 3 restored tabs in the new browser. The active tab should + // be loading. + EXPECT_EQ(2u, active_browser_list->size()); + Browser* restored_browser = active_browser_list->get(1); + EXPECT_EQ(3, restored_browser->tab_strip_model()->count()); + EXPECT_TRUE(restored_browser->tab_strip_model() + ->GetActiveWebContents() + ->GetController() + .GetPendingEntry()); AwaitTabsReady(&queue, 2); - // There should be 3 restored tabs in the new browser. - EXPECT_EQ(2u, active_browser_list->size()); - browser = active_browser_list->get(1); - EXPECT_EQ(3, browser->tab_strip_model()->count()); // For the two test tabs we've just received "READY" DOM message. // But there won't be such message from the "about:blank" tab. // And it is possible that TabLoader hasn't loaded it yet. @@ -93,7 +101,7 @@ // CheckVisbility on "about:blank". { content::WebContents* about_blank_contents = - browser->tab_strip_model()->GetWebContentsAt(0); + restored_browser->tab_strip_model()->GetWebContentsAt(0); EXPECT_EQ("about:blank", about_blank_contents->GetURL().spec()); if (about_blank_contents->IsLoading() || about_blank_contents->GetController().NeedsReload()) { @@ -106,7 +114,53 @@ } // The middle tab only should have visible disposition. - CheckVisbility(browser->tab_strip_model(), 1); + CheckVisbility(restored_browser->tab_strip_model(), 1); +} + +// Expect a selected restored tab to start loading synchronously. +// +// Previously, on Mac, a selected restored tab only started loading when a +// native message indicated that the window was visible. On other platforms, +// it started loading synchronously. https://crbug.com/1022492 +IN_PROC_BROWSER_TEST_F(BrowserTabRestoreTest, + SelectedRestoredTabStartsLoading) { + sessions::SerializedNavigationEntry navigation_entry; + navigation_entry.set_index(0); + navigation_entry.set_virtual_url(GURL(url::kAboutBlankURL)); + + std::vector<sessions::SerializedNavigationEntry> navigations; + navigations.push_back(navigation_entry); + + content::WebContents* web_contents = chrome::AddRestoredTab( + browser(), navigations, /* tab_index=*/1, /* selected_navigation=*/0, + /* extension_app_id=*/std::string(), /* raw_group_id=*/base::nullopt, + /* select=*/true, /* pin=*/false, /* from_last_session=*/true, + /* last_active_time=*/base::TimeTicks::Now(), + /* storage_namespace=*/nullptr, + /* user_agent_override=*/std::string(), /* from_session_restore=*/true); + + EXPECT_TRUE(web_contents->GetController().GetPendingEntry()); +} + +// Expect a *non* selected restored tab to *not* start loading synchronously. +IN_PROC_BROWSER_TEST_F(BrowserTabRestoreTest, + NonSelectedRestoredTabDoesNotStartsLoading) { + sessions::SerializedNavigationEntry navigation_entry; + navigation_entry.set_index(0); + navigation_entry.set_virtual_url(GURL(url::kAboutBlankURL)); + + std::vector<sessions::SerializedNavigationEntry> navigations; + navigations.push_back(navigation_entry); + + content::WebContents* web_contents = chrome::AddRestoredTab( + browser(), navigations, /* tab_index=*/1, /* selected_navigation=*/0, + /* extension_app_id=*/std::string(), /* raw_group_id=*/base::nullopt, + /* select=*/false, /* pin=*/false, /* from_last_session=*/true, + /* last_active_time=*/base::TimeTicks::Now(), + /* storage_namespace=*/nullptr, + /* user_agent_override=*/std::string(), /* from_session_restore=*/true); + + EXPECT_FALSE(web_contents->GetController().GetPendingEntry()); } IN_PROC_BROWSER_TEST_F(BrowserTabRestoreTest, DelegateRestoreTabDisposition) {
diff --git a/chrome/browser/ui/views/passwords/password_pending_view.cc b/chrome/browser/ui/views/passwords/password_pending_view.cc index 93c22d2..403fae8 100644 --- a/chrome/browser/ui/views/passwords/password_pending_view.cc +++ b/chrome/browser/ui/views/passwords/password_pending_view.cc
@@ -472,9 +472,12 @@ } void PasswordPendingView::UpdateDialogButtons() { + if (sign_in_promo_) { + DialogDelegate::set_buttons(ui::DIALOG_BUTTON_NONE); + return; + } DialogDelegate::set_buttons( - sign_in_promo_ ? ui::DIALOG_BUTTON_NONE - : (ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL)); + (ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL)); DialogDelegate::set_button_label( ui::DIALOG_BUTTON_OK, l10n_util::GetStringUTF16(model()->IsCurrentStateUpdate()
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc index 43ba4ee..779701d 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -1851,9 +1851,9 @@ void PressEscapeWhileDetachedStep2(const BrowserList* browser_list) { ASSERT_EQ(2u, browser_list->size()); Browser* new_browser = browser_list->get(1); - ui_controls::SendKeyPress( + ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync( new_browser->window()->GetNativeWindow(), ui::VKEY_ESCAPE, false, false, - false, false); + false, false)); } } // namespace
diff --git a/chrome/browser/ui/web_contents_sizer.cc b/chrome/browser/ui/web_contents_sizer.cc index 60580df..64b64a9 100644 --- a/chrome/browser/ui/web_contents_sizer.cc +++ b/chrome/browser/ui/web_contents_sizer.cc
@@ -6,11 +6,13 @@ #include "build/build_config.h" #include "content/public/browser/web_contents.h" +#include "ui/gfx/geometry/size.h" #if defined(USE_AURA) #include "ui/aura/window.h" #elif defined(OS_ANDROID) #include "content/public/browser/render_widget_host_view.h" +#include "ui/android/view_android.h" #endif void ResizeWebContents(content::WebContents* web_contents, @@ -22,5 +24,19 @@ content::RenderWidgetHostView* view = web_contents->GetRenderWidgetHostView(); if (view) view->SetBounds(new_bounds); +#else +#error "ResizeWebContents not implemented for this platform" +#endif +} + +gfx::Size GetWebContentsSize(content::WebContents* web_contents) { +#if defined(USE_AURA) + aura::Window* window = web_contents->GetNativeView(); + return window->bounds().size(); +#elif defined(OS_ANDROID) + ui::ViewAndroid* view_android = web_contents->GetNativeView(); + return view_android->bounds().size(); +#else +#error "GetWebContentsSize not implemented for this platform" #endif }
diff --git a/chrome/browser/ui/web_contents_sizer.h b/chrome/browser/ui/web_contents_sizer.h index c9aa44f..5e8702c9 100644 --- a/chrome/browser/ui/web_contents_sizer.h +++ b/chrome/browser/ui/web_contents_sizer.h
@@ -11,10 +11,14 @@ namespace gfx { class Rect; +class Size; } // A platform-agnostic function to resize a WebContents. void ResizeWebContents(content::WebContents* web_contents, const gfx::Rect& bounds); +// A platform-agnostic function to get the size of a WebContents. +gfx::Size GetWebContentsSize(content::WebContents* web_contents); + #endif // CHROME_BROWSER_UI_WEB_CONTENTS_SIZER_H_
diff --git a/chrome/browser/ui/web_contents_sizer.mm b/chrome/browser/ui/web_contents_sizer.mm index a613d92..432bf58e 100644 --- a/chrome/browser/ui/web_contents_sizer.mm +++ b/chrome/browser/ui/web_contents_sizer.mm
@@ -7,6 +7,7 @@ #import <Cocoa/Cocoa.h> #include "content/public/browser/web_contents.h" +#include "ui/gfx/geometry/size.h" void ResizeWebContents(content::WebContents* web_contents, const gfx::Rect& new_bounds) { @@ -22,3 +23,9 @@ new_bounds.size().height()); [view setFrame:new_wcv_frame]; } + +gfx::Size GetWebContentsSize(content::WebContents* web_contents) { + NSView* view = web_contents->GetNativeView().GetNativeNSView(); + NSRect frame = [view frame]; + return gfx::Size(NSWidth(frame), NSHeight(frame)); +}
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index a75ce31..fbb385d4 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -3166,6 +3166,16 @@ IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING_ASK_RECOMMENDED}, {"siteSettingsBluetoothScanningBlock", IDS_SETTINGS_SITE_SETTINGS_BLUETOOTH_SCANNING_BLOCK}, + {"siteSettingsAr", IDS_SETTINGS_SITE_SETTINGS_AR}, + {"siteSettingsArAsk", IDS_SETTINGS_SITE_SETTINGS_AR_ASK}, + {"siteSettingsArAskRecommended", + IDS_SETTINGS_SITE_SETTINGS_AR_ASK_RECOMMENDED}, + {"siteSettingsArBlock", IDS_SETTINGS_SITE_SETTINGS_AR_BLOCK}, + {"siteSettingsVr", IDS_SETTINGS_SITE_SETTINGS_VR}, + {"siteSettingsVrAsk", IDS_SETTINGS_SITE_SETTINGS_VR_ASK}, + {"siteSettingsVrAskRecommended", + IDS_SETTINGS_SITE_SETTINGS_VR_ASK_RECOMMENDED}, + {"siteSettingsVrBlock", IDS_SETTINGS_SITE_SETTINGS_VR_BLOCK}, }; AddLocalizedStringsBulk(html_source, kLocalizedStrings); @@ -3234,6 +3244,10 @@ html_source->AddBoolean( "enableQuietNotificationPromptsSetting", base::FeatureList::IsEnabled(features::kQuietNotificationPrompts)); + + html_source->AddBoolean( + "enableWebXrContentSetting", + base::FeatureList::IsEnabled(features::kWebXrPermissionsApi)); } #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/ui/webui/site_settings_helper.cc b/chrome/browser/ui/webui/site_settings_helper.cc index 1c6af1a..d50fb66 100644 --- a/chrome/browser/ui/webui/site_settings_helper.cc +++ b/chrome/browser/ui/webui/site_settings_helper.cc
@@ -93,6 +93,8 @@ {ContentSettingsType::NATIVE_FILE_SYSTEM_WRITE_GUARD, "native-file-system-write"}, {ContentSettingsType::MIXEDSCRIPT, "mixed-script"}, + {ContentSettingsType::VR, "vr"}, + {ContentSettingsType::AR, "ar"}, // Add new content settings here if a corresponding Javascript string // representation for it is not required. Note some exceptions do have UI in @@ -125,8 +127,6 @@ {ContentSettingsType::NFC, nullptr}, {ContentSettingsType::BLUETOOTH_CHOOSER_DATA, nullptr}, {ContentSettingsType::SAFE_BROWSING_URL_CHECK_DATA, nullptr}, - {ContentSettingsType::VR, nullptr}, - {ContentSettingsType::AR, nullptr}, }; static_assert(base::size(kContentSettingsTypeGroupNames) == // ContentSettingsType starts at -1, so add 1 here.
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/credential_provider/gaiacp/gaia_credential_base.cc index 382d0bc..ad21f74 100644 --- a/chrome/credential_provider/gaiacp/gaia_credential_base.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_base.cc
@@ -2255,6 +2255,10 @@ << "'. Maximum attempts reached."; *error_text = AllocErrorString(IDS_INTERNAL_ERROR_BASE); return hr; + } else if (hr == HRESULT_FROM_WIN32(NERR_PasswordTooShort)) { + LOGFN(ERROR) << "Password being used is too short as per the group " + << "policies set by your IT admin on this device."; + *error_text = AllocErrorString(IDS_CREATE_USER_PASSWORD_TOO_SHORT_BASE); } else if (FAILED(hr)) { LOGFN(ERROR) << "Failed to create user '" << found_domain << "\\" << found_username << "'. hr=" << putHR(hr);
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc index a9d41f1..da379b21 100644 --- a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
@@ -605,6 +605,24 @@ ASSERT_EQ(S_OK, FinishLogonProcess(false, false, IDS_INTERNAL_ERROR_BASE)); } +TEST_F(GcpGaiaCredentialBaseTest, FailedUserCreation_PasswordTooShort) { + // Create provider and start logon. + Microsoft::WRL::ComPtr<ICredentialProviderCredential> cred; + + ASSERT_EQ(S_OK, InitializeProviderAndGetCredential(0, &cred)); + + // Fail user creation. + fake_os_user_manager()->SetShouldFailUserCreation(true); + fake_os_user_manager()->SetShouldUserCreationFailureReason( + HRESULT_FROM_WIN32(NERR_PasswordTooShort)); + + ASSERT_EQ(S_OK, StartLogonProcessAndWait()); + + // Logon process should fail with an internal error. + ASSERT_EQ(S_OK, FinishLogonProcess(false, false, + IDS_CREATE_USER_PASSWORD_TOO_SHORT_BASE)); +} + TEST_F(GcpGaiaCredentialBaseTest, FailOnInvalidDomain) { const base::string16 allowed_email_domains = L"acme.com,acme2.com,acme3.com";
diff --git a/chrome/credential_provider/gaiacp/gaia_resources.grd b/chrome/credential_provider/gaiacp/gaia_resources.grd index 82c7c50..8945f46 100644 --- a/chrome/credential_provider/gaiacp/gaia_resources.grd +++ b/chrome/credential_provider/gaiacp/gaia_resources.grd
@@ -199,6 +199,9 @@ <message name="IDS_INVALID_AD_UPN" desc=""> No Domain user could be found for your account. Please contact your administrator. </message> + <message name="IDS_CREATE_USER_PASSWORD_TOO_SHORT" desc=""> + Account password is too short. Please contact your administrator. + </message> </messages> </release> </grit>
diff --git a/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_CREATE_USER_PASSWORD_TOO_SHORT.png.sha1 b/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_CREATE_USER_PASSWORD_TOO_SHORT.png.sha1 new file mode 100644 index 0000000..0a15afa3 --- /dev/null +++ b/chrome/credential_provider/gaiacp/gaia_resources_grd/IDS_CREATE_USER_PASSWORD_TOO_SHORT.png.sha1
@@ -0,0 +1 @@ +6d60502641e516045b3e49acea76686f0631d69c \ No newline at end of file
diff --git a/chrome/credential_provider/test/gcp_fakes.cc b/chrome/credential_provider/test/gcp_fakes.cc index 3180a83..755fb87 100644 --- a/chrome/credential_provider/test/gcp_fakes.cc +++ b/chrome/credential_provider/test/gcp_fakes.cc
@@ -160,7 +160,7 @@ *error = 0; if (should_fail_user_creation_) - return E_FAIL; + return fail_user_creation_hr_; // Username or password cannot be empty. if (username == nullptr || !username[0] || password == nullptr ||
diff --git a/chrome/credential_provider/test/gcp_fakes.h b/chrome/credential_provider/test/gcp_fakes.h index ee56858..4ef259a 100644 --- a/chrome/credential_provider/test/gcp_fakes.h +++ b/chrome/credential_provider/test/gcp_fakes.h
@@ -123,6 +123,10 @@ should_fail_user_creation_ = should_fail; } + void SetShouldUserCreationFailureReason(HRESULT hr) { + fail_user_creation_hr_ = hr; + } + void SetIsDeviceDomainJoined(bool is_device_domain_joined) { is_device_domain_joined_ = is_device_domain_joined; } @@ -196,6 +200,7 @@ bool is_device_domain_joined_ = false; bool fail_change_password_ = false; HRESULT failed_change_password_hr_ = E_FAIL; + HRESULT fail_user_creation_hr_ = E_FAIL; }; ///////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 59692ae0..9c81d1c 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -3908,6 +3908,9 @@ "../browser/performance_manager/persistence/site_data/unittest_utils.cc", "../browser/performance_manager/persistence/site_data/unittest_utils.h", + # Urgent discarding from performance_manager isn't supported on Android. + "../browser/performance_manager/graph/policies/urgent_page_discarding_policy_unittest.cc", + # Android does not use the Message Center notification system. "../browser/notifications/notification_ui_manager_unittest.cc", "../browser/platform_util_unittest.cc", @@ -5549,6 +5552,7 @@ "../browser/password_manager/password_manager_interactive_test_base.cc", "../browser/password_manager/password_manager_interactive_test_base.h", "../browser/password_manager/password_manager_interactive_uitest.cc", + "../browser/portal/portal_interactive_uittest.cc", "../browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc", "../browser/renderer_context_menu/render_view_context_menu_browsertest_util.h", "../browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc",
diff --git a/chrome/test/data/android/portals/focus-transfer-portal.html b/chrome/test/data/android/portals/focus-transfer-portal.html new file mode 100644 index 0000000..f7d333b3 --- /dev/null +++ b/chrome/test/data/android/portals/focus-transfer-portal.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<body> + <script> + window.onportalactivate = e => { + let portal = e.adoptPredecessor(); + document.body.appendChild(portal); + } + + let focusPromise = new Promise(r => window.onfocus = r); + + function windowBlurred() { + let portal = document.querySelector('portal'); + portal.postMessage('windowBlurred', '*'); + portal.onmessage = e => domAutomationController.send(e.data); + } + + function buttonBlurred() { + let portal = document.querySelector('portal'); + portal.postMessage('buttonBlurred', '*'); + portal.onmessage = e => domAutomationController.send(e.data); + } + </script> +</body>
diff --git a/chrome/test/data/android/portals/focus-transfer.html b/chrome/test/data/android/portals/focus-transfer.html new file mode 100644 index 0000000..fd946df --- /dev/null +++ b/chrome/test/data/android/portals/focus-transfer.html
@@ -0,0 +1,28 @@ +<!DOCTYPE html> +<body> + <portal src="focus-transfer-portal.html"></portal> + <button>button</button> + <script> + let windowBlurred = false; + let buttonBlurred = false; + + function activatePortal() { + let portal = document.querySelector('portal'); + portal.activate().then(() => { + document.body.removeChild(portal); + window.portalHost.onmessage = e => { + if (e.data === 'windowBlurred') + window.portalHost.postMessage(windowBlurred, '*'); + if (e.data === 'buttonBlurred') + window.portalHost.postMessage(buttonBlurred, '*'); + } + }); + } + + let button = document.querySelector('button'); + button.focus(); + + window.onblur = () => windowBlurred = true; + button.onblur = () => buttonBlurred = true; + </script> +</body>
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json index 2d9a60e..4d8b051b 100644 --- a/chrome/test/data/policy/policy_test_cases.json +++ b/chrome/test/data/policy/policy_test_cases.json
@@ -6499,7 +6499,7 @@ }, "UnsafeEventsReportingEnabled": { - "os": ["win", "linux", "mac"], + "os": ["win", "linux", "mac", "chromeos"], "policy_pref_mapping_test": [ { "policies": { @@ -6511,7 +6511,7 @@ }, "BlockLargeFileTransfer": { - "os": ["win", "linux", "mac"], + "os": ["win", "linux", "mac", "chromeos"], "policy_pref_mapping_test": [ { "policies": { @@ -6523,7 +6523,7 @@ }, "DelayDeliveryUntilVerdict": { - "os": ["win", "linux", "mac"], + "os": ["win", "linux", "mac", "chromeos"], "policy_pref_mapping_test": [ { "policies": { @@ -6535,7 +6535,7 @@ }, "AllowPasswordProtectedFiles": { - "os": ["win", "linux", "mac"], + "os": ["win", "linux", "mac", "chromeos"], "policy_pref_mapping_test": [ { "policies": { @@ -6547,7 +6547,7 @@ }, "CheckContentCompliance": { - "os": ["win", "linux", "mac"], + "os": ["win", "linux", "mac", "chromeos"], "policy_pref_mapping_test": [ { "policies": { "CheckContentCompliance": 0 }, @@ -6556,11 +6556,35 @@ ] }, - "URLsToCheckComplianceOfDownloadedContent": {}, + "URLsToCheckComplianceOfDownloadedContent": { + "os": ["win", "linux", "mac", "chromeos"], + "policy_pref_mapping_test": [ + { + "policies": { "URLsToCheckComplianceOfDownloadedContent": ["[*.]google.com"] }, + "prefs": { "safebrowsing.urls_to_check_compliance_of_downloaded_content": { "local_state": true } } + } + ] + }, - "URLsToNotCheckComplianceOfUploadedContent": {}, + "URLsToCheckForMalwareOfUploadedContent": { + "os": ["win", "linux", "mac", "chromeos"], + "policy_pref_mapping_test": [ + { + "policies": { "URLsToCheckForMalwareOfUploadedContent": ["[*.]google.com"] }, + "prefs": { "safebrowsing.urls_to_check_for_malware_of_uploaded_content": { "local_state": true } } + } + ] + }, - "URLsToCheckForMalwareOfUploadedContent": {}, + "URLsToNotCheckComplianceOfUploadedContent": { + "os": ["win", "linux", "mac", "chromeos"], + "policy_pref_mapping_test": [ + { + "policies": { "URLsToNotCheckComplianceOfUploadedContent": ["[*.]google.com"] }, + "prefs": { "policy.urls_to_not_check_compliance_of_uploaded_content": { "local_state": true } } + } + ] + }, "RendererCodeIntegrityEnabled": { "os": ["win"],
diff --git a/chrome/test/data/webui/settings/site_details_tests.js b/chrome/test/data/webui/settings/site_details_tests.js index ac43492..201ec24 100644 --- a/chrome/test/data/webui/settings/site_details_tests.js +++ b/chrome/test/data/webui/settings/site_details_tests.js
@@ -103,6 +103,13 @@ test_util.createContentSettingTypeToValuePair( settings.ContentSettingsTypes.HID_DEVICES, [test_util.createRawSiteException('https://foo.com:443')]), + test_util.createContentSettingTypeToValuePair( + settings.ContentSettingsTypes.AR, + [test_util.createRawSiteException('https://foo.com:443')]), + test_util.createContentSettingTypeToValuePair( + settings.ContentSettingsTypes.VR, + [test_util.createRawSiteException('https://foo.com:443')]), + ], [ test_util.createContentSettingTypeToValuePair( settings.ContentSettingsTypes.USB_DEVICES, @@ -138,10 +145,6 @@ nonSiteDetailsContentSettingsTypes.push( settings.ContentSettingsTypes.PROTECTED_CONTENT); } - const experimentalSiteDetailsContentSettingsTypes = [ - settings.ContentSettingsTypes.BLUETOOTH_SCANNING, - settings.ContentSettingsTypes.HID_DEVICES, - ]; // A list of optionally shown content settings mapped to their loadTimeData // flag string. @@ -160,6 +163,25 @@ optionalSiteDetailsContentSettingsTypes[settings.ContentSettingsTypes .MIXEDSCRIPT] = 'enableInsecureContentContentSetting'; + optionalSiteDetailsContentSettingsTypes[settings.ContentSettingsTypes + .BLUETOOTH_SCANNING] = + 'enableExperimentalWebPlatformFeatures'; + optionalSiteDetailsContentSettingsTypes[settings.ContentSettingsTypes + .HID_DEVICES] = + 'enableExperimentalWebPlatformFeatures'; + optionalSiteDetailsContentSettingsTypes[settings.ContentSettingsTypes.AR] = + 'enableWebXrContentSetting'; + optionalSiteDetailsContentSettingsTypes[settings.ContentSettingsTypes.VR] = + 'enableWebXrContentSetting'; + + const controlledSettingsCount = /** @type{string : int } */ ({}); + + controlledSettingsCount['enableSafeBrowsingSubresourceFilter'] = 1; + controlledSettingsCount['enablePaymentHandlerContentSetting'] = 1; + controlledSettingsCount['enableNativeFileSystemWriteContentSetting'] = 1; + controlledSettingsCount['enableInsecureContentContentSetting'] = 1; + controlledSettingsCount['enableWebXrContentSetting'] = 2; + controlledSettingsCount['enableExperimentalWebPlatformFeatures'] = 2; browserProxy.setPrefs(prefs); @@ -177,7 +199,6 @@ const numContentSettings = Object.keys(settings.ContentSettingsTypes).length - nonSiteDetailsContentSettingsTypes.length - - experimentalSiteDetailsContentSettingsTypes.length - Object.keys(optionalSiteDetailsContentSettingsTypes).length; const loadTimeDataOverride = {}; @@ -186,7 +207,10 @@ loadTimeData.overrideValues(loadTimeDataOverride); testElement = createSiteDetails('https://foo.com:443'); assertEquals( - numContentSettings + 1, testElement.getCategoryList().length); + numContentSettings + + controlledSettingsCount[optionalSiteDetailsContentSettingsTypes[ + [contentSetting]]], + testElement.getCategoryList().length); // Check for setting = off at the end to ensure that the setting does // not carry over for the next iteration. @@ -196,27 +220,6 @@ testElement = createSiteDetails('https://foo.com:443'); assertEquals(numContentSettings, testElement.getCategoryList().length); } - - const numContentSettings = - Object.keys(settings.ContentSettingsTypes).length - - nonSiteDetailsContentSettingsTypes.length - - Object.keys(optionalSiteDetailsContentSettingsTypes).length; - - // Explicitly set all the optional settings to true. - const loadTimeDataOverride = {}; - loadTimeDataOverride['enableExperimentalWebPlatformFeatures'] = true; - loadTimeData.overrideValues(loadTimeDataOverride); - testElement = createSiteDetails('https://foo.com:443'); - assertEquals(numContentSettings, testElement.getCategoryList().length); - - // Check for setting = off at the end to ensure that the setting does - // not carry over for the next iteration. - loadTimeDataOverride['enableExperimentalWebPlatformFeatures'] = false; - loadTimeData.overrideValues(loadTimeDataOverride); - testElement = createSiteDetails('https://foo.com:443'); - assertEquals( - numContentSettings - experimentalSiteDetailsContentSettingsTypes.length, - testElement.getCategoryList().length); }); test('usage heading shows properly', function() { @@ -332,6 +335,7 @@ loadTimeData.overrideValues({enablePaymentHandlerContentSetting: true}); loadTimeData.overrideValues( {enableNativeFileSystemWriteContentSetting: true}); + loadTimeData.overrideValues({enableWebXrContentSetting: true}); testElement = createSiteDetails('https://foo.com:443'); return browserProxy.whenCalled('isOriginValid')
diff --git a/chromeos/settings/BUILD.gn b/chromeos/settings/BUILD.gn index 12d1ff9f..86528aa 100644 --- a/chromeos/settings/BUILD.gn +++ b/chromeos/settings/BUILD.gn
@@ -40,7 +40,5 @@ "//testing/gtest", "//third_party/icu", ] - sources = [ - "timezone_settings_unittest.cc", - ] + sources = [ "timezone_settings_unittest.cc" ] }
diff --git a/components/autofill/ios/browser/BUILD.gn b/components/autofill/ios/browser/BUILD.gn index 67144b8..dec7482 100644 --- a/components/autofill/ios/browser/BUILD.gn +++ b/components/autofill/ios/browser/BUILD.gn
@@ -63,9 +63,7 @@ "fake_js_autofill_manager.mm", "ios_test_event_waiter.h", ] - public_deps = [ - ":browser", - ] + public_deps = [ ":browser" ] deps = [ "//base", "//base/test:test_support", @@ -79,9 +77,7 @@ source_set("unit_tests") { testonly = true configs += [ "//build/config/compiler:enable_arc" ] - sources = [ - "autofill_agent_unittests.mm", - ] + sources = [ "autofill_agent_unittests.mm" ] deps = [ ":browser", "//base", @@ -102,11 +98,7 @@ bundle_data("autofill_test_bundle_data") { testonly = true - sources = [ - "//components/test/data/autofill/credit_card_upload_form_address_and_cc.html", - ] - outputs = [ - "{{bundle_resources_dir}}/" + - "{{source_root_relative_dir}}/{{source_file_part}}", - ] + sources = [ "//components/test/data/autofill/credit_card_upload_form_address_and_cc.html" ] + outputs = [ "{{bundle_resources_dir}}/" + + "{{source_root_relative_dir}}/{{source_file_part}}" ] }
diff --git a/components/crx_file/BUILD.gn b/components/crx_file/BUILD.gn index 4e6eacb..e40433d3 100644 --- a/components/crx_file/BUILD.gn +++ b/components/crx_file/BUILD.gn
@@ -18,9 +18,7 @@ "//crypto", ] - public_deps = [ - ":crx3_proto", - ] + public_deps = [ ":crx3_proto" ] } static_library("crx_creator") { @@ -35,9 +33,7 @@ "//crypto", ] - public_deps = [ - ":crx3_proto", - ] + public_deps = [ ":crx3_proto" ] } bundle_data("unit_tests_bundle_data") { @@ -51,10 +47,8 @@ "//components/test/data/crx_file/valid_publisher.crx3", "//components/test/data/crx_file/valid_test_publisher.crx3", ] - outputs = [ - "{{bundle_resources_dir}}/" + - "{{source_root_relative_dir}}/{{source_file_part}}", - ] + outputs = [ "{{bundle_resources_dir}}/" + + "{{source_root_relative_dir}}/{{source_file_part}}" ] } source_set("unit_tests") { @@ -76,7 +70,5 @@ } proto_library("crx3_proto") { - sources = [ - "crx3.proto", - ] + sources = [ "crx3.proto" ] }
diff --git a/components/infobars/core/BUILD.gn b/components/infobars/core/BUILD.gn index c14cdac..5b17cf9 100644 --- a/components/infobars/core/BUILD.gn +++ b/components/infobars/core/BUILD.gn
@@ -25,7 +25,11 @@ "simple_alert_infobar_delegate.h", ] - public_deps = [ "//skia" ] + public_deps = [ + ":feature_flags", + "//skia", + ] + deps = [ "//base", "//ui/base", @@ -40,6 +44,15 @@ } } +source_set("feature_flags") { + sources = [ + "infobar_feature.cc", + "infobar_feature.h", + ] + + public_deps = [ "//base" ] +} + if (is_android) { java_cpp_enum("infobar_enums_java") { sources = [ "infobar_delegate.h" ]
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h index 7202f5c..e5a5e81 100644 --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h
@@ -161,6 +161,7 @@ SAFETY_TIP_INFOBAR_DELEGATE = 94, SMS_RECEIVER_INFOBAR_DELEGATE = 95, KNOWN_INTERCEPTION_DISCLOSURE_INFOBAR_DELEGATE = 96, + SYNC_ERROR_INFOBAR_DELEGATE_ANDROID = 97, }; // Describes navigation events, used to decide whether infobars should be
diff --git a/components/infobars/core/infobar_feature.cc b/components/infobars/core/infobar_feature.cc new file mode 100644 index 0000000..e64333d --- /dev/null +++ b/components/infobars/core/infobar_feature.cc
@@ -0,0 +1,8 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/infobars/core/infobar_feature.h" + +const base::Feature kIOSInfobarUIReboot{"InfobarUIReboot", + base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/components/infobars/core/infobar_feature.h b/components/infobars/core/infobar_feature.h new file mode 100644 index 0000000..200b542 --- /dev/null +++ b/components/infobars/core/infobar_feature.h
@@ -0,0 +1,14 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_INFOBARS_CORE_INFOBAR_FEATURE_H_ +#define COMPONENTS_INFOBARS_CORE_INFOBAR_FEATURE_H_ + +#include "base/feature_list.h" + +// Feature to choose whether to use the new Messages Infobar design on iOS, or +// the legacy one. +extern const base::Feature kIOSInfobarUIReboot; + +#endif // COMPONENTS_INFOBARS_CORE_INFOBAR_FEATURE_H_
diff --git a/components/keep_alive_registry/BUILD.gn b/components/keep_alive_registry/BUILD.gn index a2d8813..c648b15a 100644 --- a/components/keep_alive_registry/BUILD.gn +++ b/components/keep_alive_registry/BUILD.gn
@@ -15,9 +15,7 @@ "scoped_keep_alive.h", ] - deps = [ - "//base", - ] + deps = [ "//base" ] if (is_win) { deps += [ "//components/browser_watcher:stability_client" ] @@ -26,9 +24,7 @@ source_set("unit_tests") { testonly = true - sources = [ - "keep_alive_registry_unittest.cc", - ] + sources = [ "keep_alive_registry_unittest.cc" ] deps = [ ":keep_alive_registry", "//testing/gtest",
diff --git a/components/os_crypt/key_storage_linux.cc b/components/os_crypt/key_storage_linux.cc index 7a29616..2f2d818 100644 --- a/components/os_crypt/key_storage_linux.cc +++ b/components/os_crypt/key_storage_linux.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/environment.h" #include "base/logging.h" +#include "base/metrics/histogram_macros.h" #include "base/nix/xdg_util.h" #include "base/sequenced_task_runner.h" #include "base/synchronization/waitable_event.h" @@ -14,7 +15,6 @@ #include "base/threading/thread_restrictions.h" #include "build/branding_buildflags.h" #include "components/os_crypt/key_storage_config_linux.h" -#include "components/os_crypt/key_storage_util_linux.h" #if defined(USE_LIBSECRET) #include "components/os_crypt/key_storage_libsecret.h" @@ -34,10 +34,56 @@ const char KeyStorageLinux::kKey[] = "Chromium Safe Storage"; #endif -#if defined(USE_LIBSECRET) || defined(USE_KEYRING) || defined(USE_KWALLET) - namespace { +// Used for metrics. Do not rearrange. +enum class BackendUsage { + // A backend was selected and used. + // *_FAILED means the backend was selected but couldn't be used. + kDefer = 0, + kDeferFailed = 1, + kBasicText = 2, + kBasicTextFailed = 3, + kGnomeAny = 4, + kGnomeAnyFailed = 5, + kGnomeKeyring = 6, + kGnomeKeyringFailed = 7, + kGnomeLibsecret = 8, + kGnomeLibsecretFailed = 9, + kKwallet = 10, + kKwalletFailed = 11, + kKwallet5 = 12, + kKwallet5Failed = 13, + kMaxValue = kKwallet5Failed, +}; + +constexpr BackendUsage SelectedBackendToMetric( + os_crypt::SelectedLinuxBackend selection, + bool used) { + switch (selection) { + case os_crypt::SelectedLinuxBackend::DEFER: + return used ? BackendUsage::kDefer : BackendUsage::kDeferFailed; + case os_crypt::SelectedLinuxBackend::BASIC_TEXT: + return used ? BackendUsage::kBasicText : BackendUsage::kBasicTextFailed; + case os_crypt::SelectedLinuxBackend::GNOME_ANY: + return used ? BackendUsage::kGnomeAny : BackendUsage::kGnomeAnyFailed; + case os_crypt::SelectedLinuxBackend::GNOME_KEYRING: + return used ? BackendUsage::kGnomeKeyring + : BackendUsage::kGnomeKeyringFailed; + case os_crypt::SelectedLinuxBackend::GNOME_LIBSECRET: + return used ? BackendUsage::kGnomeLibsecret + : BackendUsage::kGnomeLibsecretFailed; + case os_crypt::SelectedLinuxBackend::KWALLET: + return used ? BackendUsage::kKwallet : BackendUsage::kKwalletFailed; + case os_crypt::SelectedLinuxBackend::KWALLET5: + return used ? BackendUsage::kKwallet5 : BackendUsage::kKwallet5Failed; + } + NOTREACHED(); + return BackendUsage::kDeferFailed; +} + +#if defined(USE_LIBSECRET) || defined(USE_KEYRING) || defined(USE_KWALLET) + const char* SelectedLinuxBackendToString( os_crypt::SelectedLinuxBackend selection) { switch (selection) { @@ -60,15 +106,14 @@ return nullptr; } -} // namespace - #endif // defined(USE_LIBSECRET) || defined(USE_KEYRING) || // defined(USE_KWALLET) +} // namespace + // static std::unique_ptr<KeyStorageLinux> KeyStorageLinux::CreateService( const os_crypt::Config& config) { -#if defined(USE_LIBSECRET) || defined(USE_KEYRING) || defined(USE_KWALLET) // Select a backend. bool use_backend = !config.should_use_preference || os_crypt::GetBackendUse(config.user_data_path); @@ -86,6 +131,26 @@ // Try initializing the selected backend. // In case of GNOME_ANY, prefer Libsecret std::unique_ptr<KeyStorageLinux> key_storage; +#if defined(USE_LIBSECRET) || defined(USE_KEYRING) || defined(USE_KWALLET) + key_storage = CreateServiceInternal(selected_backend, config); +#endif // defined(USE_LIBSECRET) || defined(USE_KEYRING) || + // defined(USE_KWALLET) + + UMA_HISTOGRAM_ENUMERATION( + "OSCrypt.BackendUsage", + SelectedBackendToMetric(selected_backend, key_storage != nullptr)); + + // Either there are no supported backends on this platform, or we chose to + // use no backend, or the chosen backend failed to initialise. + VLOG_IF(1, !key_storage) << "OSCrypt did not initialize a backend."; + return key_storage; +} + +#if defined(USE_LIBSECRET) || defined(USE_KEYRING) || defined(USE_KWALLET) +std::unique_ptr<KeyStorageLinux> KeyStorageLinux::CreateServiceInternal( + os_crypt::SelectedLinuxBackend selected_backend, + const os_crypt::Config& config) { + std::unique_ptr<KeyStorageLinux> key_storage; #if defined(USE_LIBSECRET) if (selected_backend == os_crypt::SelectedLinuxBackend::GNOME_ANY || @@ -128,14 +193,11 @@ LOG(WARNING) << "OSCrypt tried KWallet but couldn't initialise."; } #endif // defined(USE_KWALLET) -#endif // defined(USE_LIBSECRET) || defined(USE_KEYRING) || - // defined(USE_KWALLET) - // Either there are no supported backends on this platform, or we chose to - // use no backend, or the chosen backend failed to initialise. - VLOG(1) << "OSCrypt did not initialize a backend."; return nullptr; } +#endif // defined(USE_LIBSECRET) || defined(USE_KEYRING) || + // defined(USE_KWALLET) bool KeyStorageLinux::WaitForInitOnTaskRunner() { base::ScopedAllowBaseSyncPrimitivesOutsideBlockingScope allow_sync_primitives;
diff --git a/components/os_crypt/key_storage_linux.h b/components/os_crypt/key_storage_linux.h index e4acd264..b43eda5 100644 --- a/components/os_crypt/key_storage_linux.h +++ b/components/os_crypt/key_storage_linux.h
@@ -10,11 +10,12 @@ #include "base/component_export.h" #include "base/macros.h" +#include "components/os_crypt/key_storage_util_linux.h" namespace base { class SequencedTaskRunner; class WaitableEvent; -} +} // namespace base namespace os_crypt { struct Config; @@ -54,6 +55,14 @@ static const char kKey[]; private: +#if defined(USE_LIBSECRET) || defined(USE_KEYRING) || defined(USE_KWALLET) + // Tries to load the appropriate key storage. Returns null if none succeed. + static std::unique_ptr<KeyStorageLinux> CreateServiceInternal( + os_crypt::SelectedLinuxBackend selected_backend, + const os_crypt::Config& config); +#endif // defined(USE_LIBSECRET) || defined(USE_KEYRING) || + // defined(USE_KWALLET) + // Performs Init() on the backend's preferred thread. bool WaitForInitOnTaskRunner();
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc index ff34a665..fb1b9237 100644 --- a/components/password_manager/core/browser/password_form_manager.cc +++ b/components/password_manager/core/browser/password_form_manager.cc
@@ -566,6 +566,9 @@ return; } + if (is_submitted_) + CreatePendingCredentials(); + if (IsHttpAuth()) { // No server prediction for http auth, so no need to wait. FillHttpAuth();
diff --git a/components/password_manager/core/browser/password_form_manager.h b/components/password_manager/core/browser/password_form_manager.h index 36c6a01..1d252716 100644 --- a/components/password_manager/core/browser/password_form_manager.h +++ b/components/password_manager/core/browser/password_form_manager.h
@@ -197,10 +197,17 @@ // another one. std::unique_ptr<PasswordFormManager> Clone(); + // Because of the android integration tests, it can't be guarded by if + // defined(UNIT_TEST). + static void DisableFillingServerPredictionsForTesting() { + wait_for_server_predictions_for_filling_ = false; + } + #if defined(UNIT_TEST) static void set_wait_for_server_predictions_for_filling(bool value) { wait_for_server_predictions_for_filling_ = value; } + FormSaver* form_saver() const { return password_save_manager_->GetFormSaver(); }
diff --git a/components/password_manager/core/browser/password_form_manager_unittest.cc b/components/password_manager/core/browser/password_form_manager_unittest.cc index 1f6fb01..68c6bf1 100644 --- a/components/password_manager/core/browser/password_form_manager_unittest.cc +++ b/components/password_manager/core/browser/password_form_manager_unittest.cc
@@ -725,6 +725,14 @@ EXPECT_GE(pending_credentials.date_last_used, kNow); } +// Tests creating pending credentials when fetch completed +TEST_P(PasswordFormManagerTest, CreatePendingCredentialsWhenFetchCompleted) { + form_manager_->set_wait_for_server_predictions_for_filling(false); + form_manager_->ProvisionallySave(submitted_form_, &driver_, nullptr); + SetNonFederatedAndNotifyFetchCompleted({&parsed_submitted_form_}); + EXPECT_FALSE(form_manager_->IsNewLogin()); +} + // Tests creating pending credentials when new credentials are submitted and the // store has another credentials saved. TEST_P(PasswordFormManagerTest, CreatePendingCredentialsNewCredentials) {
diff --git a/components/payments/content/android/BUILD.gn b/components/payments/content/android/BUILD.gn index a1e804d1..2be6e91 100644 --- a/components/payments/content/android/BUILD.gn +++ b/components/payments/content/android/BUILD.gn
@@ -71,17 +71,13 @@ } java_cpp_strings("error_strings_generated_srcjar") { - sources = [ - "//components/payments/core/error_strings.cc", - ] + sources = [ "//components/payments/core/error_strings.cc" ] template = "java_templates/ErrorStrings.java.tmpl" } java_cpp_strings("method_strings_generated_srcjar") { - sources = [ - "//components/payments/core/method_strings.cc", - ] + sources = [ "//components/payments/core/method_strings.cc" ] template = "java_templates/MethodStrings.java.tmpl" }
diff --git a/components/performance_manager/decorators/page_live_state_decorator.cc b/components/performance_manager/decorators/page_live_state_decorator.cc index dc66ddf1..9a16dc2 100644 --- a/components/performance_manager/decorators/page_live_state_decorator.cc +++ b/components/performance_manager/decorators/page_live_state_decorator.cc
@@ -36,6 +36,7 @@ bool IsBeingMirrored() const override { return is_being_mirrored_; } bool IsCapturingDesktop() const override { return is_capturing_desktop_; } bool IsAutoDiscardable() const override { return is_auto_discardable_; } + bool WasDiscarded() const override { return was_discarded_; } void set_is_connected_to_usb_device(bool is_connected_to_usb_device) { is_connected_to_usb_device_ = is_connected_to_usb_device; @@ -59,6 +60,7 @@ void set_is_auto_discardable(bool is_auto_discardable) { is_auto_discardable_ = is_auto_discardable; } + void set_was_discarded(bool was_discarded) { was_discarded_ = was_discarded; } private: // Make the impl our friend so it can access the constructor and any @@ -74,7 +76,8 @@ bool is_capturing_audio_ = false; bool is_being_mirrored_ = false; bool is_capturing_desktop_ = false; - bool is_auto_discardable_ = false; + bool is_auto_discardable_ = true; + bool was_discarded_ = false; }; // Helper function to set a property in PageLiveStateDataImpl. This does the @@ -167,9 +170,21 @@ is_auto_discardable); } +// static +void PageLiveStateDecorator::SetWasDiscarded(content::WebContents* contents, + bool was_discarded) { + SetPropertyForWebContents(contents, &PageLiveStateDataImpl::set_was_discarded, + was_discarded); +} + PageLiveStateDecorator::Data::Data() = default; PageLiveStateDecorator::Data::~Data() = default; +const PageLiveStateDecorator::Data* PageLiveStateDecorator::Data::FromPageNode( + const PageNode* page_node) { + return PageLiveStateDataImpl::Get(PageNodeImpl::FromNode(page_node)); +} + PageLiveStateDecorator::Data* PageLiveStateDecorator::Data::GetOrCreateForTesting(PageNode* page_node) { return PageLiveStateDataImpl::GetOrCreate(PageNodeImpl::FromNode(page_node));
diff --git a/components/performance_manager/decorators/page_live_state_decorator_unittest.cc b/components/performance_manager/decorators/page_live_state_decorator_unittest.cc index e925cda7..ba174f4 100644 --- a/components/performance_manager/decorators/page_live_state_decorator_unittest.cc +++ b/components/performance_manager/decorators/page_live_state_decorator_unittest.cc
@@ -15,19 +15,19 @@ void EndToEndPropertyTest(content::WebContents* contents, bool (PageLiveStateDecorator::Data::*pm_getter)() const, - void (*ui_thread_setter)(content::WebContents*, - bool)) { - // By default all properties are set to false. - TestPageLiveStatePropertyOnPMSequence(contents, pm_getter, false); + void (*ui_thread_setter)(content::WebContents*, bool), + bool default_state = false) { + // By default all properties are set to the default value. + TestPageLiveStatePropertyOnPMSequence(contents, pm_getter, default_state); // Pretend that the property changed and make sure that the PageNode data gets // updated. - (*ui_thread_setter)(contents, true); - TestPageLiveStatePropertyOnPMSequence(contents, pm_getter, true); + (*ui_thread_setter)(contents, !default_state); + TestPageLiveStatePropertyOnPMSequence(contents, pm_getter, !default_state); // Switch back to the default state. - (*ui_thread_setter)(contents, false); - TestPageLiveStatePropertyOnPMSequence(contents, pm_getter, false); + (*ui_thread_setter)(contents, default_state); + TestPageLiveStatePropertyOnPMSequence(contents, pm_getter, default_state); } } // namespace @@ -98,7 +98,8 @@ TEST_F(PageLiveStateDecoratorTest, SetIsAutoDiscardable) { EndToEndPropertyTest(contents(), &PageLiveStateDecorator::Data::IsAutoDiscardable, - &PageLiveStateDecorator::SetIsAutoDiscardable); + &PageLiveStateDecorator::SetIsAutoDiscardable, + /*default_state=*/true); } } // namespace performance_manager
diff --git a/components/performance_manager/public/decorators/page_live_state_decorator.h b/components/performance_manager/public/decorators/page_live_state_decorator.h index 44b85db..53f96cff 100644 --- a/components/performance_manager/public/decorators/page_live_state_decorator.h +++ b/components/performance_manager/public/decorators/page_live_state_decorator.h
@@ -50,6 +50,9 @@ // can be discarded during an intervention. static void SetIsAutoDiscardable(content::WebContents* contents, bool is_auto_discardable); + + static void SetWasDiscarded(content::WebContents* contents, + bool was_discarded); }; class PageLiveStateDecorator::Data { @@ -66,7 +69,9 @@ virtual bool IsBeingMirrored() const = 0; virtual bool IsCapturingDesktop() const = 0; virtual bool IsAutoDiscardable() const = 0; + virtual bool WasDiscarded() const = 0; + static const Data* FromPageNode(const PageNode* page_node); static Data* GetOrCreateForTesting(PageNode* page_node); };
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 6c7d662..52a8a63 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -18741,7 +18741,7 @@ 'per_profile': False, }, 'id': 600, - 'supported_on': ['chrome.*:78-'], + 'supported_on': ['chrome.*:78-', 'chrome_os:81-'], 'future': True, 'caption': '''URL patterns to check uploaded content for malware''', 'tags': [],
diff --git a/components/printing/browser/BUILD.gn b/components/printing/browser/BUILD.gn index 67cbacbd..038cd48b 100644 --- a/components/printing/browser/BUILD.gn +++ b/components/printing/browser/BUILD.gn
@@ -3,6 +3,9 @@ # found in the LICENSE file. import("//build/buildflag_header.gni") +if (is_chromeos) { + import("//printing/backend/tools/code_generator.gni") +} declare_args() { # For now, we only enable print media localization on Chrome OS. @@ -15,6 +18,16 @@ flags = [ "PRINT_MEDIA_L10N_ENABLED=$enable_print_media_l10n" ] } +if (is_chromeos) { + localization_map_path = "$target_gen_dir/ipp_l10n.cc" + + ipp_code_generate("ipp_l10n_generate") { + outputs = [ localization_map_path ] + args = [ "--localization-map=" + + rebase_path(localization_map_path, root_build_dir) ] + } +} + static_library("browser") { sources = [ "features.cc", @@ -57,9 +70,11 @@ } if (is_chromeos) { + deps += [ ":ipp_l10n_generate" ] + sources += [ - "ipp_l10n.cc", "ipp_l10n.h", + localization_map_path, ] }
diff --git a/components/printing/browser/ipp_l10n.cc b/components/printing/browser/ipp_l10n.cc deleted file mode 100644 index df95eb3..0000000 --- a/components/printing/browser/ipp_l10n.cc +++ /dev/null
@@ -1,86 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "components/printing/browser/ipp_l10n.h" - -#include "base/no_destructor.h" -#include "components/strings/grit/components_strings.h" - -// TODO(crbug.com/964919) generate from csv. -const std::map<base::StringPiece, int>& CapabilityLocalizationMap() { - static const base::NoDestructor<std::map<base::StringPiece, int>> l10n_map( - {{"finishings/4", IDS_PRINT_FINISHINGS_STAPLE}, - {"finishings/5", IDS_PRINT_FINISHINGS_PUNCH}, - {"finishings/6", IDS_PRINT_FINISHINGS_COVER}, - {"finishings/7", IDS_PRINT_FINISHINGS_BIND}, - {"finishings/8", IDS_PRINT_FINISHINGS_SADDLE_STITCH}, - {"finishings/9", IDS_PRINT_FINISHINGS_EDGE_STITCH}, - {"finishings/10", IDS_PRINT_FINISHINGS_FOLD}, - {"finishings/11", IDS_PRINT_FINISHINGS_TRIM}, - {"finishings/12", IDS_PRINT_FINISHINGS_BALE}, - {"finishings/13", IDS_PRINT_FINISHINGS_BOOKLET_MAKER}, - {"finishings/14", IDS_PRINT_FINISHINGS_JOG_OFFSET}, - {"finishings/15", IDS_PRINT_FINISHINGS_COAT}, - {"finishings/16", IDS_PRINT_FINISHINGS_LAMINATE}, - {"finishings/20", IDS_PRINT_FINISHINGS_STAPLE_TOP_LEFT}, - {"finishings/21", IDS_PRINT_FINISHINGS_STAPLE_BOTTOM_LEFT}, - {"finishings/22", IDS_PRINT_FINISHINGS_STAPLE_TOP_RIGHT}, - {"finishings/23", IDS_PRINT_FINISHINGS_STAPLE_BOTTOM_RIGHT}, - {"finishings/24", IDS_PRINT_FINISHINGS_EDGE_STITCH_LEFT}, - {"finishings/25", IDS_PRINT_FINISHINGS_EDGE_STITCH_TOP}, - {"finishings/26", IDS_PRINT_FINISHINGS_EDGE_STITCH_RIGHT}, - {"finishings/27", IDS_PRINT_FINISHINGS_EDGE_STITCH_BOTTOM}, - {"finishings/28", IDS_PRINT_FINISHINGS_STAPLE_DUAL_LEFT}, - {"finishings/29", IDS_PRINT_FINISHINGS_STAPLE_DUAL_TOP}, - {"finishings/30", IDS_PRINT_FINISHINGS_STAPLE_DUAL_RIGHT}, - {"finishings/31", IDS_PRINT_FINISHINGS_STAPLE_DUAL_BOTTOM}, - {"finishings/32", IDS_PRINT_FINISHINGS_STAPLE_TRIPLE_LEFT}, - {"finishings/33", IDS_PRINT_FINISHINGS_STAPLE_TRIPLE_TOP}, - {"finishings/34", IDS_PRINT_FINISHINGS_STAPLE_TRIPLE_RIGHT}, - {"finishings/35", IDS_PRINT_FINISHINGS_STAPLE_TRIPLE_BOTTOM}, - {"finishings/50", IDS_PRINT_FINISHINGS_BIND_LEFT}, - {"finishings/51", IDS_PRINT_FINISHINGS_BIND_TOP}, - {"finishings/52", IDS_PRINT_FINISHINGS_BIND_RIGHT}, - {"finishings/53", IDS_PRINT_FINISHINGS_BIND_BOTTOM}, - {"finishings/60", IDS_PRINT_FINISHINGS_TRIM_AFTER_PAGES}, - {"finishings/61", IDS_PRINT_FINISHINGS_TRIM_AFTER_DOCUMENTS}, - {"finishings/62", IDS_PRINT_FINISHINGS_TRIM_AFTER_COPIES}, - {"finishings/63", IDS_PRINT_FINISHINGS_TRIM_AFTER_JOB}, - {"finishings/70", IDS_PRINT_FINISHINGS_PUNCH_TOP_LEFT}, - {"finishings/71", IDS_PRINT_FINISHINGS_PUNCH_BOTTOM_LEFT}, - {"finishings/72", IDS_PRINT_FINISHINGS_PUNCH_TOP_RIGHT}, - {"finishings/73", IDS_PRINT_FINISHINGS_PUNCH_BOTTOM_RIGHT}, - {"finishings/74", IDS_PRINT_FINISHINGS_PUNCH_DUAL_LEFT}, - {"finishings/75", IDS_PRINT_FINISHINGS_PUNCH_DUAL_TOP}, - {"finishings/76", IDS_PRINT_FINISHINGS_PUNCH_DUAL_RIGHT}, - {"finishings/77", IDS_PRINT_FINISHINGS_PUNCH_DUAL_BOTTOM}, - {"finishings/78", IDS_PRINT_FINISHINGS_PUNCH_TRIPLE_LEFT}, - {"finishings/79", IDS_PRINT_FINISHINGS_PUNCH_TRIPLE_TOP}, - {"finishings/80", IDS_PRINT_FINISHINGS_PUNCH_TRIPLE_RIGHT}, - {"finishings/81", IDS_PRINT_FINISHINGS_PUNCH_TRIPLE_BOTTOM}, - {"finishings/82", IDS_PRINT_FINISHINGS_PUNCH_QUAD_LEFT}, - {"finishings/83", IDS_PRINT_FINISHINGS_PUNCH_QUAD_TOP}, - {"finishings/84", IDS_PRINT_FINISHINGS_PUNCH_QUAD_RIGHT}, - {"finishings/85", IDS_PRINT_FINISHINGS_PUNCH_QUAD_BOTTOM}, - {"finishings/86", IDS_PRINT_FINISHINGS_PUNCH_MULTIPLE_LEFT}, - {"finishings/87", IDS_PRINT_FINISHINGS_PUNCH_MULTIPLE_TOP}, - {"finishings/88", IDS_PRINT_FINISHINGS_PUNCH_MULTIPLE_RIGHT}, - {"finishings/89", IDS_PRINT_FINISHINGS_PUNCH_MULTIPLE_BOTTOM}, - {"finishings/90", IDS_PRINT_FINISHINGS_FOLD_ACCORDION}, - {"finishings/91", IDS_PRINT_FINISHINGS_FOLD_DOUBLE_GATE}, - {"finishings/92", IDS_PRINT_FINISHINGS_FOLD_GATE}, - {"finishings/93", IDS_PRINT_FINISHINGS_FOLD_HALF}, - {"finishings/94", IDS_PRINT_FINISHINGS_FOLD_HALF_Z}, - {"finishings/95", IDS_PRINT_FINISHINGS_FOLD_LEFT_GATE}, - {"finishings/96", IDS_PRINT_FINISHINGS_FOLD_LETTER}, - {"finishings/97", IDS_PRINT_FINISHINGS_FOLD_PARALLEL}, - {"finishings/98", IDS_PRINT_FINISHINGS_FOLD_POSTER}, - {"finishings/99", IDS_PRINT_FINISHINGS_FOLD_RIGHT_GATE}, - {"finishings/100", IDS_PRINT_FINISHINGS_FOLD_Z}, - {"finishings/101", IDS_PRINT_FINISHINGS_FOLD_ENGINEERING_Z}, - {"print-quality/3", IDS_PRINT_PRINT_QUALITY_DRAFT}, - {"print-quality/4", IDS_PRINT_PRINT_QUALITY_NORMAL}, - {"print-quality/5", IDS_PRINT_PRINT_QUALITY_HIGH}}); - return *l10n_map; -}
diff --git a/components/printing_component_strings.grdp b/components/printing_component_strings.grdp index da71bb7..a922d13 100644 --- a/components/printing_component_strings.grdp +++ b/components/printing_component_strings.grdp
@@ -13,13 +13,472 @@ </message> <if expr="chromeos"> - <message name="IDS_PRINT_FINISHINGS_STAPLE" desc="RFC 8011 (5.2.6) finishings: staple"> + <message name="IDS_PRINT_CHAMBER_HUMIDITY" desc="PWG5100.21 (8.1.1) chamber-humidity"> + Chamber humidity + </message> + <message name="IDS_PRINT_CHAMBER_TEMPERATURE" desc="PWG5100.21 (8.1.2) chamber-temperature"> + Chamber temperature + </message> + <message name="IDS_PRINT_CONFIRMATION_SHEET_PRINT" desc="PWG5100.15 (7.2.1) confirmation-sheet-print. 'Print' is a verb."> + Print confirmation sheet + </message> + <message name="IDS_PRINT_FEED_ORIENTATION" desc="PWG5100.11 (7.1) feed-orientation. 'Feed' is a verb."> + Feed orientation + </message> + <message name="IDS_PRINT_FONT_NAME_REQUESTED" desc="PWG5100.11 (7.2) font-name-requested"> + Font requested + </message> + <message name="IDS_PRINT_FONT_SIZE_REQUESTED" desc="PWG5100.11 (7.3) font-size-requested"> + Font size requested + </message> + <message name="IDS_PRINT_IMPOSITION_TEMPLATE" desc="PWG5100.3 (3.4) imposition-template"> + Imposition template + </message> + <message name="IDS_PRINT_JOB_ACCOUNT_ID" desc="PWG5100.3 (3.6) job-account-id"> + Job account ID + </message> + <message name="IDS_PRINT_JOB_ACCOUNT_TYPE" desc="PWG5100.16 (6.2.1) job-account-type"> + Job account type + </message> + <message name="IDS_PRINT_JOB_ACCOUNTING_USER_ID" desc="PWG5100.3 (3.7) job-account-user-id"> + Job accounting user ID + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL" desc="PWG5100.11 (7.4) job-delay-output-until"> + Delay output until + </message> + <message name="IDS_PRINT_JOB_ERROR_ACTION" desc="PWG5100.13 (5.2.1) job-error-action"> + Error action + </message> + <message name="IDS_PRINT_JOB_MESSAGE_TO_OPERATOR" desc="PWG5100.3 (3.10) job-message-to-operator. 'Message' is a noun."> + Message to operator + </message> + <message name="IDS_PRINT_JOB_PAGES_PER_SET" desc="PWG5100.1 (5.3) job-pages-per-set"> + Pages per set + </message> + <message name="IDS_PRINT_JOB_PRIORITY" desc="RFC8011 (5.2.1) job-priority"> + Priority + </message> + <message name="IDS_PRINT_JOB_RECIPIENT_NAME" desc="PWG5100.11 (7.8) job-recipient-name"> + Recipient name + </message> + <message name="IDS_PRINT_JOB_SHEET_MESSAGE" desc="PWG5100.3 (3.12) job-sheet-message"> + Job sheet message + </message> + <message name="IDS_PRINT_JOB_SHEETS" desc="RFC8011 (5.2.3) job-sheets"> + Job sheets + </message> + <message name="IDS_PRINT_MEDIA_INPUT_TRAY_CHECK" desc="PWG5100.3 (3.14) media-input-tray-check"> + Check input tray media + </message> + <message name="IDS_PRINT_MULTIPLE_DOCUMENT_HANDLING" desc="RFC8011 (5.2.4) multiple-document-hand"> + Multiple documents handling + </message> + <message name="IDS_PRINT_MULTIPLE_OBJECT_HANDLING" desc="PWG5100.21 (8.1.2) multiple-object-handling"> + Multiple objects handling + </message> + <message name="IDS_PRINT_NUMBER_OF_RETRIES" desc="PWG5100.15 (7.2.4) number-of-retries"> + Number of retries + </message> + <message name="IDS_PRINT_OUTPUT_BIN" desc="PWG5100.2 (2.1) output-bin"> + Output bin + </message> + <message name="IDS_PRINT_OUTPUT_DEVICE" desc="PWG5100.7 (5.3.2) output-device"> + Output device + </message> + <message name="IDS_PRINT_PAGE_DELIVERY" desc="PWG5100.3 (3.15) page-delivery"> + Page delivery + </message> + <message name="IDS_PRINT_PAGE_ORDER_RECEIVED" desc="PWG5100.3 (3.16) page-order-received"> + Page order received + </message> + <message name="IDS_PRINT_PLATFORM_TEMPERATURE" desc="PWG5100.21 (8.1.5) platform-temperature"> + Platform temperature + </message> + <message name="IDS_PRINT_PRINT_BASE" desc="PWG5100.21 (8.1.7) print-base. 'Print' is an adjective."> + Print base + </message> + <message name="IDS_PRINT_PRINT_CONTENT_OPTIMIZE" desc="PWG5100.7 (5.3.3) print-content-optimize"> + Optimize print content + </message> + <message name="IDS_PRINT_PRINT_QUALITY" desc="RFC8011 (5.2.13) print-quality"> + Print quality + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT" desc="PWG5100.13 (5.2.4) print-rendering-intent"> + Print rendering intent + </message> + <message name="IDS_PRINT_PRINT_SUPPORTS" desc="PWG5100.21 (8.1.9) print-supports. 'Supports' is a noun."> + Print supports + </message> + <message name="IDS_PRINT_RETRY_INTERVAL" desc="PWG5100.15 (7.2.5) retry-interval"> + Retry interval + </message> + <message name="IDS_PRINT_RETRY_TIME_OUT" desc="PWG5100.15 (7.2.6) retry-time-out"> + Retry time-out + </message> + <message name="IDS_PRINT_X_IMAGE_POSITION" desc="PWG5100.3 (3.19.2) x-image-position. 'Image' is an adjective."> + Image X position + </message> + <message name="IDS_PRINT_X_IMAGE_SHIFT" desc="PWG5100.3 (3.19.3) x-image-shift. 'Image' is an adjective."> + Image X shift + </message> + <message name="IDS_PRINT_X_SIDE1_IMAGE_SHIFT" desc="PWG5100.3 (3.19.4) x-side1-image-shift"> + Side 1 image X shift + </message> + <message name="IDS_PRINT_X_SIDE2_IMAGE_SHIFT" desc="PWG5100.3 (3.19.5) x-side2-image-shift"> + Side 2 image X shift + </message> + <message name="IDS_PRINT_Y_IMAGE_POSITION" desc="PWG5100.3 (3.19.6) y-image-position. 'Image' is an adjective."> + Image Y position + </message> + <message name="IDS_PRINT_Y_IMAGE_SHIFT" desc="PWG5100.3 (3.19.7) y-image-shift. 'Image' is an adjective."> + Image Y shift + </message> + <message name="IDS_PRINT_Y_SIDE1_IMAGE_SHIFT" desc="PWG5100.3 (3.19.8) y-side1-image-shift"> + Side 1 image Y shift + </message> + <message name="IDS_PRINT_Y_SIDE2_IMAGE_SHIFT" desc="PWG5100.3 (3.19.9) y-side2-image-shift"> + Side 2 image Y shift + </message> + <message name="IDS_PRINT_FEED_ORIENTATION_LONG_EDGE_FIRST" desc="PWG5100.11 (7.1) feed-orientation: long-edge-first"> + Long edge first + </message> + <message name="IDS_PRINT_FEED_ORIENTATION_SHORT_EDGE_FIRST" desc="PWG5100.11 (7.1) feed-orientation: short-edge-first"> + Short edge first + </message> + <message name="IDS_PRINT_IMPOSITION_TEMPLATE_NONE" desc="PWG5100.3 (3.4) imposition-template: none"> + None + </message> + <message name="IDS_PRINT_IMPOSITION_TEMPLATE_SIGNATURE" desc="PWG5100.3 (3.4) imposition-template: signature"> + Signature + </message> + <message name="IDS_PRINT_JOB_ACCOUNT_TYPE_GENERAL" desc="PWG5100.16 (6.2.1) job-account-type: general. 'General' means general-purpose."> + General + </message> + <message name="IDS_PRINT_JOB_ACCOUNT_TYPE_GROUP" desc="PWG5100.16 (6.2.1) job-account-type: group. 'Group' is a noun."> + Group + </message> + <message name="IDS_PRINT_JOB_ACCOUNT_TYPE_NONE" desc="PWG5100.16 (6.2.1) job-account-type: none"> + None + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_DAY_TIME" desc="PWG5100.11 (7.4) job-delay-output-until: day-time"> + Day time + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_EVENING" desc="PWG5100.11 (7.4) job-delay-output-until: evening"> + Evening + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_INDEFINITE" desc="PWG5100.11 (7.4) job-delay-output-until: indefinite"> + Indefinite + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_NIGHT" desc="PWG5100.11 (7.4) job-delay-output-until: night"> + Night + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_NO_DELAY_OUTPUT" desc="PWG5100.11 (7.4) job-delay-output-until: no-delay-output"> + No delay + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_SECOND_SHIFT" desc="PWG5100.11 (7.4) job-delay-output-until: second-shift. 'Shift' means work shift."> + Second shift + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_THIRD_SHIFT" desc="PWG5100.11 (7.4) job-delay-output-until: third-shift. 'Shift means work shift."> + Third shift + </message> + <message name="IDS_PRINT_JOB_DELAY_OUTPUT_UNTIL_WEEKEND" desc="PWG5100.11 (7.4) job-delay-output-until: weekend"> + Weekend + </message> + <message name="IDS_PRINT_JOB_ERROR_ACTION_ABORT_JOB" desc="PWG5100.13 (5.2.1) job-error-action: abort-job"> + Abort + </message> + <message name="IDS_PRINT_JOB_ERROR_ACTION_CANCEL_JOB" desc="PWG5100.13 (5.2.1) job-error-action: cancel-job"> + Cancel + </message> + <message name="IDS_PRINT_JOB_ERROR_ACTION_CONTINUE_JOB" desc="PWG5100.13 (5.2.1) job-error-action: continue-job"> + Continue + </message> + <message name="IDS_PRINT_JOB_ERROR_ACTION_SUSPEND_JOB" desc="PWG5100.13 (5.2.1) job-error-action: suspend-job"> + Suspend + </message> + <message name="IDS_PRINT_JOB_SHEETS_FIRST_PRINT_STREAM_PAGE" desc="PWG5100.3 (6.2) Additional values for the IPP 'job-sheets' Job Template Attribute: first-print-stream-page"> + First print page + </message> + <message name="IDS_PRINT_JOB_SHEETS_JOB_BOTH_SHEET" desc="PWG5100.3 (6.2) Additional values for the IPP 'job-sheets' Job Template Attribute: job-both-sheet"> + Both sheet + </message> + <message name="IDS_PRINT_JOB_SHEETS_JOB_END_SHEET" desc="PWG5100.3 (6.2) Additional values for the IPP 'job-sheets' Job Template Attribute: job-end-sheet. 'End' is an adjective."> + End sheet + </message> + <message name="IDS_PRINT_JOB_SHEETS_JOB_START_SHEET" desc="PWG5100.3 (6.2) Additional values for the IPP 'job-sheets' Job Template Attribute: job-start-sheet. 'Start' is an adjective."> + Start sheet + </message> + <message name="IDS_PRINT_JOB_SHEETS_NONE" desc="RFC8011 (5.2.3) job-sheets: none"> + None + </message> + <message name="IDS_PRINT_JOB_SHEETS_STANDARD" desc="RFC8011 (5.2.3) job-sheets: standard"> + Standard + </message> + <message name="IDS_PRINT_MULTIPLE_DOCUMENT_HANDLING_SEPARATE_DOCUMENTS_COLLATED_COPIES" desc="RFC8011 (5.2.4) multiple-document-handling: separate-documents-collated-copies. 'Separate' is an adjective."> + Separate documents/Collated copies + </message> + <message name="IDS_PRINT_MULTIPLE_DOCUMENT_HANDLING_SEPARATE_DOCUMENTS_UNCOLLATED_COPIES" desc="RFC8011 (5.2.4) multiple-document-handling: separate-documents-uncollated-copies. 'Separate' is an adjective."> + Separate documents/Uncollated copies + </message> + <message name="IDS_PRINT_MULTIPLE_DOCUMENT_HANDLING_SINGLE_DOCUMENT" desc="RFC8011 (5.2.4) multiple-document-handling: single-document"> + Single document + </message> + <message name="IDS_PRINT_MULTIPLE_DOCUMENT_HANDLING_SINGLE_DOCUMENT_NEW_SHEET" desc="RFC8011 (5.2.4) multiple-document-handling: single-document-new-sheet"> + Single document/New sheet + </message> + <message name="IDS_PRINT_MULTIPLE_OBJECT_HANDLING_AUTO" desc="PWG5100.21 (8.1.4) multiple-object-handling: auto"> + Auto + </message> + <message name="IDS_PRINT_MULTIPLE_OBJECT_HANDLING_BEST_FIT" desc="PWG5100.21 (8.1.4) multiple-object-handling: best-fit"> + Best fit + </message> + <message name="IDS_PRINT_MULTIPLE_OBJECT_HANDLING_BEST_QUALITY" desc="PWG5100.21 (8.1.4) multiple-object-handling: best-quality"> + Best quality + </message> + <message name="IDS_PRINT_MULTIPLE_OBJECT_HANDLING_BEST_SPEED" desc="PWG5100.21 (8.1.4) multiple-object-handling: best-speed"> + Best speed + </message> + <message name="IDS_PRINT_MULTIPLE_OBJECT_HANDLING_ONE_AT_A_TIME" desc="PWG5100.21 (8.1.4) multiple-object-handling: one-at-a-time"> + One at a time + </message> + <message name="IDS_PRINT_OUTPUT_BIN_AUTO" desc="Automatically choose the correct output tray for the given Job Template attributes"> + Auto + </message> + <message name="IDS_PRINT_OUTPUT_BIN_BOTTOM" desc="PWG5100.2 (2.1) output-bin: bottom"> + Bottom + </message> + <message name="IDS_PRINT_OUTPUT_BIN_CENTER" desc="PWG5100.2 (2.1) output-bin: center"> + Center + </message> + <message name="IDS_PRINT_OUTPUT_BIN_FACE_DOWN" desc="PWG5100.2 (2.1) output-bin: face-down"> + Face down + </message> + <message name="IDS_PRINT_OUTPUT_BIN_FACE_UP" desc="PWG5100.2 (2.1) output-bin: face-up"> + Face up + </message> + <message name="IDS_PRINT_OUTPUT_BIN_LARGE_CAPACITY" desc="PWG5100.2 (2.1) output-bin: large-capacity"> + Large capacity + </message> + <message name="IDS_PRINT_OUTPUT_BIN_LEFT" desc="PWG5100.2 (2.1) output-bin: left"> + Left + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_1" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 1 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_2" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 2 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_3" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 3 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_4" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 4 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_5" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 5 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_6" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 6 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_7" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 7 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_8" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 8 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_9" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 9 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MAILBOX_10" desc="PWG5100.2 (2.1) output-bin: mailbox-N"> + Mailbox 10 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MIDDLE" desc="PWG5100.2 (2.1) output-bin: middle"> + Middle + </message> + <message name="IDS_PRINT_OUTPUT_BIN_MY_MAILBOX" desc="PWG5100.2 (2.1) output-bin: my-mailbox"> + My mailbox + </message> + <message name="IDS_PRINT_OUTPUT_BIN_REAR" desc="PWG5100.2 (2.1) output-bin: rear"> + Rear + </message> + <message name="IDS_PRINT_OUTPUT_BIN_RIGHT" desc="PWG5100.2 (2.1) output-bin: right"> + Right + </message> + <message name="IDS_PRINT_OUTPUT_BIN_SIDE" desc="PWG5100.2 (2.1) output-bin: side"> + Side + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_1" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 1 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_2" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 2 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_3" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 3 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_4" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 4 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_5" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 5 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_6" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 6 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_7" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 7 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_8" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 8 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_9" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 9 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_STACKER_10" desc="PWG5100.2 (2.1) output-bin: stacker-N"> + Stacker 10 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TOP" desc="PWG5100.2 (2.1) output-bin: top"> + Top + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_1" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 1 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_2" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 2 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_3" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 3 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_4" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 4 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_5" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 5 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_6" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 6 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_7" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 7 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_8" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 8 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_9" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 9 + </message> + <message name="IDS_PRINT_OUTPUT_BIN_TRAY_10" desc="PWG5100.2 (2.1) output-bin: tray-N"> + Tray 10 + </message> + <message name="IDS_PRINT_PAGE_DELIVERY_REVERSE_ORDER_FACE_DOWN" desc="PWG5100.3 (3.15) print-page-delivery: reverse-order-face-down"> + Reverse order face down + </message> + <message name="IDS_PRINT_PAGE_DELIVERY_REVERSE_ORDER_FACE_UP" desc="PWG5100.3 (3.15) print-page-delivery: reverse-order-face-up"> + Reverse order face up + </message> + <message name="IDS_PRINT_PAGE_DELIVERY_SAME_ORDER_FACE_DOWN" desc="PWG5100.3 (3.15) print-page-delivery: same-order-face-down"> + Same order face down + </message> + <message name="IDS_PRINT_PAGE_DELIVERY_SAME_ORDER_FACE_UP" desc="PWG5100.3 (3.15) print-page-delivery: same-order-face-up"> + Same order face up + </message> + <message name="IDS_PRINT_PAGE_DELIVERY_SYSTEM_SPECIFIED" desc="PWG5100.3 (3.15) print-page-delivery: system-specified"> + System specified + </message> + <message name="IDS_PRINT_PAGE_ORDER_RECEIVED_1_TO_N_ORDER" desc="PWG5100.3 (3.16) page-order-received: 1-to-n-order"> + 1-to-N order + </message> + <message name="IDS_PRINT_PAGE_ORDER_RECEIVED_N_TO_1_ORDER" desc="PWG5100.3 (3.16) page-order-received: n-to-1-order"> + N-to-1 order + </message> + <message name="IDS_PRINT_PRINT_BASE_BRIM" desc="PWG5100.21 (8.1.7) print-base: brim"> + Brim + </message> + <message name="IDS_PRINT_PRINT_BASE_NONE" desc="PWG5100.21 (8.1.7) print-base: none"> + None + </message> + <message name="IDS_PRINT_PRINT_BASE_RAFT" desc="PWG5100.21 (8.1.7) print-base: raft"> + Raft + </message> + <message name="IDS_PRINT_PRINT_BASE_SKIRT" desc="PWG5100.21 (8.1.7) print-base: skirt"> + Skirt + </message> + <message name="IDS_PRINT_PRINT_BASE_STANDARD" desc="PWG5100.21 (8.1.7) print-base: standard"> + Standard + </message> + <message name="IDS_PRINT_PRINT_CONTENT_OPTIMIZE_AUTO" desc="PWG5100.13 (7.4) print-content-optimize: auto"> + Auto + </message> + <message name="IDS_PRINT_PRINT_CONTENT_OPTIMIZE_GRAPHIC" desc="PWG5100.7 (5.3.3) print-content-optimize: graphics"> + Graphic + </message> + <message name="IDS_PRINT_PRINT_CONTENT_OPTIMIZE_PHOTO" desc="PWG5100.7 (5.3.3) print-content-optimize: photo"> + Photo + </message> + <message name="IDS_PRINT_PRINT_CONTENT_OPTIMIZE_TEXT" desc="PWG5100.7 (5.3.3) print-content-optimize: text"> + Text + </message> + <message name="IDS_PRINT_PRINT_CONTENT_OPTIMIZE_TEXT_AND_GRAPHIC" desc="PWG5100.7 (5.3.3) print-content-optimize: text-and-graphics"> + Text and graphic + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT_ABSOLUTE" desc="PWG5100.13 (5.2.4) print-rendering-intent: absolute"> + Absolute + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT_AUTO" desc="PWG5100.13 (5.2.4) print-rendering-intent: auto"> + Auto + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT_PERCEPTUAL" desc="PWG5100.13 (5.2.4) print-rendering-intent: perceptual"> + Perceptual + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT_RELATIVE" desc="PWG5100.13 (5.2.4) print-rendering-intent: relative"> + Relative + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT_RELATIVE_BPC" desc="PWG5100.13 (5.2.4) print-rendering-intent: relative-bpc"> + Relative with black point compression + </message> + <message name="IDS_PRINT_PRINT_RENDERING_INTENT_SATURATION" desc="PWG5100.13 (5.2.4) print-rendering-intent: saturation"> + Saturation + </message> + <message name="IDS_PRINT_PRINT_SUPPORTS_MATERIAL" desc="PWG5100.21 (8.1.9) print-supports: material. 'Material' is a noun."> + Material + </message> + <message name="IDS_PRINT_PRINT_SUPPORTS_NONE" desc="PWG5100.21 (8.1.9) print-supports: none"> + None + </message> + <message name="IDS_PRINT_PRINT_SUPPORTS_STANDARD" desc="PWG5100.21 (8.1.9) print-supports: standard"> + Standard + </message> + <message name="IDS_PRINT_X_IMAGE_POSITION_CENTER" desc="PWG5100.3 (3.19.2) x-image-position: center"> + Center + </message> + <message name="IDS_PRINT_X_IMAGE_POSITION_LEFT" desc="PWG5100.3 (3.19.2) x-image-position: left"> + Left + </message> + <message name="IDS_PRINT_X_IMAGE_POSITION_NONE" desc="PWG5100.3 (3.19.2) x-image-position: none"> + None + </message> + <message name="IDS_PRINT_X_IMAGE_POSITION_RIGHT" desc="PWG5100.3 (3.19.2) x-image-position: right"> + Right + </message> + <message name="IDS_PRINT_Y_IMAGE_POSITION_BOTTOM" desc="PWG5100.3 (3.19.2) x-image-position: bottom"> + Bottom + </message> + <message name="IDS_PRINT_Y_IMAGE_POSITION_CENTER" desc="PWG5100.3 (3.19.2) x-image-position: center"> + Center + </message> + <message name="IDS_PRINT_Y_IMAGE_POSITION_NONE" desc="PWG5100.3 (3.19.2) x-image-position: none"> + None + </message> + <message name="IDS_PRINT_Y_IMAGE_POSITION_TOP" desc="PWG5100.3 (3.19.2) x-image-position: top"> + Top + </message> + <message name="IDS_PRINT_FINISHINGS_STAPLE" desc="RFC 8011 (5.2.6) finishings: staple. 'Staple' is a verb."> Staple </message> - <message name="IDS_PRINT_FINISHINGS_PUNCH" desc="RFC 8011 (5.2.6) finishings: punch"> + <message name="IDS_PRINT_FINISHINGS_PUNCH" desc="RFC 8011 (5.2.6) finishings: punch. 'Punch' is a verb."> Punch </message> - <message name="IDS_PRINT_FINISHINGS_COVER" desc="RFC 8011 (5.2.6) finishings: cover"> + <message name="IDS_PRINT_FINISHINGS_COVER" desc="RFC 8011 (5.2.6) finishings: cover. 'Cover' is a verb."> Cover </message> <message name="IDS_PRINT_FINISHINGS_BIND" desc="RFC 8011 (5.2.6) finishings: bind"> @@ -37,7 +496,7 @@ <message name="IDS_PRINT_FINISHINGS_TRIM" desc="PWG 5100.1 (5.1.2) PWG 5100.1-2001 'finishings' Values: trim"> Trim </message> - <message name="IDS_PRINT_FINISHINGS_BALE" desc="PWG 5100.1 (5.1.2) PWG 5100.1-2001 'finishings' Values: bale"> + <message name="IDS_PRINT_FINISHINGS_BALE" desc="PWG 5100.1 (5.1.2) PWG 5100.1-2001 'finishings' Values: bale. 'Bale' is a verb."> Bale </message> <message name="IDS_PRINT_FINISHINGS_BOOKLET_MAKER" desc="PWG 5100.1 (5.1.2) PWG 5100.1-2001 'finishings' Values: booklet-maker"> @@ -46,7 +505,7 @@ <message name="IDS_PRINT_FINISHINGS_JOG_OFFSET" desc="PWG 5100.1 (5.1.2) PWG 5100.1-2001 'finishings' Values: jog-offset"> Jog offset </message> - <message name="IDS_PRINT_FINISHINGS_COAT" desc="PWG 5100.1 (5.1.3) PWG 5100.1-2014 'finishings' Values: coat"> + <message name="IDS_PRINT_FINISHINGS_COAT" desc="PWG 5100.1 (5.1.3) PWG 5100.1-2014 'finishings' Values: coat. 'Coat' is a verb."> Coat </message> <message name="IDS_PRINT_FINISHINGS_LAMINATE" desc="PWG 5100.1 (5.1.3) PWG 5100.1-2014 'finishings' Values: laminate">
diff --git a/components/sync/base/model_type.h b/components/sync/base/model_type.h index 5ef237a9..a046ff11 100644 --- a/components/sync/base/model_type.h +++ b/components/sync/base/model_type.h
@@ -36,7 +36,7 @@ // |kModelTypeInfoMap| struct entries are in the same order as their definition // in ModelType enum. When you make changes in ModelType enum, don't forget to // update the |kModelTypeInfoMap| struct in model_type.cc and also the -// SyncModelType and SyncModelTypeByMacro histogram suffixes in histograms.xml +// SyncModelType histogram suffix in histograms.xml enum ModelType { // Object type unknown. Objects may transition through // the unknown state during their initial creation, before @@ -177,8 +177,7 @@ // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. When you add a new entry or when you // deprecate an existing one, also update SyncModelTypes in enums.xml and -// SyncModelType and SyncModelTypeByMacro suffixes in histograms.xml. -// TODO(crbug.com/1019744): Remove the SyncModelTypeByMacro suffixes. +// SyncModelType suffix in histograms.xml. enum class ModelTypeForHistograms { kUnspecified = 0, kTopLevelFolder = 1,
diff --git a/components/sync_sessions/synced_session_tracker.cc b/components/sync_sessions/synced_session_tracker.cc index ee269b3..dbeed4f 100644 --- a/components/sync_sessions/synced_session_tracker.cc +++ b/components/sync_sessions/synced_session_tracker.cc
@@ -58,16 +58,19 @@ return false; } -// Verify that tab IDs appear only once within a session. Intended to prevent -// http://crbug.com/360822. +// Verify that tab and window IDs appear only once within a session. Intended to +// prevent http://crbug.com/360822 and crbug.com/803205. bool IsValidSessionHeader(const sync_pb::SessionHeader& header) { + std::set<int> session_window_ids; std::set<int> session_tab_ids; for (int i = 0; i < header.window_size(); ++i) { const sync_pb::SessionWindow& window = header.window(i); + if (!session_window_ids.insert(window.window_id()).second) + return false; + for (int j = 0; j < window.tab_size(); ++j) { const int tab_id = window.tab(j); - bool success = session_tab_ids.insert(tab_id).second; - if (!success) + if (!session_tab_ids.insert(tab_id).second) return false; } } @@ -83,6 +86,14 @@ SyncedSessionTracker* tracker) { sessions::SessionWindow* session_window = &synced_session_window->wrapped_window; + + // The session window must be initially empty (reset via + // ResetSessionTracking()) to avoid leaving dangling pointers in + // |synced_tab_map|. + // TODO(crbug.com/803205): replace with a DCHECK once PutTabInWindow() isn't + // crashing anymore. + CHECK(session_window->tabs.empty()); + if (specifics.has_window_id()) { session_window->window_id = SessionID::FromSerializedValue(specifics.window_id()); @@ -100,8 +111,9 @@ session_window->type = sessions::SessionWindow::TYPE_POPUP; } } + session_window->timestamp = mtime; - session_window->tabs.clear(); + for (int i = 0; i < specifics.tab_size(); i++) { SessionID tab_id = SessionID::FromSerializedValue(specifics.tab(i)); tracker->PutTabInWindow(session_tag, session_window->window_id, tab_id); @@ -130,7 +142,9 @@ for (int i = 0; i < num_windows; ++i) { const sync_pb::SessionWindow& window_s = header_specifics.window(i); SessionID window_id = SessionID::FromSerializedValue(window_s.window_id()); - tracker->PutWindowInSession(session_tag, window_id); + bool success = tracker->PutWindowInSession(session_tag, window_id); + // Window ID duplicates are filtered out in IsValidSessionHeader(). + DCHECK(success) << "Duplicate window ID in session"; PopulateSyncedSessionWindowFromSpecifics( session_tag, window_s, synced_session->modified_time, synced_session->windows[window_id].get(), tracker); @@ -372,13 +386,13 @@ return session->unmapped_tabs.count(tab_id) != 0; } -void SyncedSessionTracker::PutWindowInSession(const std::string& session_tag, +bool SyncedSessionTracker::PutWindowInSession(const std::string& session_tag, SessionID window_id) { TrackedSession* session = GetTrackedSession(session_tag); if (session->synced_session.windows.count(window_id) != 0) { DVLOG(1) << "Window " << window_id << " already added to session " << session_tag; - return; + return false; } std::unique_ptr<SyncedSessionWindow> window; @@ -403,6 +417,7 @@ DCHECK(GetSession(session_tag)->windows.end() == GetSession(session_tag)->windows.find(window_id)); GetSession(session_tag)->windows[window_id] = std::move(window); + return true; } void SyncedSessionTracker::PutTabInWindow(const std::string& session_tag, @@ -450,10 +465,11 @@ break; } } - // TODO(zea): remove this once PutTabInWindow isn't crashing anymore. + // TODO(crbug.com/803205): replace with a DCHECK once PutTabInWindow() isn't + // crashing anymore. CHECK(tab) << " Unable to find tab " << tab_id << " within unmapped tabs or previously mapped windows." - << " https://crbug.com/639009"; + << " https://crbug.com/803205"; } tab->window_id = window_id; @@ -481,7 +497,9 @@ sessions::SessionTab* SyncedSessionTracker::GetTab( const std::string& session_tag, SessionID tab_id) { - CHECK(tab_id.is_valid()) << "https://crbug.com/639009"; + // TODO(crbug.com/803205): replace with a DCHECK once PutTabInWindow() isn't + // crashing anymore. + CHECK(tab_id.is_valid()); TrackedSession* session = GetTrackedSession(session_tag); sessions::SessionTab* tab_ptr = nullptr;
diff --git a/components/sync_sessions/synced_session_tracker.h b/components/sync_sessions/synced_session_tracker.h index 7422be7..84430921 100644 --- a/components/sync_sessions/synced_session_tracker.h +++ b/components/sync_sessions/synced_session_tracker.h
@@ -117,8 +117,9 @@ // |session_tag|. If none existed for that session, creates one. Similarly, if // the session did not exist yet, creates it. Ownership of the SessionWindow // remains within the SyncedSessionTracker. - // Attempting to add a window to a session multiple times will have no effect. - void PutWindowInSession(const std::string& session_tag, SessionID window_id); + // Attempting to add a window to a session multiple times will have no effect + // and in that case the function returns false. + bool PutWindowInSession(const std::string& session_tag, SessionID window_id); // Adds the tab with id |tab_id| to the window |window_id|. If none existed // for that session, creates one. Ownership of the SessionTab remains within
diff --git a/components/sync_sessions/synced_session_tracker_unittest.cc b/components/sync_sessions/synced_session_tracker_unittest.cc index ce62699..6f62a2f 100644 --- a/components/sync_sessions/synced_session_tracker_unittest.cc +++ b/components/sync_sessions/synced_session_tracker_unittest.cc
@@ -914,6 +914,39 @@ IsNull()); } +// Verifies that an invalid header (with duplicated window IDs) is discarded. +TEST_F(SyncedSessionTrackerTest, UpdateTrackerWithHeaderWithDuplicateWindowId) { + sync_pb::SessionSpecifics header; + header.set_session_tag(kTag); + header.mutable_header()->add_window()->set_window_id(kWindow1.id()); + header.mutable_header()->add_window()->set_window_id(kWindow1.id()); + header.mutable_header()->mutable_window(0)->add_tab(kTab1.id()); + header.mutable_header()->mutable_window(1)->add_tab(kTab2.id()); + UpdateTrackerWithSpecifics(header, base::Time::Now(), &tracker_); + + EXPECT_THAT(tracker_.LookupSession(kTag), + MatchesSyncedSession(kTag, /*window_id_to_tabs=*/{})); +} + +// Verifies that an invalid header with duplicated window IDs is ignored. It +// specifically tests feeding the same input twice to +// UpdateTrackerWithSpecifics(), as a regression test for crbug.com/803205 to +// verify that it at least doesn't crash. +TEST_F(SyncedSessionTrackerTest, + UpdateTrackerWithHeaderWithDuplicateWindowIdTwice) { + sync_pb::SessionSpecifics header; + header.set_session_tag(kTag); + header.mutable_header()->add_window()->set_window_id(kWindow1.id()); + header.mutable_header()->mutable_window(0)->add_tab(kTab1.id()); + header.mutable_header()->add_window()->set_window_id(kWindow1.id()); + header.mutable_header()->mutable_window(1)->add_tab(kTab2.id()); + UpdateTrackerWithSpecifics(header, base::Time::Now(), &tracker_); + UpdateTrackerWithSpecifics(header, base::Time::Now(), &tracker_); + + EXPECT_THAT(tracker_.LookupSession(kTag), + MatchesSyncedSession(kTag, /*window_id_to_tabs=*/{})); +} + TEST_F(SyncedSessionTrackerTest, UpdateTrackerWithTab) { sync_pb::SessionSpecifics tab; tab.set_session_tag(kTag);
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc index a6a69c79..f392414 100644 --- a/components/viz/service/display/skia_renderer.cc +++ b/components/viz/service/display/skia_renderer.cc
@@ -2044,15 +2044,39 @@ // Invalid or unspecified color spaces should be treated as REC709. if (!src_color_space.IsValid()) src_color_space = gfx::ColorSpace::CreateREC709(); - gfx::ColorSpace dst_color_space = + + // We might modify |dst_color_space| to be something other than the + // destination color space for the frame. The generated SkColorFilter does the + // real color space adjustment. To avoid having skia also try to adjust the + // color space we lie and say the SkImage destination color space is always + // the same as the rest of the frame. Otherwise the two color space + // adjustments combined will produce the wrong result. + const gfx::ColorSpace& frame_color_space = current_frame()->current_render_pass->color_space; + gfx::ColorSpace dst_color_space = frame_color_space; + +#if defined(OS_WIN) + // Force sRGB output on Windows for overlay candidate video quads to match + // DirectComposition behavior in case these switch between overlays and + // compositing. See https://crbug.com/811118 for details. + // Currently if HDR is supported, OverlayProcessor doesn't promote HDR video + // frame as overlay candidate. So it's unnecessary to worry about the + // compositing-overlay switch here. In addition drawing a HDR video using sRGB + // can cancel the advantages of HDR. + if (supports_dc_layers_ && !src_color_space.IsHDR() && + resource_provider_->IsOverlayCandidate(quad->y_plane_resource_id())) { + DCHECK(resource_provider_->IsOverlayCandidate(quad->u_plane_resource_id())); + dst_color_space = gfx::ColorSpace::CreateSRGB(); + } +#endif + sk_sp<SkColorFilter> color_filter = GetColorFilter(src_color_space, dst_color_space, quad->resource_offset, quad->resource_multiplier); DCHECK(resource_provider_); - ScopedYUVSkImageBuilder builder(this, quad, dst_color_space.ToSkColorSpace(), - !!color_filter); + ScopedYUVSkImageBuilder builder( + this, quad, frame_color_space.ToSkColorSpace(), !!color_filter); const SkImage* image = builder.sk_image(); if (!image) return;
diff --git a/content/browser/cache_storage/cache_storage_dispatcher_host.cc b/content/browser/cache_storage/cache_storage_dispatcher_host.cc index 7f518b30..3b8d035 100644 --- a/content/browser/cache_storage/cache_storage_dispatcher_host.cc +++ b/content/browser/cache_storage/cache_storage_dispatcher_host.cc
@@ -685,8 +685,12 @@ } CacheStorageSchedulerPriority priority = - in_related_fetch_event ? CacheStorageSchedulerPriority::kHigh - : CacheStorageSchedulerPriority::kNormal; + CacheStorageSchedulerPriority::kNormal; + if (in_related_fetch_event && + base::FeatureList::IsEnabled( + features::kCacheStorageHighPriorityMatch)) { + priority = CacheStorageSchedulerPriority::kHigh; + } if (!match_options->cache_name) { cache_storage->MatchAllCaches(std::move(request),
diff --git a/content/browser/cache_storage/legacy/legacy_cache_storage_cache.cc b/content/browser/cache_storage/legacy/legacy_cache_storage_cache.cc index 43b27c3..aee6d090 100644 --- a/content/browser/cache_storage/legacy/legacy_cache_storage_cache.cc +++ b/content/browser/cache_storage/legacy/legacy_cache_storage_cache.cc
@@ -403,6 +403,12 @@ loaded_with_credentials); } +net::RequestPriority GetDiskCachePriority( + CacheStorageSchedulerPriority priority) { + return priority == CacheStorageSchedulerPriority::kHigh ? net::HIGHEST + : net::MEDIUM; +} + } // namespace struct LegacyCacheStorageCache::QueryCacheResult { @@ -543,7 +549,7 @@ priority, base::BindOnce( &LegacyCacheStorageCache::MatchImpl, weak_ptr_factory_.GetWeakPtr(), - std::move(request), std::move(match_options), trace_id, + std::move(request), std::move(match_options), trace_id, priority, scheduler_->WrapCallbackToRunNext(id, std::move(callback)))); } @@ -568,6 +574,7 @@ &LegacyCacheStorageCache::MatchAllImpl, weak_ptr_factory_.GetWeakPtr(), std::move(request), std::move(match_options), trace_id, + CacheStorageSchedulerPriority::kNormal, scheduler_->WrapCallbackToRunNext(id, std::move(callback)))); } @@ -966,6 +973,7 @@ blink::mojom::FetchAPIRequestPtr request, blink::mojom::CacheQueryOptionsPtr options, QueryTypes query_types, + CacheStorageSchedulerPriority priority, QueryCacheCallback callback) { DCHECK_NE( QUERY_CACHE_ENTRIES | QUERY_CACHE_RESPONSES_WITH_BODIES, @@ -1004,8 +1012,9 @@ auto open_entry_callback = base::AdaptCallbackForRepeating(base::BindOnce( &LegacyCacheStorageCache::QueryCacheDidOpenFastPath, weak_ptr_factory_.GetWeakPtr(), std::move(query_cache_context))); - disk_cache::EntryResult result = - backend_->OpenEntry(request_url, net::HIGHEST, open_entry_callback); + + disk_cache::EntryResult result = backend_->OpenEntry( + request_url, GetDiskCachePriority(priority), open_entry_callback); if (result.net_error() != net::ERR_IO_PENDING) std::move(open_entry_callback).Run(std::move(result)); return; @@ -1261,9 +1270,10 @@ blink::mojom::FetchAPIRequestPtr request, blink::mojom::CacheQueryOptionsPtr match_options, int64_t trace_id, + CacheStorageSchedulerPriority priority, ResponseCallback callback) { MatchAllImpl( - std::move(request), std::move(match_options), trace_id, + std::move(request), std::move(match_options), trace_id, priority, base::BindOnce(&LegacyCacheStorageCache::MatchDidMatchAll, weak_ptr_factory_.GetWeakPtr(), std::move(callback))); } @@ -1290,6 +1300,7 @@ blink::mojom::FetchAPIRequestPtr request, blink::mojom::CacheQueryOptionsPtr options, int64_t trace_id, + CacheStorageSchedulerPriority priority, ResponsesCallback callback) { DCHECK_NE(BACKEND_UNINITIALIZED, backend_state_); TRACE_EVENT_WITH_FLOW2("CacheStorage", @@ -1310,7 +1321,7 @@ callback = WrapCallbackWithHandle(std::move(callback)); QueryCache(std::move(request), std::move(options), - QUERY_CACHE_REQUESTS | QUERY_CACHE_RESPONSES_WITH_BODIES, + QUERY_CACHE_REQUESTS | QUERY_CACHE_RESPONSES_WITH_BODIES, priority, base::BindOnce(&LegacyCacheStorageCache::MatchAllDidQueryCache, weak_ptr_factory_.GetWeakPtr(), std::move(callback), trace_id)); @@ -1406,10 +1417,11 @@ weak_ptr_factory_.GetWeakPtr(), std::move(callback), expected_response_time, trace_id, buffer, buf_len)); - // Use LOWEST priority here as writing side data is less important than - // loading resources on the page. + // Note, the simple disk_cache priority is not important here because we + // only allow one write operation at a time. Therefore there will be no + // competing operations in the disk_cache queue. disk_cache::EntryResult result = - backend_->OpenEntry(url.spec(), net::LOWEST, open_entry_callback); + backend_->OpenEntry(url.spec(), net::MEDIUM, open_entry_callback); if (result.net_error() != net::ERR_IO_PENDING) std::move(open_entry_callback).Run(std::move(result)); } @@ -1650,7 +1662,7 @@ DCHECK(scheduler_->IsRunningExclusiveOperation()); disk_cache::EntryResult result = backend_ptr->OpenOrCreateEntry( - request_.url.spec(), net::HIGHEST, create_entry_callback); + request_.url.spec(), net::MEDIUM, create_entry_callback); if (result.net_error() != net::ERR_IO_PENDING) std::move(create_entry_callback).Run(std::move(result)); @@ -1936,6 +1948,7 @@ options->ignore_search = true; QueryCache(std::move(request), std::move(options), QUERY_CACHE_RESPONSES_NO_BODIES, + CacheStorageSchedulerPriority::kNormal, base::BindOnce(&LegacyCacheStorageCache::PaddingDidQueryCache, weak_ptr_factory_.GetWeakPtr(), std::move(callback), cache_size)); @@ -2054,6 +2067,7 @@ QueryCache( std::move(request), std::move(options), QUERY_CACHE_REQUESTS | QUERY_CACHE_RESPONSES_WITH_BODIES, + CacheStorageSchedulerPriority::kNormal, base::BindOnce( &LegacyCacheStorageCache::GetAllMatchedEntriesDidQueryCache, weak_ptr_factory_.GetWeakPtr(), trace_id, std::move(callback))); @@ -2130,6 +2144,7 @@ QueryCache( std::move(request), std::move(match_options), QUERY_CACHE_ENTRIES | QUERY_CACHE_RESPONSES_NO_BODIES, + CacheStorageSchedulerPriority::kNormal, base::BindOnce(&LegacyCacheStorageCache::DeleteDidQueryCache, weak_ptr_factory_.GetWeakPtr(), std::move(callback))); } @@ -2187,6 +2202,7 @@ callback = WrapCallbackWithHandle(std::move(callback)); QueryCache(std::move(request), std::move(options), QUERY_CACHE_REQUESTS, + CacheStorageSchedulerPriority::kNormal, base::BindOnce(&LegacyCacheStorageCache::KeysDidQueryCache, weak_ptr_factory_.GetWeakPtr(), std::move(callback), trace_id));
diff --git a/content/browser/cache_storage/legacy/legacy_cache_storage_cache.h b/content/browser/cache_storage/legacy/legacy_cache_storage_cache.h index a58bf496..659ed7c 100644 --- a/content/browser/cache_storage/legacy/legacy_cache_storage_cache.h +++ b/content/browser/cache_storage/legacy/legacy_cache_storage_cache.h
@@ -264,6 +264,7 @@ void QueryCache(blink::mojom::FetchAPIRequestPtr request, blink::mojom::CacheQueryOptionsPtr options, QueryTypes query_types, + CacheStorageSchedulerPriority priority, QueryCacheCallback callback); void QueryCacheDidOpenFastPath( std::unique_ptr<QueryCacheContext> query_cache_context, @@ -286,6 +287,7 @@ void MatchImpl(blink::mojom::FetchAPIRequestPtr request, blink::mojom::CacheQueryOptionsPtr match_options, int64_t trace_id, + CacheStorageSchedulerPriority priority, ResponseCallback callback); void MatchDidMatchAll( ResponseCallback callback, @@ -296,6 +298,7 @@ void MatchAllImpl(blink::mojom::FetchAPIRequestPtr request, blink::mojom::CacheQueryOptionsPtr options, int64_t trace_id, + CacheStorageSchedulerPriority priority, ResponsesCallback callback); void MatchAllDidQueryCache( ResponsesCallback callback,
diff --git a/content/browser/frame_host/form_submission_throttle_unittest.cc b/content/browser/frame_host/form_submission_throttle_unittest.cc index 103bd40f..17e9ae5a 100644 --- a/content/browser/frame_host/form_submission_throttle_unittest.cc +++ b/content/browser/frame_host/form_submission_throttle_unittest.cc
@@ -15,13 +15,8 @@ class FormSubmissionTest : public RenderViewHostImplTestHarness { public: void PreventFormSubmission() { - std::vector<CSPDirective> directives; - directives.push_back( - CSPDirective(CSPDirective::FormAction, CSPSourceList())); - ContentSecurityPolicy form_action_none(ContentSecurityPolicyHeader(), - directives, - std::vector<std::string>(), false); - + ContentSecurityPolicy form_action_none({}, {{CSPDirective::FormAction, {}}}, + {}, false); main_test_rfh()->AddContentSecurityPolicy(form_action_none); } };
diff --git a/content/browser/frame_host/frame_tree_node.cc b/content/browser/frame_host/frame_tree_node.cc index 4aa7237..7f8ef70 100644 --- a/content/browser/frame_host/frame_tree_node.cc +++ b/content/browser/frame_host/frame_tree_node.cc
@@ -334,11 +334,10 @@ } void FrameTreeNode::AddContentSecurityPolicies( - const std::vector<ContentSecurityPolicyHeader>& headers) { - replication_state_.accumulated_csp_headers.insert( - replication_state_.accumulated_csp_headers.end(), headers.begin(), - headers.end()); - render_manager_.OnDidAddContentSecurityPolicies(headers); + std::vector<network::mojom::ContentSecurityPolicyHeaderPtr> headers) { + for (auto& header : headers) + replication_state_.accumulated_csp_headers.push_back(*header); + render_manager_.OnDidAddContentSecurityPolicies(std::move(headers)); } void FrameTreeNode::SetInsecureRequestPolicy(
diff --git a/content/browser/frame_host/frame_tree_node.h b/content/browser/frame_host/frame_tree_node.h index f657a80..240d6e73 100644 --- a/content/browser/frame_host/frame_tree_node.h +++ b/content/browser/frame_host/frame_tree_node.h
@@ -20,6 +20,7 @@ #include "content/common/content_export.h" #include "content/common/frame_owner_properties.h" #include "content/common/frame_replication_state.h" +#include "services/network/public/mojom/content_security_policy.mojom-forward.h" #include "third_party/blink/public/common/frame/frame_owner_element_type.h" #include "third_party/blink/public/common/frame/frame_policy.h" #include "third_party/blink/public/common/frame/user_activation_state.h" @@ -35,7 +36,6 @@ class Navigator; class RenderFrameHostImpl; class NavigationEntryImpl; -struct ContentSecurityPolicyHeader; // When a page contains iframes, its renderer process maintains a tree structure // of those frames. We are mirroring this tree in the browser process. This @@ -184,7 +184,7 @@ // Add CSP headers to replication state, notify proxies about the update. void AddContentSecurityPolicies( - const std::vector<ContentSecurityPolicyHeader>& headers); + std::vector<network::mojom::ContentSecurityPolicyHeaderPtr> headers); // Sets the current insecure request policy, and notifies proxies about the // update.
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index e58eb5f..3d39aba 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -2567,12 +2567,13 @@ "RenderFrameHostImpl::OnDidAddContentSecurityPolicies", "frame_tree_node", frame_tree_node_->frame_tree_node_id()); - std::vector<ContentSecurityPolicyHeader> headers; + std::vector<network::mojom::ContentSecurityPolicyHeaderPtr> headers; for (const ContentSecurityPolicy& policy : policies) { AddContentSecurityPolicy(policy); - headers.push_back(policy.header); + headers.push_back( + network::mojom::ContentSecurityPolicyHeader::New(policy.header)); } - frame_tree_node()->AddContentSecurityPolicies(headers); + frame_tree_node()->AddContentSecurityPolicies(std::move(headers)); } void RenderFrameHostImpl::OnOpenURL(const FrameHostMsg_OpenURL_Params& params) {
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index f0e3a20e..e02f5ed 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -910,10 +910,10 @@ } void RenderFrameHostManager::OnDidAddContentSecurityPolicies( - const std::vector<ContentSecurityPolicyHeader>& headers) { + std::vector<network::mojom::ContentSecurityPolicyHeaderPtr> headers) { for (const auto& pair : proxy_hosts_) { - pair.second->Send(new FrameMsg_AddContentSecurityPolicies( - pair.second->GetRoutingID(), headers)); + pair.second->GetAssociatedRemoteFrame() + ->AddReplicatedContentSecurityPolicies(mojo::Clone(headers)); } }
diff --git a/content/browser/frame_host/render_frame_host_manager.h b/content/browser/frame_host/render_frame_host_manager.h index 6ed19be..a077627 100644 --- a/content/browser/frame_host/render_frame_host_manager.h +++ b/content/browser/frame_host/render_frame_host_manager.h
@@ -23,6 +23,7 @@ #include "content/common/content_export.h" #include "content/public/browser/global_request_id.h" #include "content/public/common/referrer.h" +#include "services/network/public/mojom/content_security_policy.mojom-forward.h" #include "third_party/blink/public/common/frame/user_activation_update_type.h" #include "ui/base/page_transition_types.h" #include "url/origin.h" @@ -41,7 +42,6 @@ class RenderViewHostImpl; class RenderWidgetHostView; class TestWebContents; -struct ContentSecurityPolicyHeader; struct FrameOwnerProperties; struct FrameReplicationState; @@ -342,7 +342,7 @@ // Sends the newly added Content Security Policy headers to all the proxies. void OnDidAddContentSecurityPolicies( - const std::vector<ContentSecurityPolicyHeader>& headers); + std::vector<network::mojom::ContentSecurityPolicyHeaderPtr> headers); // Resets Content Security Policy in all the proxies. void OnDidResetContentSecurityPolicy();
diff --git a/content/browser/loader/prefetch_browsertest.cc b/content/browser/loader/prefetch_browsertest.cc index 3337735..9c4f9f4 100644 --- a/content/browser/loader/prefetch_browsertest.cc +++ b/content/browser/loader/prefetch_browsertest.cc
@@ -18,6 +18,7 @@ #include "content/public/test/content_browser_test_utils.h" #include "content/shell/browser/shell.h" #include "net/base/features.h" +#include "net/dns/mock_host_resolver.h" #include "services/network/public/cpp/features.h" #include "third_party/blink/public/common/features.h" @@ -28,12 +29,16 @@ public testing::WithParamInterface<std::tuple<bool, bool>> { public: PrefetchBrowserTest() - : cross_origin_server_(std::make_unique<net::EmbeddedTestServer>( - net::EmbeddedTestServer::TYPE_HTTPS)), + : cross_origin_server_(std::make_unique<net::EmbeddedTestServer>()), signed_exchange_enabled_(std::get<0>(GetParam())), split_cache_enabled_(std::get<1>(GetParam())) {} ~PrefetchBrowserTest() = default; + void SetUpOnMainThread() override { + PrefetchBrowserTestBase::SetUpOnMainThread(); + host_resolver()->AddRule("*", "127.0.0.1"); + } + void SetUp() override { std::vector<base::Feature> enable_features; std::vector<base::Feature> disabled_features; @@ -76,8 +81,7 @@ public: PrefetchBrowserTestPrivacyChanges() : privacy_changes_enabled_(GetParam()), - cross_origin_server_(std::make_unique<net::EmbeddedTestServer>( - net::EmbeddedTestServer::TYPE_HTTPS)) {} + cross_origin_server_(std::make_unique<net::EmbeddedTestServer>()) {} ~PrefetchBrowserTestPrivacyChanges() override = default; void SetUp() override { @@ -167,7 +171,7 @@ ASSERT_TRUE(cross_origin_server_->Start()); const GURL cross_origin_target_url = - cross_origin_server_->GetURL(target_path); + cross_origin_server_->GetURL("3p.example", target_path); RegisterResponse( prefetch_path, ResponseEntry(base::StringPrintf( @@ -219,9 +223,10 @@ RegisterRequestHandler(cross_origin_server_.get()); ASSERT_TRUE(cross_origin_server_->Start()); - const GURL cross_origin_host_url = cross_origin_server_->GetURL(host_path); + const GURL cross_origin_host_url = + cross_origin_server_->GetURL("3p.example", host_path); const GURL cross_origin_iframe_url = - cross_origin_server_->GetURL(iframe_path); + cross_origin_server_->GetURL("3p.example", iframe_path); RegisterResponse( prefetch_path, ResponseEntry(base::StringPrintf( @@ -277,9 +282,10 @@ RegisterRequestHandler(cross_origin_server_.get()); ASSERT_TRUE(cross_origin_server_->Start()); - const GURL cross_origin_host_url = cross_origin_server_->GetURL(host_path); + const GURL cross_origin_host_url = + cross_origin_server_->GetURL("3p.example", host_path); const GURL cross_origin_subresource_url = - cross_origin_server_->GetURL(subresource_path); + cross_origin_server_->GetURL("3p.example", subresource_path); RegisterResponse(prefetch_path, ResponseEntry(base::StringPrintf( "<body><link rel='prefetch' href='%s'></body>", @@ -324,7 +330,7 @@ ASSERT_TRUE(cross_origin_server_->Start()); const GURL cross_origin_subresource_url = - cross_origin_server_->GetURL(subresource_path); + cross_origin_server_->GetURL("3p.example", subresource_path); RegisterResponse(prefetch_path, ResponseEntry(base::StringPrintf( "<body><link rel='prefetch' href='%s'></body>", @@ -383,7 +389,7 @@ ASSERT_TRUE(cross_origin_server_->Start()); const GURL cross_origin_subresource_url = - cross_origin_server_->GetURL(subresource_path); + cross_origin_server_->GetURL("3p.example", subresource_path); RegisterResponse(prefetch_path, ResponseEntry(base::StringPrintf( "<body><link rel='prefetch' href='%s'></body>", @@ -614,7 +620,8 @@ ASSERT_TRUE(cross_origin_server_->Start()); const GURL cross_origin_target_url = - cross_origin_server_->GetURL(target_path); + cross_origin_server_->GetURL("3p.example", target_path); + const char* prefetch_path = "/prefetch.html"; RegisterResponse(prefetch_path, ResponseEntry(base::StringPrintf( @@ -634,7 +641,8 @@ EXPECT_EQ(1, preload_request_counter->GetRequestCount()); EXPECT_EQ(split_cache_enabled_ ? 2 : 1, GetPrefetchURLLoaderCallCount()); - GURL cross_origin_preload_url = cross_origin_server_->GetURL(preload_path); + GURL cross_origin_preload_url = + cross_origin_server_->GetURL("3p.example", preload_path); WaitUntilLoaded(cross_origin_preload_url); // When SplitCache is enabled and the prefetch resource and its headers are @@ -658,8 +666,7 @@ cross_origin_preload_url.spec().c_str())}, {"access-control-allow-origin", "*"}})); std::unique_ptr<net::EmbeddedTestServer> other_cross_origin_server = - std::make_unique<net::EmbeddedTestServer>( - net::EmbeddedTestServer::TYPE_HTTPS); + std::make_unique<net::EmbeddedTestServer>(); RegisterRequestHandler(other_cross_origin_server.get()); ASSERT_TRUE(other_cross_origin_server->Start()); @@ -667,8 +674,9 @@ // Navigate to a page on the above-created server. A request for the same // preload header fetched earlier must not be reusable, and must hit the // network. - EXPECT_TRUE(NavigateToURL(shell(), other_cross_origin_server->GetURL( - reuse_preload_attempt_path))); + EXPECT_TRUE(NavigateToURL( + shell(), other_cross_origin_server->GetURL( + "other3p.example", reuse_preload_attempt_path))); preload_waiter_second_request.Run(); EXPECT_EQ(2, preload_request_counter_second_request->GetRequestCount()); @@ -782,9 +790,10 @@ RegisterRequestHandler(cross_origin_server_.get()); ASSERT_TRUE(cross_origin_server_->Start()); - const GURL target_sxg_url = cross_origin_server_->GetURL(target_sxg_path); + const GURL target_sxg_url = + cross_origin_server_->GetURL("3p.example", target_sxg_path); const GURL preload_url_in_sxg = - cross_origin_server_->GetURL(preload_path_in_sxg); + cross_origin_server_->GetURL("3p.example", preload_path_in_sxg); RegisterResponse( prefetch_path, @@ -797,7 +806,8 @@ MockSignedExchangeHandlerFactory factory({MockSignedExchangeHandlerParams( target_sxg_url, SignedExchangeLoadResult::kSuccess, net::OK, - GURL(cross_origin_server_->GetURL(target_path)), "text/html", + GURL(cross_origin_server_->GetURL("3p.example", target_path)), + "text/html", {base::StringPrintf("Link: <%s>;rel=\"preload\";as=\"script\"", preload_url_in_sxg.spec().c_str())}, net::SHA256HashValue({{0x00}}))});
diff --git a/content/browser/portal/portal.cc b/content/browser/portal/portal.cc index 08f4b15..b5cf094 100644 --- a/content/browser/portal/portal.cc +++ b/content/browser/portal/portal.cc
@@ -31,8 +31,7 @@ : WebContentsObserver( WebContents::FromRenderFrameHost(owner_render_frame_host)), owner_render_frame_host_(owner_render_frame_host), - portal_token_(base::UnguessableToken::Create()) { -} + portal_token_(base::UnguessableToken::Create()) {} Portal::Portal(RenderFrameHostImpl* owner_render_frame_host, std::unique_ptr<WebContents> existing_web_contents) @@ -376,6 +375,9 @@ TakeHistoryForActivation(successor_contents_raw, outer_contents); + devtools_instrumentation::PortalActivated(outer_contents->GetMainFrame()); + successor_contents_raw->set_portal(nullptr); + std::unique_ptr<WebContents> predecessor_web_contents = delegate->SwapWebContents(outer_contents, std::move(successor_contents), true, is_loading); @@ -401,8 +403,6 @@ std::move(predecessor_web_contents), std::move(data), std::move(callback)); successor_contents_raw->NotifyInsidePortal(false); - - devtools_instrumentation::PortalActivated(outer_contents->GetMainFrame()); } void Portal::PostMessageToGuest(
diff --git a/content/browser/renderer_host/render_widget_host_delegate.cc b/content/browser/renderer_host/render_widget_host_delegate.cc index d810fbf..1118824 100644 --- a/content/browser/renderer_host/render_widget_host_delegate.cc +++ b/content/browser/renderer_host/render_widget_host_delegate.cc
@@ -163,4 +163,8 @@ return nullptr; } +bool RenderWidgetHostDelegate::IsPortal() const { + return false; +} + } // namespace content
diff --git a/content/browser/renderer_host/render_widget_host_delegate.h b/content/browser/renderer_host/render_widget_host_delegate.h index 492cd21..f2303f4 100644 --- a/content/browser/renderer_host/render_widget_host_delegate.h +++ b/content/browser/renderer_host/render_widget_host_delegate.h
@@ -332,6 +332,9 @@ virtual void OnVerticalScrollDirectionChanged( viz::VerticalScrollDirection scroll_direction) {} + // Returns true if the delegate is a portal. + virtual bool IsPortal() const; + protected: virtual ~RenderWidgetHostDelegate() {} };
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 191b771..cb19c7f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -969,6 +969,9 @@ void RenderWidgetHostImpl::SetPageFocus(bool focused) { is_focused_ = focused; + // Portals should never get page focus. + DCHECK(!delegate_ || !delegate_->IsPortal() || !focused); + if (!focused) { // If there is a pending mouse lock request, we don't want to reject it at // this point. The user can switch focus back to this view and approve the
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc index 7696405..f719f1fda 100644 --- a/content/browser/site_per_process_browsertest.cc +++ b/content/browser/site_per_process_browsertest.cc
@@ -7204,7 +7204,7 @@ embedded_test_server()->GetURL("b.com", "/title2.html")); EXPECT_FALSE(root->child_at(0)->HasSameOrigin(*root)); EXPECT_EQ(old_subframe_url, root->child_at(0)->current_url()); - const std::vector<ContentSecurityPolicyHeader>& root_csp = + const std::vector<network::mojom::ContentSecurityPolicyHeader>& root_csp = root->current_replication_state().accumulated_csp_headers; EXPECT_EQ(1u, root_csp.size()); EXPECT_EQ("frame-src 'self' http://b.com:*", root_csp[0].header_value); @@ -7275,7 +7275,7 @@ // (the CSP should not have an effect on the already loaded frames). EXPECT_FALSE(root->child_at(0)->HasSameOrigin(*root)); EXPECT_EQ(old_subframe_url, root->child_at(0)->current_url()); - const std::vector<ContentSecurityPolicyHeader>& root_csp = + const std::vector<network::mojom::ContentSecurityPolicyHeader>& root_csp = root->current_replication_state().accumulated_csp_headers; EXPECT_EQ(1u, root_csp.size()); EXPECT_EQ("frame-src https://a.com:*", root_csp[0].header_value); @@ -7337,7 +7337,7 @@ EXPECT_TRUE(srcdoc_frame->HasSameOrigin(*root)); EXPECT_FALSE(srcdoc_frame->HasSameOrigin(*navigating_frame)); EXPECT_EQ(old_subframe_url, navigating_frame->current_url()); - const std::vector<ContentSecurityPolicyHeader>& srcdoc_csp = + const std::vector<network::mojom::ContentSecurityPolicyHeader>& srcdoc_csp = srcdoc_frame->current_replication_state().accumulated_csp_headers; EXPECT_EQ(1u, srcdoc_csp.size()); EXPECT_EQ("frame-src 'self' http://b.com:*", srcdoc_csp[0].header_value);
diff --git a/content/child/webthemeengine_impl_default.cc b/content/child/webthemeengine_impl_default.cc index 23744cc0..e3d3ef5 100644 --- a/content/child/webthemeengine_impl_default.cc +++ b/content/child/webthemeengine_impl_default.cc
@@ -84,6 +84,8 @@ extra_params->text_field.background_color; native_theme_extra_params->text_field.has_border = extra_params->text_field.has_border; + native_theme_extra_params->text_field.auto_complete_active = + extra_params->text_field.auto_complete_active; break; case WebThemeEngine::kPartMenuList: native_theme_extra_params->menu_list.has_border =
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn index db6a3a8..e7f60c58 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn
@@ -87,8 +87,6 @@ "content_security_policy/csp_source.h", "content_security_policy/csp_source_list.cc", "content_security_policy/csp_source_list.h", - "content_security_policy_header.cc", - "content_security_policy_header.h", "content_switches_internal.cc", "content_switches_internal.h", "cursors/webcursor.cc",
diff --git a/content/common/content_security_policy/content_security_policy.cc b/content/common/content_security_policy/content_security_policy.cc index 2d08beb4..c56f3e4 100644 --- a/content/common/content_security_policy/content_security_policy.cc +++ b/content/common/content_security_policy/content_security_policy.cc
@@ -164,7 +164,7 @@ ContentSecurityPolicy::ContentSecurityPolicy() = default; ContentSecurityPolicy::ContentSecurityPolicy( - const ContentSecurityPolicyHeader& header, + const network::mojom::ContentSecurityPolicyHeader& header, const std::vector<CSPDirective>& directives, const std::vector<std::string>& report_endpoints, bool use_reporting_api) @@ -177,7 +177,7 @@ // struct. ContentSecurityPolicy::ContentSecurityPolicy( network::mojom::ContentSecurityPolicyPtr csp) - : header("", csp->type, csp->source), + : header(*(csp->header)), report_endpoints(std::move(csp->report_endpoints)), use_reporting_api(csp->use_reporting_api) { for (auto& directive : csp->directives)
diff --git a/content/common/content_security_policy/content_security_policy.h b/content/common/content_security_policy/content_security_policy.h index 597d0c92..1c3ed8a7 100644 --- a/content/common/content_security_policy/content_security_policy.h +++ b/content/common/content_security_policy/content_security_policy.h
@@ -10,8 +10,7 @@ #include "content/common/content_export.h" #include "content/common/content_security_policy/csp_directive.h" -#include "content/common/content_security_policy_header.h" -#include "services/network/public/mojom/content_security_policy.mojom-forward.h" +#include "services/network/public/mojom/content_security_policy.mojom.h" #include "url/gurl.h" namespace content { @@ -25,15 +24,16 @@ // enforced upon requests. struct CONTENT_EXPORT ContentSecurityPolicy { ContentSecurityPolicy(); - ContentSecurityPolicy(const ContentSecurityPolicyHeader& header, - const std::vector<CSPDirective>& directives, - const std::vector<std::string>& report_endpoints, - bool use_reporting_api); + ContentSecurityPolicy( + const network::mojom::ContentSecurityPolicyHeader& header, + const std::vector<CSPDirective>& directives, + const std::vector<std::string>& report_endpoints, + bool use_reporting_api); explicit ContentSecurityPolicy(network::mojom::ContentSecurityPolicyPtr); ContentSecurityPolicy(const ContentSecurityPolicy&); ~ContentSecurityPolicy(); - ContentSecurityPolicyHeader header; + network::mojom::ContentSecurityPolicyHeader header; std::vector<CSPDirective> directives; std::vector<std::string> report_endpoints; bool use_reporting_api;
diff --git a/content/common/content_security_policy/content_security_policy_unittest.cc b/content/common/content_security_policy/content_security_policy_unittest.cc index c7505279..bbbc496 100644 --- a/content/common/content_security_policy/content_security_policy_unittest.cc +++ b/content/common/content_security_policy/content_security_policy_unittest.cc
@@ -4,7 +4,6 @@ #include "base/stl_util.h" #include "content/common/content_security_policy/csp_context.h" -#include "content/common/content_security_policy_header.h" #include "content/common/navigation_params.h" #include "testing/gtest/include/gtest/gtest.h" @@ -36,19 +35,11 @@ DISALLOW_COPY_AND_ASSIGN(CSPContextTest); }; -ContentSecurityPolicyHeader EmptyCspHeader() { - return ContentSecurityPolicyHeader( - std::string(), network::mojom::ContentSecurityPolicyType::kEnforce, - network::mojom::ContentSecurityPolicySource::kHTTP); -} - } // namespace TEST(ContentSecurityPolicy, NoDirective) { CSPContextTest context; - std::vector<std::string> report_end_points; // empty - ContentSecurityPolicy policy(EmptyCspHeader(), std::vector<CSPDirective>(), - report_end_points, false); + ContentSecurityPolicy policy({}, {}, {}, false); EXPECT_TRUE(ContentSecurityPolicy::Allow( policy, CSPDirective::FormAction, GURL("http://www.example.com"), false, @@ -64,9 +55,7 @@ ""); CSPSourceList source_list(false, false, false, {source}); CSPDirective directive(CSPDirective::FormAction, source_list); - std::vector<std::string> report_end_points; // empty - ContentSecurityPolicy policy(EmptyCspHeader(), {directive}, report_end_points, - false); + ContentSecurityPolicy policy({}, {directive}, {}, false); EXPECT_FALSE(ContentSecurityPolicy::Allow( policy, CSPDirective::FormAction, GURL("http://www.not-example.com"), @@ -86,14 +75,10 @@ CSPSourceList source_list_a(false, false, false, {source_a}); CSPSourceList source_list_b(false, false, false, {source_b}); - std::vector<std::string> report_end_points; // Empty. - { CSPContextTest context; ContentSecurityPolicy policy( - EmptyCspHeader(), - {CSPDirective(CSPDirective::DefaultSrc, source_list_a)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::DefaultSrc, source_list_a)}, {}, false); EXPECT_FALSE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, GURL("http://b.com"), false, false, &context, SourceLocation(), false)); @@ -111,8 +96,7 @@ { CSPContextTest context; ContentSecurityPolicy policy( - EmptyCspHeader(), {CSPDirective(CSPDirective::ChildSrc, source_list_a)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::ChildSrc, source_list_a)}, {}, false); EXPECT_FALSE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, GURL("http://b.com"), false, false, &context, SourceLocation(), false)); @@ -131,10 +115,10 @@ CSPContextTest context; CSPSourceList source_list(false, false, false, {source_a, source_b}); ContentSecurityPolicy policy( - EmptyCspHeader(), + {}, {CSPDirective(CSPDirective::FrameSrc, {source_list_a}), CSPDirective(CSPDirective::ChildSrc, {source_list_b})}, - report_end_points, false); + {}, false); EXPECT_TRUE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, GURL("http://a.com"), false, false, &context, SourceLocation(), false)); @@ -152,13 +136,11 @@ TEST(ContentSecurityPolicy, RequestsAllowedWhenBypassingCSP) { CSPContextTest context; - std::vector<std::string> report_end_points; // empty CSPSource source("https", "example.com", false, url::PORT_UNSPECIFIED, false, ""); CSPSourceList source_list(false, false, false, {source}); ContentSecurityPolicy policy( - EmptyCspHeader(), {CSPDirective(CSPDirective::DefaultSrc, source_list)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::DefaultSrc, source_list)}, {}, false); EXPECT_TRUE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, GURL("https://example.com/"), false, @@ -180,13 +162,11 @@ TEST(ContentSecurityPolicy, RequestsAllowedWhenHostMixedCase) { CSPContextTest context; - std::vector<std::string> report_end_points; // empty CSPSource source("https", "ExAmPle.com", false, url::PORT_UNSPECIFIED, false, ""); CSPSourceList source_list(false, false, false, {source}); ContentSecurityPolicy policy( - EmptyCspHeader(), {CSPDirective(CSPDirective::DefaultSrc, source_list)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::DefaultSrc, source_list)}, {}, false); EXPECT_TRUE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, GURL("https://example.com/"), false, @@ -198,13 +178,11 @@ TEST(ContentSecurityPolicy, FilesystemAllowedWhenBypassingCSP) { CSPContextTest context; - std::vector<std::string> report_end_points; // empty CSPSource source("https", "example.com", false, url::PORT_UNSPECIFIED, false, ""); CSPSourceList source_list(false, false, false, {source}); ContentSecurityPolicy policy( - EmptyCspHeader(), {CSPDirective(CSPDirective::DefaultSrc, source_list)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::DefaultSrc, source_list)}, {}, false); EXPECT_FALSE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, @@ -230,13 +208,11 @@ TEST(ContentSecurityPolicy, BlobAllowedWhenBypassingCSP) { CSPContextTest context; - std::vector<std::string> report_end_points; // empty CSPSource source("https", "example.com", false, url::PORT_UNSPECIFIED, false, ""); CSPSourceList source_list(false, false, false, {source}); ContentSecurityPolicy policy( - EmptyCspHeader(), {CSPDirective(CSPDirective::DefaultSrc, source_list)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::DefaultSrc, source_list)}, {}, false); EXPECT_FALSE(ContentSecurityPolicy::Allow( policy, CSPDirective::FrameSrc, GURL("blob:https://example.com/"), false, @@ -257,13 +233,11 @@ } TEST(ContentSecurityPolicy, ShouldUpgradeInsecureRequest) { - std::vector<std::string> report_end_points; // empty CSPSource source("https", "example.com", false, url::PORT_UNSPECIFIED, false, ""); CSPSourceList source_list(false, false, false, {source}); ContentSecurityPolicy policy( - EmptyCspHeader(), {CSPDirective(CSPDirective::DefaultSrc, source_list)}, - report_end_points, false); + {}, {CSPDirective(CSPDirective::DefaultSrc, source_list)}, {}, false); EXPECT_FALSE(ContentSecurityPolicy::ShouldUpgradeInsecureRequest(policy)); @@ -274,7 +248,6 @@ TEST(ContentSecurityPolicy, NavigateToChecks) { CSPContextTest context; - std::vector<std::string> report_end_points; // empty CSPSource example("https", "example.test", false, url::PORT_UNSPECIFIED, false, ""); CSPSourceList none_source_list(false, false, false, {}); @@ -344,8 +317,7 @@ directives.push_back( CSPDirective(CSPDirective::FormAction, *(test.form_action_list))); - ContentSecurityPolicy policy(EmptyCspHeader(), directives, - report_end_points, false); + ContentSecurityPolicy policy({}, directives, {}, false); EXPECT_EQ(test.expected, ContentSecurityPolicy::Allow( policy, CSPDirective::NavigateTo, test.url,
diff --git a/content/common/content_security_policy/csp_context.h b/content/common/content_security_policy/csp_context.h index 5e92515cf..284300c 100644 --- a/content/common/content_security_policy/csp_context.h +++ b/content/common/content_security_policy/csp_context.h
@@ -10,7 +10,6 @@ #include "base/optional.h" #include "content/common/content_export.h" #include "content/common/content_security_policy/content_security_policy.h" -#include "content/common/content_security_policy_header.h" #include "content/common/navigation_params.h" #include "services/network/public/mojom/content_security_policy.mojom-forward.h" #include "url/gurl.h"
diff --git a/content/common/content_security_policy/csp_context_unittest.cc b/content/common/content_security_policy/csp_context_unittest.cc index 50f6346..7a22957 100644 --- a/content/common/content_security_policy/csp_context_unittest.cc +++ b/content/common/content_security_policy/csp_context_unittest.cc
@@ -5,7 +5,6 @@ #include <set> #include "content/common/content_security_policy/csp_context.h" -#include "content/common/content_security_policy_header.h" #include "content/common/navigation_params.h" #include "testing/gtest/include/gtest/gtest.h" @@ -57,13 +56,10 @@ ContentSecurityPolicy BuildPolicy(CSPDirective::Name directive_name, std::vector<CSPSource> sources) { return ContentSecurityPolicy( - ContentSecurityPolicyHeader( - std::string(), // header - network::mojom::ContentSecurityPolicyType::kEnforce, - network::mojom::ContentSecurityPolicySource::kHTTP), + {}, {CSPDirective(directive_name, CSPSourceList(false, false, false, sources))}, - std::vector<std::string>(), false); // report_end_points + {}, false); } } // namespace
diff --git a/content/common/content_security_policy_header.cc b/content/common/content_security_policy_header.cc deleted file mode 100644 index a56b5a0..0000000 --- a/content/common/content_security_policy_header.cc +++ /dev/null
@@ -1,21 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/common/content_security_policy_header.h" -#include "services/network/public/mojom/content_security_policy.mojom.h" - -namespace content { - -ContentSecurityPolicyHeader::ContentSecurityPolicyHeader() - : header_value(std::string()), - type(network::mojom::ContentSecurityPolicyType::kEnforce), - source(network::mojom::ContentSecurityPolicySource::kHTTP) {} - -ContentSecurityPolicyHeader::ContentSecurityPolicyHeader( - const std::string& header_value, - network::mojom::ContentSecurityPolicyType type, - network::mojom::ContentSecurityPolicySource source) - : header_value(header_value), type(type), source(source) {} - -} // namespace content
diff --git a/content/common/content_security_policy_header.h b/content/common/content_security_policy_header.h deleted file mode 100644 index c127b65a..0000000 --- a/content/common/content_security_policy_header.h +++ /dev/null
@@ -1,32 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_COMMON_CONTENT_SECURITY_POLICY_HEADER_ -#define CONTENT_COMMON_CONTENT_SECURITY_POLICY_HEADER_ - -#include <string> - -#include "content/common/content_export.h" -#include "services/network/public/mojom/content_security_policy.mojom-forward.h" - -namespace content { - -// Represents a single Content Security Policy header (i.e. coming from -// a single Content-Security-Policy header in an HTTP response, or from -// a single <meta http-equiv="Content-Security-Policy"...> element). -struct CONTENT_EXPORT ContentSecurityPolicyHeader { - ContentSecurityPolicyHeader(); - ContentSecurityPolicyHeader( - const std::string& header_value, - network::mojom::ContentSecurityPolicyType type, - network::mojom::ContentSecurityPolicySource source); - - std::string header_value; - network::mojom::ContentSecurityPolicyType type; - network::mojom::ContentSecurityPolicySource source; -}; - -} // namespace content - -#endif // CONTENT_COMMON_CONTENT_SECURITY_POLICY_HEADER_
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h index b5de67a..061462a0 100644 --- a/content/common/frame_messages.h +++ b/content/common/frame_messages.h
@@ -25,7 +25,6 @@ #include "content/common/content_export.h" #include "content/common/content_param_traits.h" #include "content/common/content_security_policy/csp_context.h" -#include "content/common/content_security_policy_header.h" #include "content/common/frame_delete_intention.h" #include "content/common/frame_message_structs.h" #include "content/common/frame_owner_properties.h" @@ -588,7 +587,7 @@ IPC_STRUCT_TRAITS_MEMBER(use_reporting_api) IPC_STRUCT_TRAITS_END() -IPC_STRUCT_TRAITS_BEGIN(content::ContentSecurityPolicyHeader) +IPC_STRUCT_TRAITS_BEGIN(network::mojom::ContentSecurityPolicyHeader) IPC_STRUCT_TRAITS_MEMBER(header_value) IPC_STRUCT_TRAITS_MEMBER(type) IPC_STRUCT_TRAITS_MEMBER(source) @@ -742,10 +741,6 @@ std::string /* name */, std::string /* unique_name */) -// Updates replicated ContentSecurityPolicy in a frame proxy. -IPC_MESSAGE_ROUTED1(FrameMsg_AddContentSecurityPolicies, - std::vector<content::ContentSecurityPolicyHeader>) - // Update a proxy's replicated enforcement of insecure request policy. // Used when the frame's policy is changed in another process. IPC_MESSAGE_ROUTED1(FrameMsg_EnforceInsecureRequestPolicy,
diff --git a/content/common/frame_replication_state.h b/content/common/frame_replication_state.h index e06f123..645597b 100644 --- a/content/common/frame_replication_state.h +++ b/content/common/frame_replication_state.h
@@ -9,7 +9,7 @@ #include <vector> #include "content/common/content_export.h" -#include "content/common/content_security_policy_header.h" +#include "services/network/public/mojom/content_security_policy.mojom.h" #include "third_party/blink/public/common/feature_policy/feature_policy.h" #include "third_party/blink/public/common/frame/frame_owner_element_type.h" #include "third_party/blink/public/common/frame/frame_policy.h" @@ -108,7 +108,8 @@ // Accumulated CSP headers - gathered from http headers, <meta> elements, // parent frames (in case of about:blank frames). - std::vector<ContentSecurityPolicyHeader> accumulated_csp_headers; + std::vector<network::mojom::ContentSecurityPolicyHeader> + accumulated_csp_headers; // Whether the frame is in a document tree or a shadow tree, per the Shadow // DOM spec: https://w3c.github.io/webcomponents/spec/shadow/
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc index fbb6f11b..0a56e27b 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc
@@ -308,6 +308,10 @@ main_thread_task_executor = std::make_unique<base::SingleThreadTaskExecutor>( base::MessagePumpType::NS_RUNLOOP); + // As part of the migration to DoSomeWork(), this policy is required to keep + // previous behavior and avoid regressions. + // TODO(crbug.com/1041853): Consider updating the policy. + main_thread_task_executor->SetWorkBatchSize(2); #else main_thread_task_executor = std::make_unique<base::SingleThreadTaskExecutor>(
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java index 0da6526..7e881382e 100644 --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -974,6 +974,7 @@ mNativeWebContentsAndroid, WebContentsImpl.this); } + @Override public void setFocus(boolean hasFocus) { if (mNativeWebContentsAndroid == 0) return; WebContentsImplJni.get().setFocus(
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java index 44f80e24..cdf43ca1 100644 --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -224,8 +224,13 @@ */ boolean focusLocationBarByDefault(); + /** + * Sets or removes page level focus. + * @param hasFocus Indicates if focus should be set or removed. + */ + void setFocus(boolean hasFocus); - /** + /** * Inform WebKit that Fullscreen mode has been exited by the user. */ void exitFullscreen();
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java index efbd806..d0d4925 100644 --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
@@ -145,6 +145,9 @@ } @Override + public void setFocus(boolean hasFocus) {} + + @Override public void exitFullscreen() {} @Override
diff --git a/content/renderer/content_security_policy_util.cc b/content/renderer/content_security_policy_util.cc index dd23450..e63469d2 100644 --- a/content/renderer/content_security_policy_util.cc +++ b/content/renderer/content_security_policy_util.cc
@@ -48,8 +48,8 @@ report_endpoints.push_back(endpoint.Utf8()); return ContentSecurityPolicy( - ContentSecurityPolicyHeader(policy.header.Utf8(), policy.disposition, - policy.source), + network::mojom::ContentSecurityPolicyHeader( + policy.header.Utf8(), policy.disposition, policy.source), directives, report_endpoints, policy.use_reporting_api); }
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 0107359..f5c3e1b 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -51,7 +51,6 @@ #include "content/common/associated_interfaces.mojom.h" #include "content/common/content_constants_internal.h" #include "content/common/content_security_policy/content_security_policy.h" -#include "content/common/content_security_policy_header.h" #include "content/common/edit_command.h" #include "content/common/frame.mojom.h" #include "content/common/frame_messages.h"
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc index 2c5bbe6..67e5bf3 100644 --- a/content/renderer/render_frame_proxy.cc +++ b/content/renderer/render_frame_proxy.cc
@@ -355,7 +355,11 @@ state.has_received_user_gesture_before_nav); web_frame_->ResetReplicatedContentSecurityPolicy(); - OnAddContentSecurityPolicies(state.accumulated_csp_headers); + for (const auto& header : state.accumulated_csp_headers) { + web_frame_->AddReplicatedContentSecurityPolicyHeader( + blink::WebString::FromUTF8(header.header_value), header.type, + header.source); + } } // Update the proxy's FrameOwner with new sandbox flags and container policy @@ -422,8 +426,6 @@ IPC_MESSAGE_HANDLER(FrameMsg_SetNeedsOcclusionTracking, OnSetNeedsOcclusionTracking) IPC_MESSAGE_HANDLER(FrameMsg_DidUpdateName, OnDidUpdateName) - IPC_MESSAGE_HANDLER(FrameMsg_AddContentSecurityPolicies, - OnAddContentSecurityPolicies) IPC_MESSAGE_HANDLER(FrameMsg_EnforceInsecureRequestPolicy, OnEnforceInsecureRequestPolicy) IPC_MESSAGE_HANDLER(FrameMsg_SetFrameOwnerProperties, @@ -507,15 +509,6 @@ unique_name_ = unique_name; } -void RenderFrameProxy::OnAddContentSecurityPolicies( - const std::vector<ContentSecurityPolicyHeader>& headers) { - for (const auto& header : headers) { - web_frame_->AddReplicatedContentSecurityPolicyHeader( - blink::WebString::FromUTF8(header.header_value), header.type, - header.source); - } -} - void RenderFrameProxy::OnEnforceInsecureRequestPolicy( blink::WebInsecureRequestPolicy policy) { web_frame_->SetReplicatedInsecureRequestPolicy(policy);
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h index 4a65a0e..55ecbc3 100644 --- a/content/renderer/render_frame_proxy.h +++ b/content/renderer/render_frame_proxy.h
@@ -42,7 +42,6 @@ class RenderFrameImpl; class RenderViewImpl; class RenderWidget; -struct ContentSecurityPolicyHeader; struct FrameOwnerProperties; struct FrameReplicationState; struct ResourceTimingInfo; @@ -241,8 +240,6 @@ const ResourceTimingInfo& resource_timing); void OnSetNeedsOcclusionTracking(bool); void OnDidUpdateName(const std::string& name, const std::string& unique_name); - void OnAddContentSecurityPolicies( - const std::vector<ContentSecurityPolicyHeader>& header); void OnEnforceInsecureRequestPolicy(blink::WebInsecureRequestPolicy policy); void OnSetFrameOwnerProperties(const FrameOwnerProperties& properties); void OnSetPageFocus(bool is_focused);
diff --git a/content/test/data/accessibility/html/li-expected-auralinux.txt b/content/test/data/accessibility/html/li-expected-auralinux.txt index a23b093..b24628e 100644 --- a/content/test/data/accessibility/html/li-expected-auralinux.txt +++ b/content/test/data/accessibility/html/li-expected-auralinux.txt
@@ -1,14 +1,14 @@ [document web] ++[list] display:block setsize:3 ++++[list item] display:list-item posinset:1 setsize:3 -++++++[panel] +++++++[panel] display:inline-block ++++++++[static] name='• ' ++++++[static] name='Item 1' display:list-item ++++[list item] display:list-item posinset:2 setsize:3 -++++++[panel] +++++++[panel] display:inline-block ++++++++[static] name='• ' ++++++[static] name='Item 2' display:list-item ++++[list item] display:list-item posinset:3 setsize:3 -++++++[panel] +++++++[panel] display:inline-block ++++++++[static] name='• ' ++++++[static] name='Item 3' display:list-item
diff --git a/content/test/data/accessibility/html/li-expected-blink.txt b/content/test/data/accessibility/html/li-expected-blink.txt index 29b2bb8..ae0f519 100644 --- a/content/test/data/accessibility/html/li-expected-blink.txt +++ b/content/test/data/accessibility/html/li-expected-blink.txt
@@ -2,19 +2,19 @@ ++genericContainer ignored display='block' ++++list display='block' setSize=3 ++++++listItem display='list-item' hierarchicalLevel=1 setSize=3 posInSet=1 -++++++++listMarker name='• ' +++++++++listMarker display='inline-block' name='• ' ++++++++++staticText name='• ' ++++++++++++inlineTextBox name='• ' ++++++++staticText display='list-item' name='Item 1' ++++++++++inlineTextBox display='list-item' name='Item 1' ++++++listItem display='list-item' hierarchicalLevel=1 setSize=3 posInSet=2 -++++++++listMarker name='• ' +++++++++listMarker display='inline-block' name='• ' ++++++++++staticText name='• ' ++++++++++++inlineTextBox name='• ' ++++++++staticText display='list-item' name='Item 2' ++++++++++inlineTextBox display='list-item' name='Item 2' ++++++listItem display='list-item' hierarchicalLevel=1 setSize=3 posInSet=3 -++++++++listMarker name='• ' +++++++++listMarker display='inline-block' name='• ' ++++++++++staticText name='• ' ++++++++++++inlineTextBox name='• ' ++++++++staticText display='list-item' name='Item 3'
diff --git a/content/test/data/accessibility/html/li-expected-win.txt b/content/test/data/accessibility/html/li-expected-win.txt index 849d40b..6cfb76a 100644 --- a/content/test/data/accessibility/html/li-expected-win.txt +++ b/content/test/data/accessibility/html/li-expected-win.txt
@@ -1,14 +1,14 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ++ROLE_SYSTEM_LIST READONLY display:block ++++ROLE_SYSTEM_LISTITEM READONLY display:list-item -++++++ROLE_SYSTEM_GROUPING +++++++ROLE_SYSTEM_GROUPING display:inline-block ++++++++ROLE_SYSTEM_STATICTEXT name='• ' ++++++ROLE_SYSTEM_STATICTEXT name='Item 1' display:list-item ++++ROLE_SYSTEM_LISTITEM READONLY display:list-item -++++++ROLE_SYSTEM_GROUPING +++++++ROLE_SYSTEM_GROUPING display:inline-block ++++++++ROLE_SYSTEM_STATICTEXT name='• ' ++++++ROLE_SYSTEM_STATICTEXT name='Item 2' display:list-item ++++ROLE_SYSTEM_LISTITEM READONLY display:list-item -++++++ROLE_SYSTEM_GROUPING +++++++ROLE_SYSTEM_GROUPING display:inline-block ++++++++ROLE_SYSTEM_STATICTEXT name='• ' ++++++ROLE_SYSTEM_STATICTEXT name='Item 3' display:list-item
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index a2480a20..2a7d1f73 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -196,6 +196,9 @@ # Produces blank images on Intel HD 630 w/ Mesa 19.0.2 crbug.com/976861 [ linux intel-0x5912 ] Pixel_OffscreenCanvasTransferToImageBitmap [ Skip ] +# Flakes regularly on Mac. +crbug.com/1040202 [ mac ] Pixel_CSSFilterEffects_NoOverlays [ Failure ] + # Skip swap chain tests on non-Windows [ android ] Pixel_CanvasLowLatency2DSwapChain [ Skip ] [ android ] Pixel_CanvasLowLatencyWebGLSwapChain [ Skip ]
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt index fc2debb5..f878eb2 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -277,6 +277,7 @@ # Passthrough command decoder / Linux / OpenGL / NVIDIA crbug.com/766918 [ opengl linux passthrough nvidia ] conformance2/textures/image_bitmap_from_video/* [ RetryOnFailure ] +crbug.com/angleproject/4298 [ opengl linux passthrough nvidia ] conformance/uniforms/out-of-bounds-uniform-array-access.html [ Failure ] crbug.com/965648 [ opengl linux passthrough nvidia ] deqp/functional/gles3/shaderstruct.html [ RetryOnFailure ] @@ -541,10 +542,14 @@ crbug.com/665197 [ mac intel-0xa2e ] conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte.html [ Failure ] crbug.com/665197 [ mac intel-0xa2e ] conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte.html [ Failure ] crbug.com/658930 [ mac intel ] conformance2/textures/misc/integer-cubemap-texture-sampling.html [ Failure ] -crbug.com/731877 [ mac intel-0xa2e no-passthrough ] conformance2/renderbuffers/multisampled-depth-renderbuffer-initialization.html [ Failure ] crbug.com/782317 [ mac intel ] conformance/rendering/rendering-stencil-large-viewport.html [ Failure ] crbug.com/1039465 [ mac intel ] conformance/textures/canvas/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html [ RetryOnFailure ] +# Mac Intel No-Passthrough +crbug.com/731877 [ mac intel-0xa2e no-passthrough ] conformance2/renderbuffers/multisampled-depth-renderbuffer-initialization.html [ Failure ] +crbug.com/1042011 [ mac intel-0xa2e no-passthrough ] conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html [ RetryOnFailure ] + + # Mac Passthrough crbug.com/982294 [ mac passthrough ] conformance/rendering/negative-one-index.html [ Failure ] crbug.com/982294 [ mac passthrough ] conformance/textures/misc/gl-teximage.html [ Failure ]
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py b/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py index f06e44d..e1bfdca6 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py +++ b/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py
@@ -176,7 +176,6 @@ 'EXT_disjoint_timer_query_webgl2', 'EXT_float_blend', 'EXT_texture_filter_anisotropic', - 'EXT_texture_norm16', 'KHR_parallel_shader_compile', 'OES_texture_float_linear', 'OVR_multiview2',
diff --git a/extensions/browser/api/file_handlers/BUILD.gn b/extensions/browser/api/file_handlers/BUILD.gn index 826c0a9..3c1f981 100644 --- a/extensions/browser/api/file_handlers/BUILD.gn +++ b/extensions/browser/api/file_handlers/BUILD.gn
@@ -31,7 +31,5 @@ "//storage/browser", ] - public_deps = [ - "//extensions/browser:browser_sources", - ] + public_deps = [ "//extensions/browser:browser_sources" ] }
diff --git a/extensions/browser/api/system_network/BUILD.gn b/extensions/browser/api/system_network/BUILD.gn index eba8f4a7..95671ea7 100644 --- a/extensions/browser/api/system_network/BUILD.gn +++ b/extensions/browser/api/system_network/BUILD.gn
@@ -13,11 +13,7 @@ "system_network_api.h", ] - deps = [ - "//extensions/common/api", - ] + deps = [ "//extensions/common/api" ] - public_deps = [ - "//extensions/browser:browser_sources", - ] + public_deps = [ "//extensions/browser:browser_sources" ] }
diff --git a/google_apis/gaia/fake_gaia.cc b/google_apis/gaia/fake_gaia.cc index fe66742..58423c3 100644 --- a/google_apis/gaia/fake_gaia.cc +++ b/google_apis/gaia/fake_gaia.cc
@@ -103,6 +103,22 @@ kTestCookieAttributes)); } +std::string FormatCookieForMultilogin(std::string name, std::string value) { + std::string format = R"( + { + "name":"%s", + "value":"%s", + "domain":".google.fr", + "path":"/", + "isSecure":true, + "isHttpOnly":false, + "priority":"HIGH", + "maxAge":63070000 + } + )"; + return base::StringPrintf(format.c_str(), name.c_str(), value.c_str()); +} + } // namespace FakeGaia::AccessTokenInfo::AccessTokenInfo() = default; @@ -206,6 +222,10 @@ REGISTER_RESPONSE_HANDLER( gaia_urls->merge_session_url(), HandleMergeSession); + // Handles /oauth/multilogin GAIA call. + REGISTER_RESPONSE_HANDLER(gaia_urls->oauth_multilogin_url(), + HandleMultilogin); + // Handles /embedded/setup/v2/chromeos GAIA call. REGISTER_RESPONSE_HANDLER(gaia_urls->embedded_setup_chromeos_url(2), HandleEmbeddedSetupChromeos); @@ -838,3 +858,33 @@ break; } } + +void FakeGaia::HandleMultilogin(const HttpRequest& request, + BasicHttpResponse* http_response) { + http_response->set_code(net::HTTP_UNAUTHORIZED); + + if (merge_session_params_.session_sid_cookie.empty() || + merge_session_params_.session_lsid_cookie.empty()) { + http_response->set_code(net::HTTP_BAD_REQUEST); + return; + } + + GURL request_url = GURL("http://localhost").Resolve(request.relative_url); + std::string request_query = request_url.query(); + + std::string source; + if (!GetQueryParameter(request_query, "source", &source)) { + LOG(ERROR) << "Missing or invalid 'source' param in /Multilogin call"; + return; + } + + http_response->set_content( + ")]}'\n{\"status\":\"OK\",\"cookies\":[" + + FormatCookieForMultilogin("SID", + merge_session_params_.session_sid_cookie) + + "," + + FormatCookieForMultilogin("LSID", + merge_session_params_.session_lsid_cookie) + + "]}"); + http_response->set_code(net::HTTP_OK); +}
diff --git a/google_apis/gaia/fake_gaia.h b/google_apis/gaia/fake_gaia.h index 3b2a025f9..8b9961f 100644 --- a/google_apis/gaia/fake_gaia.h +++ b/google_apis/gaia/fake_gaia.h
@@ -252,6 +252,9 @@ void HandleGetReAuthProofToken( const net::test_server::HttpRequest& request, net::test_server::BasicHttpResponse* http_response); + // HTTP handler for /OAuth/Multilogin. + void HandleMultilogin(const net::test_server::HttpRequest& request, + net::test_server::BasicHttpResponse* http_response); // Returns the access token associated with |auth_token| that matches the // given |client_id| and |scope_string|. If |scope_string| is empty, the first
diff --git a/gpu/command_buffer/common/gles2_cmd_utils.cc b/gpu/command_buffer/common/gles2_cmd_utils.cc index 116c7e16..7f0bdb39 100644 --- a/gpu/command_buffer/common/gles2_cmd_utils.cc +++ b/gpu/command_buffer/common/gles2_cmd_utils.cc
@@ -1223,8 +1223,6 @@ case GL_RGB16I: case GL_RGB32UI: case GL_RGB32I: - case GL_RGB16_EXT: - case GL_RGB16_SNORM_EXT: return kRGB; case GL_BGRA_EXT: case GL_BGRA8_EXT: @@ -1245,8 +1243,6 @@ case GL_RGBA16I: case GL_RGBA32UI: case GL_RGBA32I: - case GL_RGBA16_EXT: - case GL_RGBA16_SNORM_EXT: return kRGBA; case GL_DEPTH_COMPONENT32_OES: case GL_DEPTH_COMPONENT24_OES: @@ -1271,8 +1267,6 @@ case GL_R16I: case GL_R32UI: case GL_R32I: - case GL_R16_EXT: - case GL_R16_SNORM_EXT: return kRed; case GL_RG_EXT: case GL_RG8: @@ -1285,8 +1279,6 @@ case GL_RG16I: case GL_RG32UI: case GL_RG32I: - case GL_RG16_EXT: - case GL_RG16_SNORM_EXT: return kRed | kGreen; default: return 0x0000; @@ -1298,8 +1290,6 @@ case GL_ALPHA16F_EXT: case GL_ALPHA32F_EXT: case GL_RGB8: - case GL_RGB16_EXT: - case GL_RGB16_SNORM_EXT: case GL_RGB565: case GL_RGB16F: case GL_RGB32F: @@ -1317,8 +1307,6 @@ case GL_RGBA16F: case GL_RGBA32F: case GL_RGBA8_OES: - case GL_RGBA16_EXT: - case GL_RGBA16_SNORM_EXT: case GL_RGBA4: case GL_RGB5_A1: case GL_SRGB8_ALPHA8: @@ -1333,8 +1321,6 @@ case GL_RGBA32I: case GL_R8: case GL_R8_SNORM: - case GL_R16_EXT: - case GL_R16_SNORM_EXT: case GL_R16F: case GL_R32F: case GL_R8UI: @@ -1345,8 +1331,6 @@ case GL_R32I: case GL_RG8: case GL_RG8_SNORM: - case GL_RG16_EXT: - case GL_RG16_SNORM_EXT: case GL_RG16F: case GL_RG32F: case GL_RG8UI: @@ -1450,8 +1434,6 @@ case GL_RGB16F: case GL_RGB16UI: case GL_RGB16I: - case GL_RGB16_EXT: - case GL_RGB16_SNORM_EXT: *r = 16; *g = 16; *b = 16; @@ -1487,8 +1469,6 @@ case GL_RGBA16F_EXT: case GL_RGBA16UI: case GL_RGBA16I: - case GL_RGBA16_EXT: - case GL_RGBA16_SNORM_EXT: *r = 16; *g = 16; *b = 16; @@ -1531,7 +1511,6 @@ case GL_R16UI: case GL_R16I: case GL_R16_EXT: - case GL_R16_SNORM_EXT: *r = 16; break; case GL_R32F: @@ -1549,8 +1528,6 @@ case GL_RG16F: case GL_RG16UI: case GL_RG16I: - case GL_RG16_EXT: - case GL_RG16_SNORM_EXT: *r = 16; *g = 16; break; @@ -1815,8 +1792,6 @@ return GL_RGB16F; case GL_FLOAT: return GL_RGB32F; - case GL_UNSIGNED_SHORT: - return GL_RGB16_EXT; default: NOTREACHED(); break; @@ -1834,8 +1809,6 @@ return GL_RGBA16F; case GL_FLOAT: return GL_RGBA32F; - case GL_UNSIGNED_SHORT: - return GL_RGBA16_EXT; default: NOTREACHED(); break; @@ -1877,8 +1850,6 @@ return GL_RG16F; case GL_FLOAT: return GL_RG32F; - case GL_UNSIGNED_SHORT: - return GL_RG16_EXT; default: NOTREACHED(); break;
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc index 9877981..1219afcd4 100644 --- a/gpu/command_buffer/service/feature_info.cc +++ b/gpu/command_buffer/service/feature_info.cc
@@ -1415,55 +1415,19 @@ (gl_version_info_->IsAtLeastGL(2, 1) && gfx::HasExtension(extensions, "GL_ARB_texture_rg")) || gfx::HasExtension(extensions, "GL_EXT_texture_norm16")) { - AddExtensionString("GL_EXT_texture_norm16"); + // TODO(hubbe): Rename ext_texture_norm16 to texture_r16 feature_flags_.ext_texture_norm16 = true; g_r16_is_present = true; + // Note: EXT_texture_norm16 is not exposed through WebGL API so we validate + // only the combinations used internally. validators_.pixel_type.AddValue(GL_UNSIGNED_SHORT); - validators_.pixel_type.AddValue(GL_SHORT); - validators_.texture_format.AddValue(GL_RED_EXT); - validators_.texture_format.AddValue(GL_RG_EXT); - validators_.texture_internal_format.AddValue(GL_R16_EXT); - validators_.texture_internal_format.AddValue(GL_RG16_EXT); - validators_.texture_internal_format.AddValue(GL_RGB16_EXT); - validators_.texture_internal_format.AddValue(GL_RGBA16_EXT); - validators_.texture_internal_format.AddValue(GL_R16_SNORM_EXT); - validators_.texture_internal_format.AddValue(GL_RG16_SNORM_EXT); - validators_.texture_internal_format.AddValue(GL_RGB16_SNORM_EXT); - validators_.texture_internal_format.AddValue(GL_RGBA16_SNORM_EXT); validators_.texture_internal_format.AddValue(GL_RED_EXT); - - validators_.read_pixel_format.AddValue(GL_R16_EXT); - validators_.read_pixel_format.AddValue(GL_RG16_EXT); - validators_.read_pixel_format.AddValue(GL_RGBA16_EXT); - - validators_.render_buffer_format.AddValue(GL_R16_EXT); - validators_.render_buffer_format.AddValue(GL_RG16_EXT); - validators_.render_buffer_format.AddValue(GL_RGBA16_EXT); - validators_.texture_unsized_internal_format.AddValue(GL_RED_EXT); - validators_.texture_unsized_internal_format.AddValue(GL_RG_EXT); - validators_.texture_internal_format_storage.AddValue(GL_R16_EXT); - validators_.texture_internal_format_storage.AddValue(GL_RG16_EXT); - validators_.texture_internal_format_storage.AddValue(GL_RGB16_EXT); - validators_.texture_internal_format_storage.AddValue(GL_RGBA16_EXT); - validators_.texture_internal_format_storage.AddValue(GL_R16_SNORM_EXT); - validators_.texture_internal_format_storage.AddValue(GL_RG16_SNORM_EXT); - validators_.texture_internal_format_storage.AddValue(GL_RGB16_SNORM_EXT); - validators_.texture_internal_format_storage.AddValue(GL_RGBA16_SNORM_EXT); - validators_.texture_sized_color_renderable_internal_format.AddValue( - GL_R16_EXT); - validators_.texture_sized_color_renderable_internal_format.AddValue( - GL_RG16_EXT); - validators_.texture_sized_color_renderable_internal_format.AddValue( - GL_RGBA16_EXT); - - // TODO(shrekshao): gpu_memory_buffer_formats is not used by WebGL - // So didn't expose all buffer formats here. feature_flags_.gpu_memory_buffer_formats.Add(gfx::BufferFormat::R_16); }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index a81149c2..fdcdc30 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -13334,12 +13334,6 @@ accepted_formats.push_back(GL_RGBA); accepted_types.push_back(GL_UNSIGNED_INT_2_10_10_10_REV); break; - case GL_R16_EXT: - case GL_RG16_EXT: - case GL_RGBA16_EXT: - accepted_formats.push_back(GL_RGBA); - accepted_types.push_back(GL_UNSIGNED_SHORT); - break; default: accepted_formats.push_back(GL_RGBA); {
diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc index 6b98775..b889041 100644 --- a/gpu/command_buffer/service/texture_manager.cc +++ b/gpu/command_buffer/service/texture_manager.cc
@@ -222,13 +222,6 @@ // Exposed by GL_EXT_texture_norm16 {GL_R16_EXT, GL_RED, GL_UNSIGNED_SHORT}, - {GL_RG16_EXT, GL_RG, GL_UNSIGNED_SHORT}, - {GL_RGB16_EXT, GL_RGB, GL_UNSIGNED_SHORT}, - {GL_RGBA16_EXT, GL_RGBA, GL_UNSIGNED_SHORT}, - {GL_R16_SNORM_EXT, GL_RED, GL_SHORT}, - {GL_RG16_SNORM_EXT, GL_RG, GL_SHORT}, - {GL_RGB16_SNORM_EXT, GL_RGB, GL_SHORT}, - {GL_RGBA16_SNORM_EXT, GL_RGBA, GL_SHORT}, }; static const FormatType kSupportedFormatTypesES2Only[] = { @@ -3835,7 +3828,6 @@ case GL_R16F: case GL_R32F: case GL_R16_EXT: - case GL_R16_SNORM_EXT: return GL_RED; case GL_R8UI: case GL_R8I: @@ -3849,8 +3841,6 @@ case GL_RG: case GL_RG8: case GL_RG8_SNORM: - case GL_RG16: - case GL_RG16_SNORM: case GL_RG16F: case GL_RG32F: return GL_RG; @@ -3872,11 +3862,9 @@ case GL_RGB: case GL_RGB8: case GL_SRGB8: - case GL_RGB16: case GL_R11F_G11F_B10F: case GL_RGB565: case GL_RGB8_SNORM: - case GL_RGB16_SNORM: case GL_RGB9_E5: case GL_RGB16F: case GL_RGB32F: @@ -3909,10 +3897,8 @@ case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: case GL_RGBA: case GL_RGBA8: - case GL_RGBA16: case GL_SRGB8_ALPHA8: case GL_RGBA8_SNORM: - case GL_RGBA16_SNORM: case GL_RGBA4: case GL_RGB5_A1: case GL_RGB10_A2: @@ -3995,8 +3981,6 @@ return GL_SHORT; case GL_R16_EXT: return GL_UNSIGNED_SHORT; - case GL_R16_SNORM_EXT: - return GL_SHORT; case GL_R32UI: return GL_UNSIGNED_INT; case GL_R32I: @@ -4017,10 +4001,6 @@ return GL_UNSIGNED_SHORT; case GL_RG16I: return GL_SHORT; - case GL_RG16_EXT: - return GL_UNSIGNED_SHORT; - case GL_RG16_SNORM_EXT: - return GL_SHORT; case GL_RG32UI: return GL_UNSIGNED_INT; case GL_RG32I: @@ -4048,10 +4028,6 @@ return GL_UNSIGNED_SHORT; case GL_RGB16I: return GL_SHORT; - case GL_RGB16_EXT: - return GL_UNSIGNED_SHORT; - case GL_RGB16_SNORM_EXT: - return GL_SHORT; case GL_RGB32UI: return GL_UNSIGNED_INT; case GL_RGB32I: @@ -4082,10 +4058,6 @@ return GL_UNSIGNED_SHORT; case GL_RGBA16I: return GL_SHORT; - case GL_RGBA16_EXT: - return GL_UNSIGNED_SHORT; - case GL_RGBA16_SNORM_EXT: - return GL_SHORT; case GL_RGBA32I: return GL_INT; case GL_RGBA32UI:
diff --git a/gpu/command_buffer/service/texture_manager_unittest.cc b/gpu/command_buffer/service/texture_manager_unittest.cc index 0282950..fd96443 100644 --- a/gpu/command_buffer/service/texture_manager_unittest.cc +++ b/gpu/command_buffer/service/texture_manager_unittest.cc
@@ -2765,14 +2765,6 @@ CONTEXT_TYPE_OPENGLES3); ExpectValid(true, GL_RED, GL_UNSIGNED_SHORT, GL_R16_EXT); - ExpectValid(true, GL_RG, GL_UNSIGNED_SHORT, GL_RG16_EXT); - ExpectValid(true, GL_RGB, GL_UNSIGNED_SHORT, GL_RGB16_EXT); - ExpectValid(true, GL_RGBA, GL_UNSIGNED_SHORT, GL_RGBA16_EXT); - - ExpectValid(true, GL_RED, GL_SHORT, GL_R16_SNORM_EXT); - ExpectValid(true, GL_RG, GL_SHORT, GL_RG16_SNORM_EXT); - ExpectValid(true, GL_RGB, GL_SHORT, GL_RGB16_SNORM_EXT); - ExpectValid(true, GL_RGBA, GL_SHORT, GL_RGBA16_SNORM_EXT); } } // namespace gles2
diff --git a/ios/chrome/browser/flags/BUILD.gn b/ios/chrome/browser/flags/BUILD.gn index e42118e..7f7916d 100644 --- a/ios/chrome/browser/flags/BUILD.gn +++ b/ios/chrome/browser/flags/BUILD.gn
@@ -19,6 +19,7 @@ "//components/feature_engagement/public", "//components/flags_ui", "//components/flags_ui:switches", + "//components/infobars/core:feature_flags", "//components/invalidation/impl:feature_list", "//components/ntp_tiles", "//components/omnibox/browser",
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index 1e39807..1e49166 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -32,6 +32,7 @@ #include "components/flags_ui/feature_entry_macros.h" #include "components/flags_ui/flags_storage.h" #include "components/flags_ui/flags_ui_switches.h" +#include "components/infobars/core/infobar_feature.h" #include "components/invalidation/impl/invalidation_switches.h" #include "components/ntp_tiles/switches.h" #include "components/omnibox/browser/omnibox_field_trial.h" @@ -408,7 +409,7 @@ "DetectMainThreadFreeze")}, {"infobar-ui-reboot", flag_descriptions::kInfobarUIRebootName, flag_descriptions::kInfobarUIRebootDescription, flags_ui::kOsIos, - FEATURE_VALUE_TYPE(kInfobarUIReboot)}, + FEATURE_VALUE_TYPE(kIOSInfobarUIReboot)}, {"find-in-page-iframe", flag_descriptions::kFindInPageiFrameName, flag_descriptions::kFindInPageiFrameDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kFindInPageiFrame)},
diff --git a/ios/chrome/browser/infobars/infobar_badge_tab_helper_unittest.mm b/ios/chrome/browser/infobars/infobar_badge_tab_helper_unittest.mm index 1dc7293..1e1bf47 100644 --- a/ios/chrome/browser/infobars/infobar_badge_tab_helper_unittest.mm +++ b/ios/chrome/browser/infobars/infobar_badge_tab_helper_unittest.mm
@@ -5,13 +5,13 @@ #include "ios/chrome/browser/infobars/infobar_badge_tab_helper.h" #include "base/test/scoped_feature_list.h" +#include "components/infobars/core/infobar_feature.h" #include "ios/chrome/browser/infobars/infobar_badge_tab_helper.h" #include "ios/chrome/browser/infobars/infobar_manager_impl.h" #import "ios/chrome/browser/infobars/test/fake_infobar_badge_tab_helper_delegate.h" #import "ios/chrome/browser/infobars/test/fake_infobar_ios.h" #import "ios/chrome/browser/ui/badges/badge_item.h" #include "ios/chrome/browser/ui/badges/badge_type_util.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/test/fake_infobar_ui_delegate.h" #import "ios/web/public/test/fakes/test_navigation_manager.h" #import "ios/web/public/test/fakes/test_web_state.h" @@ -32,8 +32,8 @@ protected: InfobarBadgeTabHelperTest() : delegate_([[FakeInfobarTabHelperDelegate alloc] init]) { - // Enable kInfobarUIReboot flag. - feature_list_.InitAndEnableFeature(kInfobarUIReboot); + // Enable kIOSInfobarUIReboot flag. + feature_list_.InitAndEnableFeature(kIOSInfobarUIReboot); // Setup navigation manager. Needed for InfobarManager. web_state_.SetNavigationManager(
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm index 6a20967..94fdb9d3 100644 --- a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm
@@ -118,10 +118,10 @@ InfobarOverlayType overlay_type) { std::unique_ptr<FakeOverlayRequestCallbackInstaller> installer = std::make_unique<FakeOverlayRequestCallbackInstaller>( - &mock_callback_receivers_[overlay_type]); - installer->StartInstallingDispatchCallbacksWithSupport( - DispatchInfo::ResponseSupport()); - installer->SetRequestSupport(&request_supports_.at(overlay_type)); + &mock_callback_receivers_[overlay_type], + std::set<const OverlayResponseSupport*>( + {DispatchInfo::ResponseSupport()})); + installer->set_request_support(&request_supports_.at(overlay_type)); return installer; } @@ -183,19 +183,17 @@ queue()->AddRequest(std::move(added_request)); // Verify that dispatched responses sent through |request|'s callback manager // are received by the expected receiver. - std::unique_ptr<OverlayResponse> response = - OverlayResponse::CreateWithInfo<DispatchInfo>(); EXPECT_CALL(*mock_callback_receiver(), - DispatchCallback(request, DispatchInfo::ResponseSupport(), - response.get())); - request->GetCallbackManager()->DispatchResponse(std::move(response)); + DispatchCallback(request, DispatchInfo::ResponseSupport())); + request->GetCallbackManager()->DispatchResponse( + OverlayResponse::CreateWithInfo<DispatchInfo>()); // Simulate dismissal of the request's UI, expecting // MockInfobarBannerInteractionHandler::Handler::InfobarVisibilityChanged() // and MockOverlayRequestCallbackReceiver::CompletionCallback() to // be called. EXPECT_CALL(*mock_handler(), InfobarVisibilityChanged(&infobar_, /*visible=*/false)); - EXPECT_CALL(*mock_callback_receiver(), CompletionCallback(request, nullptr)); + EXPECT_CALL(*mock_callback_receiver(), CompletionCallback(request)); presentation_context_.SimulateDismissalForRequest( request, OverlayDismissalReason::kUserInteraction); }
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_banner_interaction_handler_unittest.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_banner_interaction_handler_unittest.mm index 0022d26b..0452ce45 100644 --- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_banner_interaction_handler_unittest.mm +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_banner_interaction_handler_unittest.mm
@@ -5,10 +5,10 @@ #import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_banner_interaction_handler.h" #include "base/test/scoped_feature_list.h" +#include "components/infobars/core/infobar_feature.h" #import "ios/chrome/browser/infobars/test/fake_infobar_ios.h" #import "ios/chrome/browser/overlays/public/overlay_request_queue.h" #import "ios/chrome/browser/passwords/test/mock_ios_chrome_save_passwords_infobar_delegate.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/test/fake_infobar_ui_delegate.h" #import "ios/web/public/test/fakes/test_web_state.h" #include "testing/platform_test.h" @@ -25,7 +25,7 @@ [[FakeInfobarUIDelegate alloc] init], MockIOSChromeSavePasswordInfoBarDelegate::Create(@"username", @"password")) { - scoped_feature_list_.InitWithFeatures({kInfobarUIReboot}, {}); + scoped_feature_list_.InitWithFeatures({kIOSInfobarUIReboot}, {}); } MockIOSChromeSavePasswordInfoBarDelegate& mock_delegate() {
diff --git a/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm b/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm index a324a78..1d3f47a 100644 --- a/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm +++ b/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm
@@ -8,11 +8,11 @@ #include "base/test/scoped_feature_list.h" #include "components/autofill/core/common/password_form.h" #include "components/infobars/core/infobar.h" +#include "components/infobars/core/infobar_feature.h" #include "components/password_manager/core/browser/mock_password_form_manager_for_ui.h" #include "ios/chrome/browser/infobars/infobar_ios.h" #import "ios/chrome/browser/overlays/public/infobar_banner/save_password_infobar_banner_overlay.h" #import "ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/test/fake_infobar_ui_delegate.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -29,7 +29,7 @@ class InfobarOverlayRequestFactoryImplTest : public PlatformTest { public: InfobarOverlayRequestFactoryImplTest() { - feature_list_.InitWithFeatures({kInfobarUIReboot}, {}); + feature_list_.InitWithFeatures({kIOSInfobarUIReboot}, {}); } InfobarOverlayRequestFactory* factory() { return &factory_; }
diff --git a/ios/chrome/browser/main/BUILD.gn b/ios/chrome/browser/main/BUILD.gn index d35284a..82f0a39 100644 --- a/ios/chrome/browser/main/BUILD.gn +++ b/ios/chrome/browser/main/BUILD.gn
@@ -5,10 +5,18 @@ source_set("public") { sources = [ "browser.h", + "browser_list.h", + "browser_list_factory.h", + "browser_list_observer.h", "browser_observer.h", "browser_user_data.h", ] - deps = [ "//base" ] + deps = [ + "//base", + "//components/keyed_service/core", + "//components/keyed_service/ios", + "//ios/chrome/browser/browser_state", + ] configs += [ "//build/config/compiler:enable_arc" ] } @@ -18,6 +26,9 @@ "browser_agent_util.mm", "browser_impl.h", "browser_impl.mm", + "browser_list_factory.mm", + "browser_list_impl.h", + "browser_list_impl.mm", "browser_web_state_list_delegate.h", "browser_web_state_list_delegate.mm", ] @@ -26,6 +37,7 @@ deps = [ "//base", + "//components/keyed_service/ios", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/crash_report/breadcrumbs", "//ios/chrome/browser/crash_report/breadcrumbs:feature_flags", @@ -48,6 +60,8 @@ "fake_browser_observer.mm", "test_browser.h", "test_browser.mm", + "test_browser_list_observer.h", + "test_browser_list_observer.mm", ] deps = [ ":main", @@ -64,11 +78,15 @@ source_set("unit_tests") { testonly = true - sources = [ "browser_impl_unittest.mm" ] + sources = [ + "browser_impl_unittest.mm", + "browser_list_impl_unittest.mm", + ] deps = [ ":main", ":test_support", "//base", + "//base/test:test_support", "//ios/chrome/browser/browser_state:test_support", "//ios/chrome/browser/tabs", "//ios/chrome/browser/web_state_list",
diff --git a/ios/chrome/browser/main/browser_list.h b/ios/chrome/browser/main/browser_list.h new file mode 100644 index 0000000..36565175 --- /dev/null +++ b/ios/chrome/browser/main/browser_list.h
@@ -0,0 +1,65 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_H_ +#define IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_H_ + +#include "base/macros.h" +#include "base/observer_list.h" +#include "components/keyed_service/core/keyed_service.h" + +class BrowserListObserver; +class Browser; + +// An observable KeyedService which tracks the addition and removal of Browsers +// which use the owning BrowserState. The object creating browsers is +// responsible for informing the service of their addition; Browsers themselves +// don't know anything about this service. +// +// This service doesn't modify the lifetimes of Browser objects; it keeps (and +// vends) only weak pointers to them. +// +// There's a single service instance for both regular and OTR browser states; +// fetching the service for the OTR browser state will return the regular +// browser state's service instance. +class BrowserList : public KeyedService { + public: + explicit BrowserList() = default; + + // Adds a regular browser to the list. It's an error to add an incognito + // browser with this method. + virtual void AddBrowser(Browser* browser) = 0; + + // Adds an incognoito browser to the list.It's an error to add a regular + // (non-incognito) browser with this method. + virtual void AddIncognitoBrowser(Browser* browser) = 0; + + // Removes a regular browser from the list. Removing any browser not + // previously added is a no-op; observers are not informed. This includes + // calling RemoveBrowser() with an incognito browser. + virtual void RemoveBrowser(Browser* browser) = 0; + + // Removes an incognito browser from the lisr. Removing any incognito browser + // not previously added is a no-op; observers are not informed. This includes + // calling RemoveIncognitoBrowser() with a regular browser. + virtual void RemoveIncognitoBrowser(Browser* browser) = 0; + + // Returns the current set of regular browsers in the list. + virtual std::set<Browser*> AllRegularBrowsers() const = 0; + + // Returns the current set of incognito browsers in the list. + virtual std::set<Browser*> AllIncognitoBrowsers() const = 0; + + // Adds an observer to the service. + virtual void AddObserver(BrowserListObserver* observer) = 0; + + // Removes an observer from the service. The service must have no observers + // when it is destroyed. + virtual void RemoveObserver(BrowserListObserver* observer) = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(BrowserList); +}; + +#endif // IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_H_
diff --git a/ios/chrome/browser/main/browser_list_factory.h b/ios/chrome/browser/main/browser_list_factory.h new file mode 100644 index 0000000..ec66736 --- /dev/null +++ b/ios/chrome/browser/main/browser_list_factory.h
@@ -0,0 +1,43 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_FACTORY_H_ +#define IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_FACTORY_H_ + +#include "base/macros.h" +#include "base/no_destructor.h" +#include "components/keyed_service/ios/browser_state_keyed_service_factory.h" + +class BrowserList; + +namespace ios { +class ChromeBrowserState; +} + +// Keyed service factory for BrowserList. +// This factory returns the same instance for regular and OTR browser states. +class BrowserListFactory : public BrowserStateKeyedServiceFactory { + public: + // Convenience getter that typecasts the value returned to a + // BrowserList. + static BrowserList* GetForBrowserState( + ios::ChromeBrowserState* browser_state); + // Getter for singleton instance. + static BrowserListFactory* GetInstance(); + + private: + friend class base::NoDestructor<BrowserListFactory>; + + BrowserListFactory(); + + // BrowserStateKeyedServiceFactory: + std::unique_ptr<KeyedService> BuildServiceInstanceFor( + web::BrowserState* context) const override; + web::BrowserState* GetBrowserStateToUse( + web::BrowserState* context) const override; + + DISALLOW_COPY_AND_ASSIGN(BrowserListFactory); +}; + +#endif // IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_FACTORY_H_
diff --git a/ios/chrome/browser/main/browser_list_factory.mm b/ios/chrome/browser/main/browser_list_factory.mm new file mode 100644 index 0000000..81d4daab --- /dev/null +++ b/ios/chrome/browser/main/browser_list_factory.mm
@@ -0,0 +1,45 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/main/browser_list_factory.h" + +#include <memory> + +#include "components/keyed_service/ios/browser_state_dependency_manager.h" +#include "ios/chrome/browser/browser_state/browser_state_otr_helper.h" +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/main/browser_list_impl.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +// static +BrowserList* BrowserListFactory::GetForBrowserState( + ios::ChromeBrowserState* browser_state) { + return static_cast<BrowserList*>( + GetInstance()->GetServiceForBrowserState(browser_state, true)); +} + +// static +BrowserListFactory* BrowserListFactory::GetInstance() { + static base::NoDestructor<BrowserListFactory> instance; + return instance.get(); +} + +BrowserListFactory::BrowserListFactory() + : BrowserStateKeyedServiceFactory( + "BrowserList", + BrowserStateDependencyManager::GetInstance()) {} + +std::unique_ptr<KeyedService> BrowserListFactory::BuildServiceInstanceFor( + web::BrowserState* context) const { + return std::make_unique<BrowserListImpl>(); +} + +web::BrowserState* BrowserListFactory::GetBrowserStateToUse( + web::BrowserState* context) const { + // Incognito browser states use same service as regular browser states. + return GetBrowserStateRedirectedInIncognito(context); +}
diff --git a/ios/chrome/browser/main/browser_list_impl.h b/ios/chrome/browser/main/browser_list_impl.h new file mode 100644 index 0000000..41d0fd49 --- /dev/null +++ b/ios/chrome/browser/main/browser_list_impl.h
@@ -0,0 +1,37 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_IMPL_H_ +#define IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_IMPL_H_ + +#include "base/macros.h" +#import "ios/chrome/browser/main/browser_list.h" +#include "ios/chrome/browser/main/browser_list_observer.h" + +// The concrete implementation of BrowserList returned by the +// BrowserListFactory. +class BrowserListImpl : public BrowserList { + public: + BrowserListImpl(); + ~BrowserListImpl() override; + + // BrowserList: + void AddBrowser(Browser* browser) override; + void AddIncognitoBrowser(Browser* browser) override; + void RemoveBrowser(Browser* browser) override; + void RemoveIncognitoBrowser(Browser* browser) override; + std::set<Browser*> AllRegularBrowsers() const override; + std::set<Browser*> AllIncognitoBrowsers() const override; + void AddObserver(BrowserListObserver* observer) override; + void RemoveObserver(BrowserListObserver* observer) override; + + private: + std::set<Browser*> browsers_; + std::set<Browser*> incognito_browsers_; + base::ObserverList<BrowserListObserver, true>::Unchecked observers_; + + DISALLOW_COPY_AND_ASSIGN(BrowserListImpl); +}; + +#endif // IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_IMPL_H_
diff --git a/ios/chrome/browser/main/browser_list_impl.mm b/ios/chrome/browser/main/browser_list_impl.mm new file mode 100644 index 0000000..af203007 --- /dev/null +++ b/ios/chrome/browser/main/browser_list_impl.mm
@@ -0,0 +1,62 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/main/browser_list_impl.h" + +#include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/main/browser.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +BrowserListImpl::BrowserListImpl() {} +BrowserListImpl::~BrowserListImpl() {} + +// BrowserList: +void BrowserListImpl::AddBrowser(Browser* browser) { + DCHECK(!browser->GetBrowserState()->IsOffTheRecord()); + browsers_.insert(browser); + for (auto& observer : observers_) + observer.OnBrowserAdded(this, browser); +} + +void BrowserListImpl::AddIncognitoBrowser(Browser* browser) { + DCHECK(browser->GetBrowserState()->IsOffTheRecord()); + incognito_browsers_.insert(browser); + for (auto& observer : observers_) + observer.OnIncognitoBrowserAdded(this, browser); +} + +void BrowserListImpl::RemoveBrowser(Browser* browser) { + if (browsers_.erase(browser) > 0) { + for (auto& observer : observers_) + observer.OnBrowserRemoved(this, browser); + } +} + +void BrowserListImpl::RemoveIncognitoBrowser(Browser* browser) { + if (incognito_browsers_.erase(browser) > 0) { + for (auto& observer : observers_) + observer.OnIncognitoBrowserRemoved(this, browser); + } +} + +std::set<Browser*> BrowserListImpl::AllRegularBrowsers() const { + return browsers_; +} + +std::set<Browser*> BrowserListImpl::AllIncognitoBrowsers() const { + return incognito_browsers_; +} + +// Adds an observer to the model. +void BrowserListImpl::AddObserver(BrowserListObserver* observer) { + observers_.AddObserver(observer); +} + +// Removes an observer from the model. +void BrowserListImpl::RemoveObserver(BrowserListObserver* observer) { + observers_.RemoveObserver(observer); +}
diff --git a/ios/chrome/browser/main/browser_list_impl_unittest.mm b/ios/chrome/browser/main/browser_list_impl_unittest.mm new file mode 100644 index 0000000..baabb42 --- /dev/null +++ b/ios/chrome/browser/main/browser_list_impl_unittest.mm
@@ -0,0 +1,173 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/main/browser_list_impl.h" + +#include "base/test/task_environment.h" +#include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" +#import "ios/chrome/browser/main/browser_list_factory.h" +#import "ios/chrome/browser/main/browser_list_observer.h" +#import "ios/chrome/browser/main/test_browser.h" +#import "ios/chrome/browser/main/test_browser_list_observer.h" +#include "ios/web/public/test/web_task_environment.h" +#include "testing/platform_test.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +class BrowserListImplTest : public PlatformTest { + protected: + BrowserListImplTest() { + TestChromeBrowserState::Builder test_cbs_builder; + chrome_browser_state_ = test_cbs_builder.Build(); + + browser_list_ = + BrowserListFactory::GetForBrowserState(chrome_browser_state_.get()); + } + + base::test::TaskEnvironment task_environment_; + std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; + BrowserList* browser_list_; +}; + +// Test main add/remove logic. +TEST_F(BrowserListImplTest, AddRemoveBrowsers) { + // Browser list should start empty + EXPECT_EQ(0UL, browser_list_->AllRegularBrowsers().size()); + + TestBrowser browser_1(chrome_browser_state_.get()); + + // Adding a browser should result in it appearing in the list. + browser_list_->AddBrowser(&browser_1); + std::set<Browser*> browsers = browser_list_->AllRegularBrowsers(); + EXPECT_EQ(1UL, browsers.size()); + auto found_browser = browsers.find(&browser_1); + EXPECT_EQ(&browser_1, *found_browser); + + TestBrowser browser_2(chrome_browser_state_.get()); + + // Removing a browser not in the list is a no-op. + browser_list_->RemoveBrowser(&browser_2); + EXPECT_EQ(1UL, browser_list_->AllRegularBrowsers().size()); + + // More than one browset can be added to the list. + browser_list_->AddBrowser(&browser_2); + EXPECT_EQ(2UL, browser_list_->AllRegularBrowsers().size()); + + // Removing a browser works -- the list gets smaller, and the removed browser + // isn't on it. + browser_list_->RemoveBrowser(&browser_2); + browsers = browser_list_->AllRegularBrowsers(); + EXPECT_EQ(1UL, browsers.size()); + found_browser = browsers.find(&browser_2); + EXPECT_EQ(browsers.end(), found_browser); + + // Removing a browser a second time does nothing. + browser_list_->RemoveBrowser(&browser_2); + EXPECT_EQ(1UL, browser_list_->AllRegularBrowsers().size()); + + // Removing the last browser, even multiple times, works as expected. + browser_list_->RemoveBrowser(&browser_1); + browser_list_->RemoveBrowser(&browser_1); + EXPECT_EQ(0UL, browser_list_->AllRegularBrowsers().size()); +} + +// Test regular/incognito interactions +TEST_F(BrowserListImplTest, AddRemoveIncognitoBrowsers) { + // Incognito browser list starts empty. + EXPECT_EQ(0UL, browser_list_->AllRegularBrowsers().size()); + EXPECT_EQ(0UL, browser_list_->AllIncognitoBrowsers().size()); + + TestBrowser browser_1(chrome_browser_state_.get()); + + ios::ChromeBrowserState* incognito_browser_state = + chrome_browser_state_->GetOffTheRecordChromeBrowserState(); + TestBrowser incognito_browser_1(incognito_browser_state); + + // Adding a regular browser doesn't affect the incognito list. + browser_list_->AddBrowser(&browser_1); + EXPECT_EQ(1UL, browser_list_->AllRegularBrowsers().size()); + EXPECT_EQ(0UL, browser_list_->AllIncognitoBrowsers().size()); + + // Adding an incognito browser doesn't affect the regular list. + browser_list_->AddIncognitoBrowser(&incognito_browser_1); + EXPECT_EQ(1UL, browser_list_->AllIncognitoBrowsers().size()); + EXPECT_EQ(1UL, browser_list_->AllRegularBrowsers().size()); + + // An added incognito browser is in the list. + std::set<Browser*> browsers = browser_list_->AllIncognitoBrowsers(); + auto found_browser = browsers.find(&incognito_browser_1); + EXPECT_EQ(&incognito_browser_1, *found_browser); + + // Removing browsers from the wrong list has no effect. + browser_list_->RemoveBrowser(&incognito_browser_1); + browser_list_->RemoveIncognitoBrowser(&browser_1); + EXPECT_EQ(1UL, browser_list_->AllIncognitoBrowsers().size()); + EXPECT_EQ(1UL, browser_list_->AllRegularBrowsers().size()); + + // Removing browsers from the correct lists works as expected. + browser_list_->RemoveBrowser(&browser_1); + browser_list_->RemoveIncognitoBrowser(&incognito_browser_1); + EXPECT_EQ(0UL, browser_list_->AllIncognitoBrowsers().size()); + EXPECT_EQ(0UL, browser_list_->AllRegularBrowsers().size()); +} + +// Test that values returned from AllRegularBrowsers and AllIncognitoBrowsers +// aren't affected by subsequent changes to the browser list. +TEST_F(BrowserListImplTest, AllBrowserValuesDontChange) { + Browser* browser_1 = new TestBrowser(chrome_browser_state_.get()); + + // Add a browser and get the current set of browsers. + browser_list_->AddBrowser(browser_1); + std::set<Browser*> browsers = browser_list_->AllRegularBrowsers(); + EXPECT_EQ(1UL, browsers.size()); + + // Remove the browser. + browser_list_->RemoveBrowser(browser_1); + EXPECT_EQ(0UL, browser_list_->AllRegularBrowsers().size()); + + // Check that the browser is still in the set. + auto found_browser = browsers.find(browser_1); + EXPECT_EQ(1UL, browsers.size()); + EXPECT_EQ(browser_1, *found_browser); +} + +// Check that an observer is informed of additions and removals to both the +// regular and incognito browser lists. +TEST_F(BrowserListImplTest, BrowserListObserver) { + TestBrowserListObserver* observer = new TestBrowserListObserver; + browser_list_->AddObserver(observer); + + Browser* browser_1 = new TestBrowser(chrome_browser_state_.get()); + ios::ChromeBrowserState* incognito_browser_state = + chrome_browser_state_->GetOffTheRecordChromeBrowserState(); + Browser* incognito_browser_1 = new TestBrowser(incognito_browser_state); + + // Check that a regular addition is observerd. + browser_list_->AddBrowser(browser_1); + EXPECT_EQ(browser_1, observer->GetLastAddedBrowser()); + EXPECT_EQ(1UL, observer->GetLastBrowsers().size()); + + // Check that a no-op removal is *not* observerd. + browser_list_->RemoveBrowser(incognito_browser_1); + EXPECT_EQ(nullptr, observer->GetLastRemovedBrowser()); + + // Check that a regular removal is observerd. + browser_list_->RemoveBrowser(browser_1); + EXPECT_EQ(browser_1, observer->GetLastRemovedBrowser()); + EXPECT_EQ(0UL, observer->GetLastBrowsers().size()); + + // Check that an incognito addition is observerd. + browser_list_->AddIncognitoBrowser(incognito_browser_1); + EXPECT_EQ(incognito_browser_1, observer->GetLastAddedIncognitoBrowser()); + EXPECT_EQ(1UL, observer->GetLastIncognitoBrowsers().size()); + + // Check that an incognito removal is observerd. + browser_list_->RemoveIncognitoBrowser(incognito_browser_1); + EXPECT_EQ(incognito_browser_1, observer->GetLastRemovedIncognitoBrowser()); + EXPECT_EQ(0UL, observer->GetLastIncognitoBrowsers().size()); + + browser_list_->RemoveObserver(observer); +}
diff --git a/ios/chrome/browser/main/browser_list_observer.h b/ios/chrome/browser/main/browser_list_observer.h new file mode 100644 index 0000000..caf4132 --- /dev/null +++ b/ios/chrome/browser/main/browser_list_observer.h
@@ -0,0 +1,38 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_OBSERVER_H_ +#define IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_OBSERVER_H_ + +#include "base/macros.h" + +class Browser; +class BrowserList; + +// Observer interface for BrowserList. +class BrowserListObserver { + public: + BrowserListObserver() = default; + virtual ~BrowserListObserver() = default; + + // Called after |browser| is added to |browser_list|. + virtual void OnBrowserAdded(const BrowserList* browser_list, + Browser* browser) {} + virtual void OnIncognitoBrowserAdded(const BrowserList* browser_list, + Browser* browser) {} + + // Called *after* |browser| is removed from |browser_list|. This method will + // execute before the object that owns |browser| destroys it, so the pointer + // passed here will be valid for these method calls, but it can't be used for + // any processing outside of the synchronous scope of these methods. + virtual void OnBrowserRemoved(const BrowserList* browser_list, + Browser* browser) {} + virtual void OnIncognitoBrowserRemoved(const BrowserList* browser_list, + Browser* browser) {} + + private: + DISALLOW_COPY_AND_ASSIGN(BrowserListObserver); +}; + +#endif // IOS_CHROME_BROWSER_MAIN_BROWSER_LIST_OBSERVER_H_
diff --git a/ios/chrome/browser/main/test_browser.h b/ios/chrome/browser/main/test_browser.h index b46c9ee7..0547c40 100644 --- a/ios/chrome/browser/main/test_browser.h +++ b/ios/chrome/browser/main/test_browser.h
@@ -23,6 +23,10 @@ TestBrowser(ios::ChromeBrowserState* browser_state, WebStateList* web_state_list); + // Constructor that takes only a BrowserState; an empty web state list will be + // created internally. + TestBrowser(ios::ChromeBrowserState* browser_state); + // Constructor that creates a test browser state and an empty web state list. // Test fixtures will need to include a base::test::TaskEnvironment member if // this constructor is used (since it creates a TestChromeBrowserState that
diff --git a/ios/chrome/browser/main/test_browser.mm b/ios/chrome/browser/main/test_browser.mm index 0f279883..6286ddb 100644 --- a/ios/chrome/browser/main/test_browser.mm +++ b/ios/chrome/browser/main/test_browser.mm
@@ -28,6 +28,14 @@ browser_state_(browser_state), web_state_list_(web_state_list) {} +TestBrowser::TestBrowser(ios::ChromeBrowserState* browser_state) + : command_dispatcher_([[CommandDispatcher alloc] init]), + browser_state_(browser_state) { + owned_web_state_list_ = + std::make_unique<WebStateList>(&web_state_list_delegate_); + web_state_list_ = owned_web_state_list_.get(); +} + TestBrowser::TestBrowser() : command_dispatcher_([[CommandDispatcher alloc] init]) { // Production code creates the browser state before the WebStateList, so
diff --git a/ios/chrome/browser/main/test_browser_list_observer.h b/ios/chrome/browser/main/test_browser_list_observer.h new file mode 100644 index 0000000..eb7afc96 --- /dev/null +++ b/ios/chrome/browser/main/test_browser_list_observer.h
@@ -0,0 +1,68 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_MAIN_TEST_BROWSER_LIST_OBSERVER_H_ +#define IOS_CHROME_BROWSER_MAIN_TEST_BROWSER_LIST_OBSERVER_H_ + +#include <set> + +#include "base/macros.h" +#import "ios/chrome/browser/main/browser_list_observer.h" + +class Browser; +class BrowserList; + +class TestBrowserListObserver : public BrowserListObserver { + public: + TestBrowserListObserver(); + ~TestBrowserListObserver() override; + + // A weak pointer to the last Browser that was observed being added to the + // BrowserList's regular browsers. + Browser* GetLastAddedBrowser() { return last_added_browser_; } + // A weak pointer to the last Browser that was observed being added to the + // BrowserList's incognito browsers. + Browser* GetLastRemovedBrowser() { return last_removed_browser_; } + // A weak pointer to the last Browser that was observed being removed from the + // BrowserList's regular browsers. + Browser* GetLastAddedIncognitoBrowser() { + return last_added_incognito_browser_; + } + // A weak pointer to the last Browser that was observed being removed from the + // BrowserList's incognito browsers. + Browser* GetLastRemovedIncognitoBrowser() { + return last_removed_incognito_browser_; + } + // The set of regular browsers that were in the browser list when the last + // observed event occurred. + std::set<Browser*> GetLastBrowsers() { return last_browsers_; } + // The set of incognito browsers that were in the browser list when the last + // observed event occurred. + std::set<Browser*> GetLastIncognitoBrowsers() { + return last_incognito_browsers_; + } + + // BrowserListObserver + void OnBrowserAdded(const BrowserList* browser_list, + Browser* browser) override; + void OnIncognitoBrowserAdded(const BrowserList* browser_list, + Browser* browser) override; + void OnBrowserRemoved(const BrowserList* browser_list, + Browser* browser) override; + void OnIncognitoBrowserRemoved(const BrowserList* browser_list, + Browser* browser) override; + + private: + DISALLOW_COPY_AND_ASSIGN(TestBrowserListObserver); + + // Backing vars for the corresponding getter methods. + Browser* last_added_browser_; + Browser* last_removed_browser_; + Browser* last_added_incognito_browser_; + Browser* last_removed_incognito_browser_; + std::set<Browser*> last_browsers_; + std::set<Browser*> last_incognito_browsers_; +}; + +#endif // IOS_CHROME_BROWSER_MAIN_TEST_BROWSER_LIST_OBSERVER_H_
diff --git a/ios/chrome/browser/main/test_browser_list_observer.mm b/ios/chrome/browser/main/test_browser_list_observer.mm new file mode 100644 index 0000000..97c7014 --- /dev/null +++ b/ios/chrome/browser/main/test_browser_list_observer.mm
@@ -0,0 +1,41 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/main/test_browser_list_observer.h" + +#import "ios/chrome/browser/main/browser_list.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +TestBrowserListObserver::TestBrowserListObserver() = default; + +TestBrowserListObserver::~TestBrowserListObserver() = default; + +void TestBrowserListObserver::OnBrowserAdded(const BrowserList* browser_list, + Browser* browser) { + last_added_browser_ = browser; + last_browsers_ = browser_list->AllRegularBrowsers(); +} + +void TestBrowserListObserver::OnIncognitoBrowserAdded( + const BrowserList* browser_list, + Browser* browser) { + last_added_incognito_browser_ = browser; + last_incognito_browsers_ = browser_list->AllIncognitoBrowsers(); +} + +void TestBrowserListObserver::OnBrowserRemoved(const BrowserList* browser_list, + Browser* browser) { + last_removed_browser_ = browser; + last_browsers_ = browser_list->AllRegularBrowsers(); +} + +void TestBrowserListObserver::OnIncognitoBrowserRemoved( + const BrowserList* browser_list, + Browser* browser) { + last_removed_incognito_browser_ = browser; + last_incognito_browsers_ = browser_list->AllIncognitoBrowsers(); +}
diff --git a/ios/chrome/browser/overlays/overlay_browser_agent_base_unittest.mm b/ios/chrome/browser/overlays/overlay_browser_agent_base_unittest.mm index cbad54b..658b681b0 100644 --- a/ios/chrome/browser/overlays/overlay_browser_agent_base_unittest.mm +++ b/ios/chrome/browser/overlays/overlay_browser_agent_base_unittest.mm
@@ -57,10 +57,9 @@ // DispatchInfo. std::unique_ptr<FakeOverlayRequestCallbackInstaller> installer = std::make_unique<FakeOverlayRequestCallbackInstaller>( - &mock_callback_receiver_); - installer->SetRequestSupport(SupportedConfig::RequestSupport()); - installer->StartInstallingDispatchCallbacksWithSupport( - DispatchInfo::ResponseSupport()); + &mock_callback_receiver_, std::set<const OverlayResponseSupport*>( + {DispatchInfo::ResponseSupport()})); + installer->set_request_support(SupportedConfig::RequestSupport()); AddInstaller(std::move(installer), kModality); } @@ -131,16 +130,14 @@ // Dispatch a response through this presented request, expecting the dispatch // callback to be executed on the mock receiver. - std::unique_ptr<OverlayResponse> response = - OverlayResponse::CreateWithInfo<DispatchInfo>(); EXPECT_CALL(mock_callback_receiver(), - DispatchCallback(request, DispatchInfo::ResponseSupport(), - response.get())); - request->GetCallbackManager()->DispatchResponse(std::move(response)); + DispatchCallback(request, DispatchInfo::ResponseSupport())); + request->GetCallbackManager()->DispatchResponse( + OverlayResponse::CreateWithInfo<DispatchInfo>()); // Cancel the request, expecting the completion callback to be executed on the // mock receiver. - EXPECT_CALL(mock_callback_receiver(), CompletionCallback(request, nullptr)); + EXPECT_CALL(mock_callback_receiver(), CompletionCallback(request)); CancelRequests(); }
diff --git a/ios/chrome/browser/overlays/overlay_request_callback_installer_unittest.cc b/ios/chrome/browser/overlays/overlay_request_callback_installer_unittest.cc index 0f453c3..21ecbba 100644 --- a/ios/chrome/browser/overlays/overlay_request_callback_installer_unittest.cc +++ b/ios/chrome/browser/overlays/overlay_request_callback_installer_unittest.cc
@@ -17,16 +17,14 @@ DEFINE_TEST_OVERLAY_REQUEST_CONFIG(SupportedConfig); DEFINE_TEST_OVERLAY_REQUEST_CONFIG(UnsupportedConfig); DEFINE_TEST_OVERLAY_RESPONSE_INFO(DispatchInfo); -DEFINE_TEST_OVERLAY_RESPONSE_INFO(CompletionInfo); } // namespace // Test fixture for OverlayRequestCallbackInstaller. class OverlayRequestCallbackInstallerTest : public PlatformTest { public: - OverlayRequestCallbackInstallerTest() : installer_(&mock_receiver_) { - installer_.SetRequestSupport(SupportedConfig::RequestSupport()); - installer_.StartInstallingDispatchCallbacksWithSupport( - DispatchInfo::ResponseSupport()); + OverlayRequestCallbackInstallerTest() + : installer_(&mock_receiver_, {DispatchInfo::ResponseSupport()}) { + installer_.set_request_support(SupportedConfig::RequestSupport()); } ~OverlayRequestCallbackInstallerTest() override = default; @@ -35,14 +33,12 @@ // callback execution if |expect_callback_execution| is true. void DispatchResponse(OverlayRequest* request, bool expect_callback_execution) { - std::unique_ptr<OverlayResponse> response = - OverlayResponse::CreateWithInfo<DispatchInfo>(); if (expect_callback_execution) { EXPECT_CALL(mock_receiver_, - DispatchCallback(request, DispatchInfo::ResponseSupport(), - response.get())); + DispatchCallback(request, DispatchInfo::ResponseSupport())); } - request->GetCallbackManager()->DispatchResponse(std::move(response)); + request->GetCallbackManager()->DispatchResponse( + OverlayResponse::CreateWithInfo<DispatchInfo>()); } protected: @@ -62,12 +58,7 @@ DispatchResponse(request.get(), /*expect_callback_execution=*/true); // Destroy the request and verify that the completion callback was executed. - std::unique_ptr<OverlayResponse> completion_response = - OverlayResponse::CreateWithInfo<CompletionInfo>(); - EXPECT_CALL(mock_receiver_, - CompletionCallback(request.get(), completion_response.get())); - request->GetCallbackManager()->SetCompletionResponse( - std::move(completion_response)); + EXPECT_CALL(mock_receiver_, CompletionCallback(request.get())); request = nullptr; } @@ -101,5 +92,5 @@ // Expect the completion callback to be executed upon destruction of // |request|. - EXPECT_CALL(mock_receiver_, CompletionCallback(request.get(), nullptr)); + EXPECT_CALL(mock_receiver_, CompletionCallback(request.get())); }
diff --git a/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.cc b/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.cc index 9bafc46..1cd48a5a 100644 --- a/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.cc +++ b/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.cc
@@ -9,7 +9,6 @@ #include "base/logging.h" #include "ios/chrome/browser/overlays/public/overlay_callback_manager.h" #include "ios/chrome/browser/overlays/public/overlay_dispatch_callback.h" -#include "ios/chrome/browser/overlays/public/overlay_request_support.h" #include "ios/chrome/browser/overlays/public/overlay_response_support.h" #pragma mark - MockOverlayRequestCallbackReceiver @@ -20,32 +19,33 @@ MockOverlayRequestCallbackReceiver::~MockOverlayRequestCallbackReceiver() = default; +#pragma mark - FakeOverlayRequestCallbackReceiver + +void FakeOverlayRequestCallbackReceiver::RunCompletionCallback( + OverlayRequest* request, + OverlayResponse* response) { + CompletionCallback(request); +} + +void FakeOverlayRequestCallbackReceiver::RunDispatchCallback( + OverlayRequest* request, + const OverlayResponseSupport* response_support, + OverlayResponse* response) { + DispatchCallback(request, response_support); +} + #pragma mark - FakeOverlayRequestCallbackInstaller FakeOverlayRequestCallbackInstaller::FakeOverlayRequestCallbackInstaller( - FakeOverlayRequestCallbackReceiver* receiver) - : receiver_(receiver), request_support_(OverlayRequestSupport::All()) { + FakeOverlayRequestCallbackReceiver* receiver, + const std::set<const OverlayResponseSupport*>& dispatch_supports) + : receiver_(receiver), dispatch_supports_(dispatch_supports) { DCHECK(receiver_); } FakeOverlayRequestCallbackInstaller::~FakeOverlayRequestCallbackInstaller() = default; -#pragma mark - Public - -void FakeOverlayRequestCallbackInstaller::SetRequestSupport( - const OverlayRequestSupport* request_support) { - DCHECK(request_support); - request_support_ = request_support; -} - -void FakeOverlayRequestCallbackInstaller:: - StartInstallingDispatchCallbacksWithSupport( - const OverlayResponseSupport* response_support) { - DCHECK(response_support); - dispatch_response_supports_.insert(response_support); -} - #pragma mark - OverlayRequestCallbackInstaller const OverlayRequestSupport* @@ -57,12 +57,12 @@ OverlayRequest* request) { OverlayCallbackManager* manager = request->GetCallbackManager(); manager->AddCompletionCallback( - base::BindOnce(&FakeOverlayRequestCallbackReceiver::CompletionCallback, + base::BindOnce(&FakeOverlayRequestCallbackReceiver::RunCompletionCallback, base::Unretained(receiver_), request)); - for (const OverlayResponseSupport* support : dispatch_response_supports_) { + for (const OverlayResponseSupport* support : dispatch_supports_) { manager->AddDispatchCallback(OverlayDispatchCallback( base::BindRepeating( - &FakeOverlayRequestCallbackReceiver::DispatchCallback, + &FakeOverlayRequestCallbackReceiver::RunDispatchCallback, base::Unretained(receiver_), request, support), support)); }
diff --git a/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h b/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h index 0c8d82d..67eeb94 100644 --- a/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h +++ b/ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h
@@ -8,6 +8,7 @@ #include <set> #include "ios/chrome/browser/overlays/public/overlay_request_callback_installer.h" +#include "ios/chrome/browser/overlays/public/overlay_request_support.h" #include "testing/gmock/include/gmock/gmock.h" class OverlayResponseSupport; @@ -17,53 +18,66 @@ class FakeOverlayRequestCallbackReceiver { public: // Function used as the completion callback for |request|. |response| is - // |request|'s completion response. - virtual void CompletionCallback(OverlayRequest* request, - OverlayResponse* response) = 0; + // |request|'s completion response. Executes CompletionCallback() with + // |request|. + void RunCompletionCallback(OverlayRequest* request, + OverlayResponse* response); // Function used as the callback when |response| is dispatched through // |request|. Only executed if |response| is supported by |response_support|. - virtual void DispatchCallback(OverlayRequest* request, - const OverlayResponseSupport* response_support, - OverlayResponse* response) = 0; + // Executes DispatchCallback() with |request| and |response_support|. + void RunDispatchCallback(OverlayRequest* request, + const OverlayResponseSupport* response_support, + OverlayResponse* response); + + // Function called by RunCompletionCallback(). Can be overridden to verify + // the execution of the completion callback when the completion response is + // uninteresting. + virtual void CompletionCallback(OverlayRequest* request) = 0; + // Function called by RunDispatchCallback(). Can be overridden to verify the + // successful dispatch of stateless responses. + virtual void DispatchCallback( + OverlayRequest* request, + const OverlayResponseSupport* response_support) = 0; }; // Mock version of the fake callback receiver receiver. +// MockOverlayRequestCallbackReceiver can be used to verify the execution of +// installed callbacks. class MockOverlayRequestCallbackReceiver : public FakeOverlayRequestCallbackReceiver { public: MockOverlayRequestCallbackReceiver(); ~MockOverlayRequestCallbackReceiver(); - MOCK_METHOD2(CompletionCallback, - void(OverlayRequest* request, OverlayResponse* response)); - MOCK_METHOD3(DispatchCallback, + MOCK_METHOD1(CompletionCallback, void(OverlayRequest* request)); + MOCK_METHOD2(DispatchCallback, void(OverlayRequest* request, - const OverlayResponseSupport* response_support, - OverlayResponse* response)); + const OverlayResponseSupport* response_support)); }; // OverlayRequestCallbackInstaller subclass used for testing. Sets up callbacks -// that execute on a mocked receiver that is exposed for testing. +// that execute on a receiver object. class FakeOverlayRequestCallbackInstaller : public OverlayRequestCallbackInstaller { public: // Constructor for a fake callback installer that creates callbacks that are // forwarded to |receiver|. |receiver| must be non-null, and must outlive any - // requests passed to InstallCallback(). - explicit FakeOverlayRequestCallbackInstaller( - FakeOverlayRequestCallbackReceiver* receiver); + // requests passed to InstallCallback(). |dispatch_supports| is a list of + // OverlayResponseSupports for each dispatch response InfoType being tested + // by this fake installer. Every supported OverlayResponse dispatched through + // a request with callbacks installed by this instance will trigger + // DispatchCallback() on |receiver| with the response support for that + // response. + FakeOverlayRequestCallbackInstaller( + FakeOverlayRequestCallbackReceiver* receiver, + const std::set<const OverlayResponseSupport*>& dispatch_supports); + ~FakeOverlayRequestCallbackInstaller() override; - // Sets the request support for the callback installer. |request_support| - // must not be null. All requests are supported by default. - void SetRequestSupport(const OverlayRequestSupport* request_support); - - // Begins installing dispatch callbacks for OverlayRequests that are executed - // for dispatched responses supported by |response_support|. Installed - // dispatch callbacks will execute MockCallbackReveiver::DispatchCallback() - // with |response_support|. - void StartInstallingDispatchCallbacksWithSupport( - const OverlayResponseSupport* response_support); + // Sets the request support for the callback installer. + void set_request_support(const OverlayRequestSupport* request_support) { + request_support_ = request_support ?: OverlayRequestSupport::All(); + } private: // OverlayRequestCallbackInstaller: @@ -71,8 +85,8 @@ void InstallCallbacksInternal(OverlayRequest* request) override; FakeOverlayRequestCallbackReceiver* receiver_ = nullptr; - const OverlayRequestSupport* request_support_ = nullptr; - std::set<const OverlayResponseSupport*> dispatch_response_supports_; + const OverlayRequestSupport* request_support_ = OverlayRequestSupport::All(); + const std::set<const OverlayResponseSupport*> dispatch_supports_; }; #endif // IOS_CHROME_BROWSER_OVERLAYS_TEST_FAKE_OVERLAY_REQUEST_CALLBACK_INSTALLER_H_
diff --git a/ios/chrome/browser/passwords/BUILD.gn b/ios/chrome/browser/passwords/BUILD.gn index 4f8e8e14..1659dfd 100644 --- a/ios/chrome/browser/passwords/BUILD.gn +++ b/ios/chrome/browser/passwords/BUILD.gn
@@ -130,9 +130,7 @@ "ios_chrome_password_infobar_metrics_recorder.h", "ios_chrome_password_infobar_metrics_recorder.mm", ] - deps = [ - "//base", - ] + deps = [ "//base" ] } source_set("feature_flags") { @@ -141,9 +139,7 @@ "password_manager_features.cc", "password_manager_features.h", ] - deps = [ - "//base", - ] + deps = [ "//base" ] } source_set("passwords_generation_utils") { @@ -152,9 +148,7 @@ "password_generation_utils.h", "password_generation_utils.mm", ] - deps = [ - "//base:i18n", - ] + deps = [ "//base:i18n" ] libs = [ "CoreGraphics.framework" ] } @@ -208,9 +202,7 @@ defines = [ "CHROME_EARL_GREY_1" ] configs += [ "//build/config/compiler:enable_arc" ] testonly = true - sources = [ - "credential_manager_egtest.mm", - ] + sources = [ "credential_manager_egtest.mm" ] deps = [ ":feature_flags", @@ -237,9 +229,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ - "credential_manager_egtest.mm", - ] + sources = [ "credential_manager_egtest.mm" ] deps = [ ":eg_test_support+eg2", ":feature_flags", @@ -306,7 +296,5 @@ ] testonly = true - sources = [ - "password_manager_app_interface.h", - ] + sources = [ "password_manager_app_interface.h" ] }
diff --git a/ios/chrome/browser/signin/authentication_service.h b/ios/chrome/browser/signin/authentication_service.h index 17b6026..9f8da56 100644 --- a/ios/chrome/browser/signin/authentication_service.h +++ b/ios/chrome/browser/signin/authentication_service.h
@@ -90,9 +90,12 @@ // Virtual for testing. virtual void SignIn(ChromeIdentity* identity); - // Signs the authenticated user out of Chrome. + // Signs the authenticated user out of Chrome and clears the browsing + // data if the account is managed. If force_clear_browsing_data is true, + // clears the browsing data unconditionally. // Virtual for testing. virtual void SignOut(signin_metrics::ProfileSignout signout_source, + bool force_clear_browsing_data, ProceduralBlock completion); // Returns whether there is a cached associated MDM error for |identity|.
diff --git a/ios/chrome/browser/signin/authentication_service.mm b/ios/chrome/browser/signin/authentication_service.mm index e9971901..6f096e7 100644 --- a/ios/chrome/browser/signin/authentication_service.mm +++ b/ios/chrome/browser/signin/authentication_service.mm
@@ -354,6 +354,7 @@ void AuthenticationService::SignOut( signin_metrics::ProfileSignout signout_source, + bool force_clear_browsing_data, ProceduralBlock completion) { if (!IsAuthenticated()) { if (completion) @@ -374,7 +375,7 @@ signout_source, signin_metrics::SignoutDelete::IGNORE_METRIC); breakpad_helper::SetCurrentlySignedIn(false); cached_mdm_infos_.clear(); - if (is_managed) { + if (force_clear_browsing_data || is_managed) { delegate_->ClearBrowsingData(completion); } else if (completion) { completion(); @@ -466,7 +467,8 @@ // If the identiy is blocked, sign out of the account. As only managed // account can be blocked, this will clear the associated browsing data. if (identity == weak_ptr->GetAuthenticatedIdentity()) { - weak_ptr->SignOut(signin_metrics::ABORT_SIGNIN, nil); + weak_ptr->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); } } }; @@ -536,7 +538,8 @@ } // Sign the user out. - SignOut(signin_metrics::ABORT_SIGNIN, nil); + SignOut(signin_metrics::ABORT_SIGNIN, /*force_clear_browsing_data=*/false, + nil); if (should_prompt) SetPromptForSignIn(); }
diff --git a/ios/chrome/browser/signin/authentication_service_delegate.h b/ios/chrome/browser/signin/authentication_service_delegate.h index 63b6e55..9eb12db 100644 --- a/ios/chrome/browser/signin/authentication_service_delegate.h +++ b/ios/chrome/browser/signin/authentication_service_delegate.h
@@ -19,6 +19,10 @@ virtual void ClearBrowsingData(ProceduralBlock completion) = 0; private: + friend class AuthenticationServiceTest; + friend class AuthenticationServiceDelegateFake; + + int clear_browsing_data_counter_ = 0; DISALLOW_COPY_AND_ASSIGN(AuthenticationServiceDelegate); };
diff --git a/ios/chrome/browser/signin/authentication_service_delegate_fake.mm b/ios/chrome/browser/signin/authentication_service_delegate_fake.mm index e5b5b27..821e62d 100644 --- a/ios/chrome/browser/signin/authentication_service_delegate_fake.mm +++ b/ios/chrome/browser/signin/authentication_service_delegate_fake.mm
@@ -18,5 +18,5 @@ void AuthenticationServiceDelegateFake::ClearBrowsingData( ProceduralBlock completion) { - NOTREACHED(); + ++clear_browsing_data_counter_; }
diff --git a/ios/chrome/browser/signin/authentication_service_fake.h b/ios/chrome/browser/signin/authentication_service_fake.h index 0502c213..4ccc6c5 100644 --- a/ios/chrome/browser/signin/authentication_service_fake.h +++ b/ios/chrome/browser/signin/authentication_service_fake.h
@@ -29,6 +29,7 @@ void SignIn(ChromeIdentity* identity) override; void SignOut(signin_metrics::ProfileSignout signout_source, + bool force_clear_browsing_data, ProceduralBlock completion) override; void SetHaveAccountsChangedWhileInBackground(bool changed);
diff --git a/ios/chrome/browser/signin/authentication_service_fake.mm b/ios/chrome/browser/signin/authentication_service_fake.mm index 09292fce..2bb5049 100644 --- a/ios/chrome/browser/signin/authentication_service_fake.mm +++ b/ios/chrome/browser/signin/authentication_service_fake.mm
@@ -42,6 +42,7 @@ void AuthenticationServiceFake::SignOut( signin_metrics::ProfileSignout signout_source, + bool force_clear_browsing_data, ProceduralBlock completion) { authenticated_identity_ = nil; if (completion)
diff --git a/ios/chrome/browser/signin/authentication_service_unittest.mm b/ios/chrome/browser/signin/authentication_service_unittest.mm index f799280..01c1d2cb 100644 --- a/ios/chrome/browser/signin/authentication_service_unittest.mm +++ b/ios/chrome/browser/signin/authentication_service_unittest.mm
@@ -147,6 +147,10 @@ GetAccountId(identity)) > 0; } + int ClearBrowsingDataCount() { + return authentication_service()->delegate_->clear_browsing_data_counter_; + } + AuthenticationService* authentication_service() { return AuthenticationServiceFactory::GetForBrowserState( browser_state_.get()); @@ -472,9 +476,69 @@ NSDictionary* user_info = [NSDictionary dictionary]; SetCachedMDMInfo(identity(0), user_info); - authentication_service()->SignOut(signin_metrics::ABORT_SIGNIN, nil); + authentication_service()->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); EXPECT_FALSE(HasCachedMDMInfo(identity(0))); EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 0UL); + EXPECT_EQ(ClearBrowsingDataCount(), 0); +} + +// Tests that MDM errors are correctly cleared when signing out with clearing +// browsing data. +TEST_F(AuthenticationServiceTest, + MDMErrorsClearedOnSignoutAndClearBrowsingData) { + SetExpectationsForSignIn(); + authentication_service()->SignIn(identity(0)); + EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 2UL); + + NSDictionary* user_info = [NSDictionary dictionary]; + SetCachedMDMInfo(identity(0), user_info); + + authentication_service()->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/true, nil); + EXPECT_FALSE(HasCachedMDMInfo(identity(0))); + EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 0UL); + EXPECT_EQ(ClearBrowsingDataCount(), 1); +} + +// Tests that MDM errors are correctly cleared when signing out of a managed +// account. +TEST_F(AuthenticationServiceTest, ManagedAccountSignOut) { + identity_service()->AddManagedIdentities(@[ @"foo3" ]); + + SetExpectationsForSignIn(); + authentication_service()->SignIn(identity(2)); + EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 3UL); + EXPECT_TRUE(authentication_service()->IsAuthenticatedIdentityManaged()); + + NSDictionary* user_info = [NSDictionary dictionary]; + SetCachedMDMInfo(identity(2), user_info); + + authentication_service()->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); + EXPECT_FALSE(HasCachedMDMInfo(identity(2))); + EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 0UL); + EXPECT_EQ(ClearBrowsingDataCount(), 1); +} + +// Tests that MDM errors are correctly cleared when signing out with clearing +// browsing data of a managed account. +TEST_F(AuthenticationServiceTest, ManagedAccountSignOutAndClearBrowsingData) { + identity_service()->AddManagedIdentities(@[ @"foo3" ]); + + SetExpectationsForSignIn(); + authentication_service()->SignIn(identity(2)); + EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 3UL); + EXPECT_TRUE(authentication_service()->IsAuthenticatedIdentityManaged()); + + NSDictionary* user_info = [NSDictionary dictionary]; + SetCachedMDMInfo(identity(2), user_info); + + authentication_service()->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/true, nil); + EXPECT_FALSE(HasCachedMDMInfo(identity(2))); + EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 0UL); + EXPECT_EQ(ClearBrowsingDataCount(), 1); } // Tests that potential MDM notifications are correctly handled and dispatched
diff --git a/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.h b/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.h index 92cd443..173b39a 100644 --- a/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.h +++ b/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.h
@@ -77,6 +77,8 @@ void WebStateDetachedAt(WebStateList* web_state_list, web::WebState* web_state, int index) override; + void WillBeginBatchOperation(WebStateList* web_state_list) override; + void BatchOperationEnded(WebStateList* web_state_list) override; private: // Methods to add and remove WebStateList observer. @@ -108,6 +110,10 @@ std::unique_ptr<base::CallbackList<void(web::WebState*)>::Subscription> tab_parented_subscription_; + // Track the number of WebStateList we are observing that are in a batch + // operation. + int batch_in_progress_ = 0; + DISALLOW_COPY_AND_ASSIGN(IOSChromeLocalSessionEventRouter); };
diff --git a/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.mm b/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.mm index d5d65d07..e7e22f4 100644 --- a/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.mm +++ b/ios/chrome/browser/sync/sessions/ios_chrome_local_session_event_router.mm
@@ -160,8 +160,31 @@ OnWebStateChange(web_state); } +void IOSChromeLocalSessionEventRouter::WillBeginBatchOperation( + WebStateList* web_state_list) { + batch_in_progress_++; +} + +void IOSChromeLocalSessionEventRouter::BatchOperationEnded( + WebStateList* web_state_list) { + DCHECK(batch_in_progress_ > 0); + batch_in_progress_--; + if (batch_in_progress_) + return; + // Batch operations are only used for restoration, close all tabs or undo + // close all tabs. In any case, a full sync is necessary after this. + if (handler_) + handler_->OnSessionRestoreComplete(); + if (!flare_.is_null()) { + flare_.Run(syncer::SESSIONS); + flare_.Reset(); + } +} + void IOSChromeLocalSessionEventRouter::OnWebStateChange( web::WebState* web_state) { + if (batch_in_progress_) + return; sync_sessions::SyncedTabDelegate* tab = GetSyncedTabDelegateFromWebState(web_state); if (!tab)
diff --git a/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm b/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm index 44e3fd70..5bbd811 100644 --- a/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm +++ b/ios/chrome/browser/tabs/tab_model_synced_window_delegate.mm
@@ -28,9 +28,12 @@ } bool TabModelSyncedWindowDelegate::IsSessionRestoreInProgress() const { - // On iOS, the WebStateList restoration is done synchronously on the main - // thread. The tab sync (also on the main thread) is not called during the - // process. See |TabModel restoreSessionWindow:forInitialRestore:|. + // On iOS, the WebStateList restoration is done in a batch operation on the + // main thread. + // * as this is in a batch operation, no event is forwarded to the sync engine + // * as it is on main thread, the tab sync (also on the main thread) is not + // called during the process. See + // |TabModel restoreSessionWindow:forInitialRestore:|. // TODO(crbug.com/1010164): Use SessionRestorationObserver to track if the // TabModel is restoring. return false;
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm index 31eb3b6d..87baa5c 100644 --- a/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm +++ b/ios/chrome/browser/ui/authentication/authentication_flow_performer.mm
@@ -181,15 +181,17 @@ - (void)signOutBrowserState:(ios::ChromeBrowserState*)browserState { AuthenticationServiceFactory::GetForBrowserState(browserState) - ->SignOut(signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS, ^{ - [_delegate didSignOut]; - }); + ->SignOut(signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS, + /*force_clear_browsing_data=*/false, ^{ + [_delegate didSignOut]; + }); } - (void)signOutImmediatelyFromBrowserState: (ios::ChromeBrowserState*)browserState { AuthenticationServiceFactory::GetForBrowserState(browserState) - ->SignOut(signin_metrics::ABORT_SIGNIN, nil); + ->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); } - (void)promptSwitchFromManagedEmail:(NSString*)managedEmail
diff --git a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm index 884b244..f0217aa 100644 --- a/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm +++ b/ios/chrome/browser/ui/authentication/chrome_signin_view_controller.mm
@@ -227,7 +227,8 @@ } if (!_didAcceptSignIn && _didSignIn) { AuthenticationServiceFactory::GetForBrowserState(self.browserState) - ->SignOut(signin_metrics::ABORT_SIGNIN, nil); + ->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); _didSignIn = NO; } if (!_didFinishSignIn) { @@ -605,7 +606,8 @@ - (void)undoSignIn { if (_didSignIn) { AuthenticationServiceFactory::GetForBrowserState(self.browserState) - ->SignOut(signin_metrics::ABORT_SIGNIN, nil); + ->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); [_delegate didUndoSignIn:self identity:self.selectedIdentity]; _didSignIn = NO; }
diff --git a/ios/chrome/browser/ui/authentication/signin_earlgrey_utils_app_interface.mm b/ios/chrome/browser/ui/authentication/signin_earlgrey_utils_app_interface.mm index 047dcafa..87e3aace 100644 --- a/ios/chrome/browser/ui/authentication/signin_earlgrey_utils_app_interface.mm +++ b/ios/chrome/browser/ui/authentication/signin_earlgrey_utils_app_interface.mm
@@ -104,7 +104,8 @@ chrome_test_util::GetOriginalBrowserState(); AuthenticationService* authentication_service = AuthenticationServiceFactory::GetForBrowserState(browser_state); - authentication_service->SignOut(signin_metrics::SIGNOUT_TEST, nil); + authentication_service->SignOut(signin_metrics::SIGNOUT_TEST, + /*force_clear_browsing_data=*/false, nil); } + (void)addBookmark:(NSString*)urlString withTitle:(NSString*)title {
diff --git a/ios/chrome/browser/ui/autofill/BUILD.gn b/ios/chrome/browser/ui/autofill/BUILD.gn index 548bfbc..a5a5469e 100644 --- a/ios/chrome/browser/ui/autofill/BUILD.gn +++ b/ios/chrome/browser/ui/autofill/BUILD.gn
@@ -62,9 +62,7 @@ "//ios/web/public/js_messaging", "//ui/base", ] - public_deps = [ - "//ios/chrome/browser/ui/collection_view", - ] + public_deps = [ "//ios/chrome/browser/ui/collection_view" ] libs = [ "UIKit.framework" ] } @@ -94,9 +92,7 @@ "//ios/web", "//ui/base", ] - public_deps = [ - "//ios/chrome/browser/ui/collection_view", - ] + public_deps = [ "//ios/chrome/browser/ui/collection_view" ] libs = [ "UIKit.framework" ] } @@ -142,9 +138,7 @@ "save_card_message_with_links.h", "save_card_message_with_links.mm", ] - deps = [ - "//url:url", - ] + deps = [ "//url:url" ] } source_set("eg_tests") {
diff --git a/ios/chrome/browser/ui/badges/badge_mediator_unittest.mm b/ios/chrome/browser/ui/badges/badge_mediator_unittest.mm index 5b1ad55c..f89dd83 100644 --- a/ios/chrome/browser/ui/badges/badge_mediator_unittest.mm +++ b/ios/chrome/browser/ui/badges/badge_mediator_unittest.mm
@@ -6,6 +6,7 @@ #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" +#include "components/infobars/core/infobar_feature.h" #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #include "ios/chrome/browser/infobars/infobar_badge_model.h" #include "ios/chrome/browser/infobars/infobar_badge_tab_helper.h" @@ -22,7 +23,6 @@ #import "ios/chrome/browser/ui/badges/badge_consumer.h" #import "ios/chrome/browser/ui/badges/badge_item.h" #include "ios/chrome/browser/ui/badges/badge_type_util.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/test_infobar_delegate.h" #import "ios/chrome/browser/web_state_list/fake_web_state_list_delegate.h" #import "ios/chrome/browser/web_state_list/web_state_list.h" @@ -76,7 +76,7 @@ : badge_consumer_([[FakeBadgeConsumer alloc] init]), browser_state_(TestChromeBrowserState::Builder().Build()), web_state_list_(&web_state_list_delegate_) { - feature_list_.InitAndEnableFeature(kInfobarUIReboot); + feature_list_.InitAndEnableFeature(kIOSInfobarUIReboot); OverlayPresenter::FromBrowser(browser(), OverlayModality::kInfobarBanner) ->SetPresentationContext(&overlay_presentation_context_); badge_mediator_ = [[BadgeMediator alloc] initWithBrowser:browser()];
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm index 074167f..cc5f233 100644 --- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm +++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -311,8 +311,8 @@ [self.formInputAccessoryCoordinator start]; self.snackbarCoordinator = [[SnackbarCoordinator alloc] - initWithBaseViewController:self.viewController]; - self.snackbarCoordinator.dispatcher = self.dispatcher; + initWithBaseViewController:self.viewController + browser:self.browser]; [self.snackbarCoordinator start]; self.translateInfobarCoordinator = [[LegacyTranslateInfobarCoordinator alloc] @@ -320,12 +320,13 @@ browser:self.browser]; [self.translateInfobarCoordinator start]; - self.passKitCoordinator = [[PassKitCoordinator alloc] - initWithBaseViewController:self.viewController]; + self.passKitCoordinator = + [[PassKitCoordinator alloc] initWithBaseViewController:self.viewController + browser:self.browser]; self.passwordBreachCoordinator = [[PasswordBreachCoordinator alloc] - initWithBaseViewController:self.viewController]; - self.passwordBreachCoordinator.dispatcher = self.dispatcher; + initWithBaseViewController:self.viewController + browser:self.browser]; self.printController = [[PrintController alloc] init];
diff --git a/ios/chrome/browser/ui/download/pass_kit_coordinator.h b/ios/chrome/browser/ui/download/pass_kit_coordinator.h index c2fbd340..9f6e4ed 100644 --- a/ios/chrome/browser/ui/download/pass_kit_coordinator.h +++ b/ios/chrome/browser/ui/download/pass_kit_coordinator.h
@@ -44,14 +44,24 @@ // Coordinates presentation of "Add pkpass UI" and "failed to add pkpass UI". @interface PassKitCoordinator : ChromeCoordinator<PassKitTabHelperDelegate> +// Use -initWithBaseViewController:browser: +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + NS_UNAVAILABLE; + +// Use -initWithBaseViewController:browser: +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browserState: + (ios::ChromeBrowserState*)browserState + NS_UNAVAILABLE; + // Must be set before calling |start| method. Set to null when stop method is // called or web state is destroyed. -@property(nonatomic, nonnull) web::WebState* webState; +@property(nonatomic) web::WebState* webState; // If the PKPass is a valid pass, then the coordinator will present the "Add // pkpass UI". Otherwise, the coordinator will present the "failed to add // pkpass UI". Is set to null when the stop method is called. -@property(nonatomic, nullable) PKPass* pass; +@property(nonatomic) PKPass* pass; @end
diff --git a/ios/chrome/browser/ui/download/pass_kit_coordinator.mm b/ios/chrome/browser/ui/download/pass_kit_coordinator.mm index 0e58b93..ab4d29e 100644 --- a/ios/chrome/browser/ui/download/pass_kit_coordinator.mm +++ b/ios/chrome/browser/ui/download/pass_kit_coordinator.mm
@@ -53,8 +53,9 @@ @synthesize pass = _pass; @synthesize webState = _webState; -- (instancetype)initWithBaseViewController:(UIViewController*)viewController { - self = [super initWithBaseViewController:viewController]; +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browser:(Browser*)browser { + self = [super initWithBaseViewController:viewController browser:browser]; if (self) { _webStateObserver = std::make_unique<web::WebStateObserverBridge>(self); }
diff --git a/ios/chrome/browser/ui/download/pass_kit_coordinator_unittest.mm b/ios/chrome/browser/ui/download/pass_kit_coordinator_unittest.mm index 35da26eb..9c5f637 100644 --- a/ios/chrome/browser/ui/download/pass_kit_coordinator_unittest.mm +++ b/ios/chrome/browser/ui/download/pass_kit_coordinator_unittest.mm
@@ -6,13 +6,17 @@ #import <PassKit/PassKit.h> +#import <memory> + #import "base/test/ios/wait_util.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/task_environment.h" #include "components/infobars/core/confirm_infobar_delegate.h" #include "components/infobars/core/infobar.h" #include "ios/chrome/browser/download/download_test_util.h" #import "ios/chrome/browser/download/pass_kit_tab_helper.h" #include "ios/chrome/browser/infobars/infobar_manager_impl.h" +#include "ios/chrome/browser/main/test_browser.h" #include "ios/chrome/browser/ui/util/ui_util.h" #include "ios/chrome/grit/ios_strings.h" #import "ios/chrome/test/fakes/fake_pass_kit_tab_helper_delegate.h" @@ -35,8 +39,10 @@ protected: PassKitCoordinatorTest() : base_view_controller_([[UIViewController alloc] init]), + browser_(std::make_unique<TestBrowser>()), coordinator_([[PassKitCoordinator alloc] - initWithBaseViewController:base_view_controller_]), + initWithBaseViewController:base_view_controller_ + browser:browser_.get()]), web_state_(std::make_unique<web::TestWebState>()), delegate_([[FakePassKitTabHelperDelegate alloc] initWithWebState:web_state_.get()]), @@ -52,7 +58,10 @@ return PassKitTabHelper::FromWebState(web_state_.get()); } + base::test::TaskEnvironment task_environment_; + UIViewController* base_view_controller_; + std::unique_ptr<Browser> browser_; PassKitCoordinator* coordinator_; std::unique_ptr<web::TestWebState> web_state_; FakePassKitTabHelperDelegate* delegate_;
diff --git a/ios/chrome/browser/ui/fancy_ui/BUILD.gn b/ios/chrome/browser/ui/fancy_ui/BUILD.gn index fe8377f..755b000a2 100644 --- a/ios/chrome/browser/ui/fancy_ui/BUILD.gn +++ b/ios/chrome/browser/ui/fancy_ui/BUILD.gn
@@ -16,17 +16,13 @@ "//ios/chrome/browser/ui/colors", "//ios/chrome/common/colors", ] - public_deps = [ - "//ios/third_party/material_components_ios", - ] + public_deps = [ "//ios/third_party/material_components_ios" ] libs = [ "UIKit.framework" ] } source_set("unit_tests") { testonly = true - sources = [ - "bidi_container_view_unittest.mm", - ] + sources = [ "bidi_container_view_unittest.mm" ] deps = [ ":fancy_ui", "//base",
diff --git a/ios/chrome/browser/ui/infobars/BUILD.gn b/ios/chrome/browser/ui/infobars/BUILD.gn index a3b75c9..5aea496 100644 --- a/ios/chrome/browser/ui/infobars/BUILD.gn +++ b/ios/chrome/browser/ui/infobars/BUILD.gn
@@ -51,7 +51,8 @@ "infobar_feature.h", "infobar_feature.mm", ] - deps = [ "//base" ] + public_deps = [ "//base" ] + deps = [ "//components/infobars/core:feature_flags" ] } source_set("infobars_ui") {
diff --git a/ios/chrome/browser/ui/infobars/infobar_container_coordinator_unittest.mm b/ios/chrome/browser/ui/infobars/infobar_container_coordinator_unittest.mm index 3dd47c6..c0527ba 100644 --- a/ios/chrome/browser/ui/infobars/infobar_container_coordinator_unittest.mm +++ b/ios/chrome/browser/ui/infobars/infobar_container_coordinator_unittest.mm
@@ -7,6 +7,7 @@ #import "base/test/ios/wait_util.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" +#include "components/infobars/core/infobar_feature.h" #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #include "ios/chrome/browser/infobars/confirm_infobar_controller.h" #include "ios/chrome/browser/infobars/infobar_badge_tab_helper.h" @@ -17,7 +18,6 @@ #import "ios/chrome/browser/ui/infobars/coordinators/infobar_confirm_coordinator.h" #import "ios/chrome/browser/ui/infobars/coordinators/infobar_password_coordinator.h" #import "ios/chrome/browser/ui/infobars/infobar_constants.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/infobar_positioner.h" #import "ios/chrome/browser/ui/infobars/test/test_infobar_password_delegate.h" #import "ios/chrome/browser/ui/infobars/test_infobar_delegate.h" @@ -70,8 +70,8 @@ std::make_unique<WebStateList>(&web_state_list_delegate_)), base_view_controller_([[FakeBaseViewController alloc] init]), positioner_([[TestContainerCoordinatorPositioner alloc] init]) { - // Enable kInfobarUIReboot flag. - feature_list_.InitAndEnableFeature(kInfobarUIReboot); + // Enable kIOSInfobarUIReboot flag. + feature_list_.InitAndEnableFeature(kIOSInfobarUIReboot); // Setup WebstateList, Webstate and NavigationManager (Needed for // InfobarManager).
diff --git a/ios/chrome/browser/ui/infobars/infobar_feature.h b/ios/chrome/browser/ui/infobars/infobar_feature.h index 018cbe10..c2c7ffe7 100644 --- a/ios/chrome/browser/ui/infobars/infobar_feature.h +++ b/ios/chrome/browser/ui/infobars/infobar_feature.h
@@ -7,49 +7,45 @@ #include "base/feature_list.h" -// Feature to choose whether to use the new Messages Infobar design, or the -// legacy one. -// Use IsInfobarUIRebootEnabled() instead of this constant directly. -extern const base::Feature kInfobarUIReboot; - // Feature to choose whether to use OverlayPresenter to show the new Messages -// Infobar design. In order for it to work, kInfobarUIReboot needs to also be -// enabled. -// Use IsInfobarOverlayUIEnabled() instead of this constant directly. +// Infobar design. In order for it to work, kIOSInfobarUIReboot needs to also +// be enabled. Use IsInfobarOverlayUIEnabled() instead of this constant +// directly. extern const base::Feature kInfobarOverlayUI; // Feature to choose whether Confirm Infobars use the new Messages UI or the -// legacy one. Also, in order for it to work kInfobarUIReboot needs to be +// legacy one. Also, in order for it to work kIOSInfobarUIReboot needs to be // enabled. // Use IsConfirmInfobarMessagesUIEnabled() instead of this constant directly. extern const base::Feature kConfirmInfobarMessagesUI; // Feature to choose whether Confirm Infobars use the new Messages UI or the -// legacy one. Also, in order for it to work kInfobarUIReboot needs to be +// legacy one. Also, in order for it to work kIOSInfobarUIReboot needs to be // enabled. // Use IsCrashRestoreInfobarMessagesUIEnabled() instead of this constant // directly. extern const base::Feature kCrashRestoreInfobarMessagesUI; // Feature to choose whether Downloads uses the new Messages UI or the -// legacy one. Also, in order for it to work kInfobarUIReboot needs to be +// legacy one. Also, in order for it to work kIOSInfobarUIReboot needs to be // enabled. // Use IsDownloadInfobarMessagesUIEnabled() instead of this constant directly. extern const base::Feature kDownloadInfobarMessagesUI; // Feature to choose whether Save Card Infobar uses the new Messages UI or the -// legacy one. Also, in order for it to work kInfobarUIReboot needs to be +// legacy one. Also, in order for it to work kIOSInfobarUIReboot needs to be // enabled. // Use IsSaveCardInfobarMessagesUIEnabled() instead of this constant directly. extern const base::Feature kSaveCardInfobarMessagesUI; // Feature to choose whether Translate Infobar uses the new Messages UI or the -// legacy one. In order for it to work, kInfobarUIReboot needs to also be +// legacy one. In order for it to work, kIOSInfobarUIReboot needs to also be // enabled. // Use IsTranslateInfobarMessagesUIEnabled() instead of this constant directly. extern const base::Feature kTranslateInfobarMessagesUI; -// Whether the Messages Infobar UI is enabled. +// Whether the Messages Infobar UI is enabled. Prefer to use this method instead +// of kIOSInfobarUIReboot directly. bool IsInfobarUIRebootEnabled(); // Whether the Messages Infobar UI is presented using OverlayPresenter.
diff --git a/ios/chrome/browser/ui/infobars/infobar_feature.mm b/ios/chrome/browser/ui/infobars/infobar_feature.mm index d56659b..ddc2f18 100644 --- a/ios/chrome/browser/ui/infobars/infobar_feature.mm +++ b/ios/chrome/browser/ui/infobars/infobar_feature.mm
@@ -4,25 +4,24 @@ #import "ios/chrome/browser/ui/infobars/infobar_feature.h" +#include "components/infobars/core/infobar_feature.h" + #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif -const base::Feature kInfobarUIReboot{"InfobarUIReboot", - base::FEATURE_DISABLED_BY_DEFAULT}; - const base::Feature kInfobarOverlayUI{"InfobarOverlayUI", base::FEATURE_DISABLED_BY_DEFAULT}; // Feature enabled by default since it will always be checked along -// kInfobarUIReboot, effectively working as a kill switch. Meaning that if -// kInfobarUIReboot is not enabled this feature won't work. +// kIOSInfobarUIReboot, effectively working as a kill switch. Meaning that if +// kIOSInfobarUIReboot is not enabled this feature won't work. const base::Feature kConfirmInfobarMessagesUI{"ConfirmInfobarMessagesUI", base::FEATURE_ENABLED_BY_DEFAULT}; // Feature enabled by default since it will always be checked along -// kInfobarUIReboot, effectively working as a kill switch. Meaning that if -// kInfobarUIReboot is not enabled this feature won't work. +// kIOSInfobarUIReboot, effectively working as a kill switch. Meaning that if +// kIOSInfobarUIReboot is not enabled this feature won't work. const base::Feature kCrashRestoreInfobarMessagesUI{ "CrashRestoreInfobarMessagesUI", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -30,20 +29,20 @@ "DownloadInfobarMessagesUI", base::FEATURE_DISABLED_BY_DEFAULT}; // Feature enabled by default since it will always be checked along -// kInfobarUIReboot, effectively working as a kill switch. Meaning that if -// kInfobarUIReboot is not enabled this feature won't work. +// kIOSInfobarUIReboot, effectively working as a kill switch. Meaning that if +// kIOSInfobarUIReboot is not enabled this feature won't work. const base::Feature kSaveCardInfobarMessagesUI{ "SaveCardInfobarMessagesUI", base::FEATURE_ENABLED_BY_DEFAULT}; // Feature enabled by default since it will always be guarded with -// |kInfobarUIReboot|, meaning that if necessary, |kInfobarUIReboot| can be used -// as a kill switch. +// |kIOSInfobarUIReboot|, meaning that if necessary, +// |kTranslateInfobarMessagesUI| can be used as a kill switch. // TODO(crbug.com/1014959): Enabled flag once feature is ready. const base::Feature kTranslateInfobarMessagesUI{ "TranslateInfobarMessagesUI", base::FEATURE_ENABLED_BY_DEFAULT}; bool IsInfobarUIRebootEnabled() { - return base::FeatureList::IsEnabled(kInfobarUIReboot); + return base::FeatureList::IsEnabled(kIOSInfobarUIReboot); } bool IsInfobarOverlayUIEnabled() {
diff --git a/ios/chrome/browser/ui/main/BUILD.gn b/ios/chrome/browser/ui/main/BUILD.gn index f54075d4..28323ef 100644 --- a/ios/chrome/browser/ui/main/BUILD.gn +++ b/ios/chrome/browser/ui/main/BUILD.gn
@@ -5,9 +5,7 @@ import("//ios/build/chrome_build.gni") source_set("scene_guts") { - sources = [ - "scene_controller_guts.h", - ] + sources = [ "scene_controller_guts.h" ] deps = [ "//ios/chrome/app/application_delegate:application_delegate_internal", "//ios/chrome/browser:utils", @@ -141,6 +139,8 @@ "//components/bookmarks/test", "//ios/chrome/browser/bookmarks", "//ios/chrome/browser/browser_state:test_support", + "//ios/chrome/browser/main", + "//ios/chrome/browser/main:test_support", "//ios/chrome/browser/tabs", "//ios/chrome/browser/ui/browser_view", "//ios/chrome/test:block_cleanup_test",
diff --git a/ios/chrome/browser/ui/main/browser_view_wrangler.mm b/ios/chrome/browser/ui/main/browser_view_wrangler.mm index e8439529..f7627af 100644 --- a/ios/chrome/browser/ui/main/browser_view_wrangler.mm +++ b/ios/chrome/browser/ui/main/browser_view_wrangler.mm
@@ -14,6 +14,8 @@ #include "ios/chrome/browser/crash_report/crash_report_helper.h" #import "ios/chrome/browser/device_sharing/device_sharing_manager.h" #import "ios/chrome/browser/main/browser.h" +#import "ios/chrome/browser/main/browser_list.h" +#import "ios/chrome/browser/main/browser_list_factory.h" #import "ios/chrome/browser/sessions/session_ios.h" #import "ios/chrome/browser/sessions/session_service_ios.h" #import "ios/chrome/browser/sessions/session_window_ios.h" @@ -185,6 +187,9 @@ - (void)createMainBrowser { _mainBrowser = Browser::Create(_browserState); + BrowserList* browserList = + BrowserListFactory::GetForBrowserState(_mainBrowser->GetBrowserState()); + browserList->AddBrowser(_mainBrowser.get()); [self setUpTabModel:_mainBrowser->GetTabModel() withBrowserState:_browserState restorePersistedState:YES]; @@ -351,6 +356,12 @@ DCHECK(![self.otrBrowser->GetTabModel() count]); DCHECK(_browserState); + // Remove the OTR browser from the browser list. The browser itself is + // still alive during this call, so any observers can act on it. + BrowserList* browserList = BrowserListFactory::GetForBrowserState( + self.otrBrowser->GetBrowserState()); + browserList->RemoveIncognitoBrowser(self.otrBrowser); + // Stop watching the OTR webStateList's state for crashes. breakpad::StopMonitoringTabStateForWebStateList( self.otrBrowser->GetWebStateList()); @@ -406,6 +417,13 @@ [_incognitoBrowserCoordinator stop]; _incognitoBrowserCoordinator = nil; + BrowserList* browserList = BrowserListFactory::GetForBrowserState( + self.mainBrowser->GetBrowserState()); + browserList->RemoveBrowser(self.mainBrowser); + BrowserList* otrBrowserList = BrowserListFactory::GetForBrowserState( + self.otrBrowser->GetBrowserState()); + otrBrowserList->RemoveIncognitoBrowser(self.otrBrowser); + // Handles removing observers, stopping breakpad monitoring, and closing all // tabs. [self setMainBrowser:nullptr]; @@ -434,6 +452,10 @@ } std::unique_ptr<Browser> browser = Browser::Create(otrBrowserState); + BrowserList* browserList = + BrowserListFactory::GetForBrowserState(browser->GetBrowserState()); + browserList->AddIncognitoBrowser(browser.get()); + [self setUpTabModel:browser->GetTabModel() withBrowserState:otrBrowserState restorePersistedState:restorePersistedState];
diff --git a/ios/chrome/browser/ui/main/browser_view_wrangler_unittest.mm b/ios/chrome/browser/ui/main/browser_view_wrangler_unittest.mm index f1e93266..8b669ef 100644 --- a/ios/chrome/browser/ui/main/browser_view_wrangler_unittest.mm +++ b/ios/chrome/browser/ui/main/browser_view_wrangler_unittest.mm
@@ -7,6 +7,10 @@ #import <UIKit/UIKit.h> #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" +#import "ios/chrome/browser/main/browser_list.h" +#import "ios/chrome/browser/main/browser_list_factory.h" +#import "ios/chrome/browser/main/test_browser_list_observer.h" + #import "ios/chrome/browser/tabs/tab_model.h" #import "ios/chrome/browser/ui/browser_view/browser_view_controller.h" #include "ios/web/public/test/web_task_environment.h" @@ -59,4 +63,56 @@ } } +TEST_F(BrowserViewWranglerTest, TestBrowserList) { + BrowserList* browser_list = + BrowserListFactory::GetForBrowserState(chrome_browser_state_.get()); + TestBrowserListObserver observer; + browser_list->AddObserver(&observer); + + BrowserViewWrangler* wrangler = [[BrowserViewWrangler alloc] + initWithBrowserState:chrome_browser_state_.get() + webStateListObserver:nil + applicationCommandEndpoint:nil + browsingDataCommandEndpoint:nil + appURLLoadingService:nil + storageSwitcher:nil]; + + // After creating the main browser, it should have been added to the browser + // list. + [wrangler createMainBrowser]; + EXPECT_EQ(wrangler.mainInterface.browser, observer.GetLastAddedBrowser()); + EXPECT_EQ(1UL, browser_list->AllRegularBrowsers().size()); + // The lazy OTR browser creation should involve an addition to the browser + // list. + EXPECT_EQ(wrangler.incognitoInterface.browser, + observer.GetLastAddedIncognitoBrowser()); + EXPECT_EQ(1UL, browser_list->AllIncognitoBrowsers().size()); + + Browser* prior_otr_browser = observer.GetLastAddedIncognitoBrowser(); + // WARNING: after the following call, |last_otr_browser| is unsafe. + [wrangler destroyAndRebuildIncognitoBrowser]; + // Expect that the prior OTR browser was removed, and a new one was added. + EXPECT_EQ(prior_otr_browser, observer.GetLastRemovedIncognitoBrowser()); + EXPECT_EQ(wrangler.incognitoInterface.browser, + observer.GetLastAddedIncognitoBrowser()); + // There still should be one OTR browser. + EXPECT_EQ(1UL, browser_list->AllIncognitoBrowsers().size()); + + // Store unsafe pointers to the current browsers. + Browser* pre_shutdown_main_browser = wrangler.mainInterface.browser; + Browser* pre_shutdown_incognito_browser = wrangler.incognitoInterface.browser; + + // After shutdown all browsers are destroyed. + [wrangler shutdown]; + // There should be no browsers in the BrowserList. + EXPECT_EQ(0UL, browser_list->AllRegularBrowsers().size()); + EXPECT_EQ(0UL, browser_list->AllIncognitoBrowsers().size()); + // Both browser removals should have been observed. + EXPECT_EQ(pre_shutdown_main_browser, observer.GetLastRemovedBrowser()); + EXPECT_EQ(pre_shutdown_incognito_browser, + observer.GetLastRemovedIncognitoBrowser()); + + browser_list->RemoveObserver(&observer); +} + } // namespace
diff --git a/ios/chrome/browser/ui/main/test/BUILD.gn b/ios/chrome/browser/ui/main/test/BUILD.gn index 6af2ba7..9d3709a 100644 --- a/ios/chrome/browser/ui/main/test/BUILD.gn +++ b/ios/chrome/browser/ui/main/test/BUILD.gn
@@ -10,7 +10,5 @@ "stub_browser_interface_provider.h", "stub_browser_interface_provider.mm", ] - deps = [ - "//ios/chrome/browser/ui/main", - ] + deps = [ "//ios/chrome/browser/ui/main" ] }
diff --git a/ios/chrome/browser/ui/ntp/BUILD.gn b/ios/chrome/browser/ui/ntp/BUILD.gn index 1c8f76b..41ac555 100644 --- a/ios/chrome/browser/ui/ntp/BUILD.gn +++ b/ios/chrome/browser/ui/ntp/BUILD.gn
@@ -9,9 +9,7 @@ "new_tab_page_header_constants.mm", ] configs += [ "//build/config/compiler:enable_arc" ] - deps = [ - "//ios/chrome/browser/ui/util", - ] + deps = [ "//ios/chrome/browser/ui/util" ] } source_set("coordinator") { @@ -192,9 +190,7 @@ configs += [ "//build/config/compiler:enable_arc" ] defines = [ "CHROME_EARL_GREY_1" ] testonly = true - sources = [ - "new_tab_page_egtest.mm", - ] + sources = [ "new_tab_page_egtest.mm" ] deps = [ "//base/test:test_support", "//components/strings", @@ -219,9 +215,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ - "new_tab_page_egtest.mm", - ] + sources = [ "new_tab_page_egtest.mm" ] deps = [ "//base/test:test_support", "//components/strings", @@ -238,9 +232,7 @@ source_set("perf_tests") { configs += [ "//build/config/compiler:enable_arc" ] testonly = true - sources = [ - "new_tab_page_perftest.mm", - ] + sources = [ "new_tab_page_perftest.mm" ] deps = [ "//base/test:test_support", "//ios/chrome/browser/sessions",
diff --git a/ios/chrome/browser/ui/ntp_tile_views/BUILD.gn b/ios/chrome/browser/ui/ntp_tile_views/BUILD.gn index 70af4d1..9c402db3f 100644 --- a/ios/chrome/browser/ui/ntp_tile_views/BUILD.gn +++ b/ios/chrome/browser/ui/ntp_tile_views/BUILD.gn
@@ -32,9 +32,7 @@ source_set("unit_tests") { testonly = true - sources = [ - "ntp_tile_layout_util_unittest.mm", - ] + sources = [ "ntp_tile_layout_util_unittest.mm" ] deps = [ ":ntp_tile_views", "//base",
diff --git a/ios/chrome/browser/ui/omnibox/omnibox_egtest.mm b/ios/chrome/browser/ui/omnibox/omnibox_egtest.mm index 1edee943..f9b0c8d 100644 --- a/ios/chrome/browser/ui/omnibox/omnibox_egtest.mm +++ b/ios/chrome/browser/ui/omnibox/omnibox_egtest.mm
@@ -366,6 +366,42 @@ assertWithMatcher:chrome_test_util::OmniboxContainingText(kPage2URL)]; } +// Focus the omnibox and hit "cmd+X". This should remove all text from the +// omnibox and put it in the clipboard. This had been broken before because of +// the preedit state complexity. Paste to verify that the URL was indeed copied. +- (void)testCutInPreedit { + [self openPage1]; + + [ChromeEarlGreyUI focusOmnibox]; + [self checkLocationBarEditState]; + + [ChromeEarlGrey simulatePhysicalKeyboardEvent:@"X" + flags:UIKeyModifierCommand]; + + // It takes a while to copy, and not waiting here will cause the test to fail. + GREYCondition* copyCondition = [GREYCondition + conditionWithName:@"page1 URL copied condition" + block:^BOOL { + return [UIPasteboard.generalPasteboard.string + hasSuffix:base::SysUTF8ToNSString(kPage1URL)]; + }]; + // Wait for copy to happen or timeout after 5 seconds. + GREYAssertTrue([copyCondition waitWithTimeout:5], + @"Copying page 1 URL failed"); + + // Verify that the omnibox is empty. + [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] + assertWithMatcher:chrome_test_util::OmniboxText("")]; + + // Attempt to paste. + [ChromeEarlGrey simulatePhysicalKeyboardEvent:@"V" + flags:UIKeyModifierCommand]; + + // Verify that paste happened. + [[EarlGrey selectElementWithMatcher:chrome_test_util::Omnibox()] + assertWithMatcher:chrome_test_util::OmniboxContainingText(kPage1URL)]; +} + #pragma mark - Helpers // Navigates to Page 1 in a tab and waits for it to load.
diff --git a/ios/chrome/browser/ui/overlays/BUILD.gn b/ios/chrome/browser/ui/overlays/BUILD.gn index cee04646..a8f506e 100644 --- a/ios/chrome/browser/ui/overlays/BUILD.gn +++ b/ios/chrome/browser/ui/overlays/BUILD.gn
@@ -102,6 +102,7 @@ "//ios/chrome/browser/overlays", "//ios/chrome/browser/overlays/test", "//ios/chrome/browser/ui/overlays/test", + "//testing/gmock", "//testing/gtest", "//third_party/ocmock", ]
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn b/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn index 5ca3c9d7..ab77717 100644 --- a/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn +++ b/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn
@@ -65,6 +65,7 @@ "//ios/chrome/browser/overlays/public/infobar_banner", "//ios/chrome/browser/overlays/test", "//ios/chrome/browser/ui/overlays/test", + "//testing/gmock", "//testing/gtest", "//third_party/ocmock", "//ui/base",
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator_unittest.mm index 65fcdc30..fb8731a 100644 --- a/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator_unittest.mm +++ b/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator_unittest.mm
@@ -11,7 +11,10 @@ #include "ios/chrome/browser/overlays/public/overlay_request.h" #include "ios/chrome/browser/overlays/public/overlay_request_support.h" #include "ios/chrome/browser/overlays/public/overlay_response.h" +#include "ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h" #include "ios/chrome/browser/overlays/test/fake_overlay_user_data.h" +#include "ios/chrome/browser/overlays/test/overlay_test_macros.h" +#include "testing/gmock/include/gmock/gmock.h" #import "testing/gtest_mac.h" #include "testing/platform_test.h" #import "third_party/ocmock/OCMock/OCMock.h" @@ -21,13 +24,18 @@ #error "This file requires ARC support." #endif +namespace { +// Request ConfigType used in tests. +DEFINE_TEST_OVERLAY_REQUEST_CONFIG(FakeConfig); +} + // InfobarBannerOverlayMediator subclass used for testing. @interface FakeInfobarBannerOverlayMediator : InfobarBannerOverlayMediator @end @implementation FakeInfobarBannerOverlayMediator + (const OverlayRequestSupport*)requestSupport { - return OverlayRequestSupport::All(); + return FakeConfig::RequestSupport(); } @end @@ -35,82 +43,77 @@ class InfobarBannerOverlayMediatorTest : public PlatformTest { public: InfobarBannerOverlayMediatorTest() - : request_(OverlayRequest::CreateWithConfig<FakeOverlayUserData>()), + : callback_installer_( + &callback_receiver_, + {InfobarBannerMainActionResponse::ResponseSupport(), + InfobarBannerShowModalResponse::ResponseSupport(), + InfobarBannerUserInitiatedDismissalResponse::ResponseSupport()}), + request_(OverlayRequest::CreateWithConfig<FakeConfig>()), delegate_( OCMStrictProtocolMock(@protocol(OverlayRequestMediatorDelegate))), mediator_([[FakeInfobarBannerOverlayMediator alloc] initWithRequest:request_.get()]) { mediator_.delegate = delegate_; + callback_installer_.InstallCallbacks(request_.get()); } ~InfobarBannerOverlayMediatorTest() override { + // |callback_receiver_|'s completion callback is guaranteed to be called + // when the test fixture is torn down. This functionality is already tested + // in OverlayRequestCallbackInstaller's unittests. This EXPECT_CALL() for + // the completion callback is added here instead of in individual tests + // since the execution of the completion callback is not functionality + // specific to the InfobarBannerOverlayMediator. + EXPECT_CALL(callback_receiver_, CompletionCallback(request_.get())); EXPECT_OCMOCK_VERIFY(delegate_); } protected: + MockOverlayRequestCallbackReceiver callback_receiver_; + FakeOverlayRequestCallbackInstaller callback_installer_; std::unique_ptr<OverlayRequest> request_; id<OverlayRequestMediatorDelegate> delegate_ = nil; - InfobarBannerOverlayMediator* mediator_ = nil; + FakeInfobarBannerOverlayMediator* mediator_ = nil; }; // Tests that an InfobarBannerOverlayMediator correctly dispatches a response // for confirm button taps before stopping itself. TEST_F(InfobarBannerOverlayMediatorTest, ConfirmButtonTapped) { - __block bool confirm_button_tapped = false; - void (^confirm_button_tapped_callback)(OverlayResponse* response) = - ^(OverlayResponse* response) { - confirm_button_tapped = true; - }; - request_->GetCallbackManager()->AddDispatchCallback(OverlayDispatchCallback( - base::BindRepeating(confirm_button_tapped_callback), - InfobarBannerMainActionResponse::ResponseSupport())); - ASSERT_FALSE(confirm_button_tapped); - // Notify the mediator of the button tap via its InfobarBannerDelegate // implementation and verify that the confirm button callback was executed and // that the mediator's delegate was instructed to stop. + EXPECT_CALL( + callback_receiver_, + DispatchCallback(request_.get(), + InfobarBannerMainActionResponse::ResponseSupport())); OCMExpect([delegate_ stopOverlayForMediator:mediator_]); [mediator_ bannerInfobarButtonWasPressed:nil]; - EXPECT_TRUE(confirm_button_tapped); } // Tests that an InfobarBannerOverlayMediator correctly dispatches a response // for modal button taps before stopping itself. TEST_F(InfobarBannerOverlayMediatorTest, ModalButtonTapped) { - __block bool modal_button_tapped = false; - void (^modal_button_tapped_callback)(OverlayResponse* response) = - ^(OverlayResponse* response) { - modal_button_tapped = true; - }; - request_->GetCallbackManager()->AddDispatchCallback(OverlayDispatchCallback( - base::BindRepeating(modal_button_tapped_callback), - InfobarBannerShowModalResponse::ResponseSupport())); - ASSERT_FALSE(modal_button_tapped); - // Notify the mediator of the button tap via its InfobarBannerDelegate // implementation and verify that the modal button callback was executed and // that the mediator's delegate was instructed to stop. + EXPECT_CALL( + callback_receiver_, + DispatchCallback(request_.get(), + InfobarBannerShowModalResponse::ResponseSupport())); OCMExpect([delegate_ stopOverlayForMediator:mediator_]); [mediator_ presentInfobarModalFromBanner]; - EXPECT_TRUE(modal_button_tapped); } // Tests that an InfobarBannerOverlayMediator correctly sets the completion // response for user-initiated dismissals triggered by the banner UI. TEST_F(InfobarBannerOverlayMediatorTest, UserInitiatedDismissal) { - __block bool user_initiated = false; - void (^completion_callback)(OverlayResponse* response) = - ^(OverlayResponse* response) { - user_initiated = true; - }; - request_->GetCallbackManager()->AddCompletionCallback( - base::BindOnce(completion_callback)); - ASSERT_FALSE(user_initiated); - // Notify the mediator of the dismissal via its InfobarBannerDelegate // implementation and verify that the completion callback was executed with // the correct info and that the mediator's delegate was instructed to stop. + EXPECT_CALL( + callback_receiver_, + DispatchCallback( + request_.get(), + InfobarBannerUserInitiatedDismissalResponse::ResponseSupport())); OCMExpect([delegate_ stopOverlayForMediator:mediator_]); [mediator_ dismissInfobarBannerForUserInteraction:YES]; - request_ = nullptr; - EXPECT_TRUE(user_initiated); }
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/save_password_infobar_banner_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/save_password_infobar_banner_overlay_mediator_unittest.mm index 330d5e1..4533b94 100644 --- a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/save_password_infobar_banner_overlay_mediator_unittest.mm +++ b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/save_password_infobar_banner_overlay_mediator_unittest.mm
@@ -11,6 +11,7 @@ #include "base/test/scoped_feature_list.h" #include "components/autofill/core/common/password_form.h" #include "components/infobars/core/infobar.h" +#include "components/infobars/core/infobar_feature.h" #include "ios/chrome/browser/infobars/infobar_ios.h" #import "ios/chrome/browser/overlays/public/infobar_banner/save_password_infobar_banner_overlay.h" #include "ios/chrome/browser/overlays/public/overlay_request.h" @@ -18,7 +19,6 @@ #import "ios/chrome/browser/passwords/ios_chrome_save_password_infobar_delegate.h" #import "ios/chrome/browser/passwords/test/mock_ios_chrome_save_passwords_infobar_delegate.h" #import "ios/chrome/browser/ui/infobars/banners/test/fake_infobar_banner_consumer.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" #import "ios/chrome/browser/ui/infobars/test/fake_infobar_ui_delegate.h" #include "ios/chrome/grit/ios_strings.h" #import "testing/gtest_mac.h" @@ -39,7 +39,7 @@ class SavePasswordInfobarBannerOverlayMediatorTest : public PlatformTest { public: SavePasswordInfobarBannerOverlayMediatorTest() { - feature_list_.InitWithFeatures({kInfobarUIReboot}, {}); + feature_list_.InitWithFeatures({kIOSInfobarUIReboot}, {}); } private:
diff --git a/ios/chrome/browser/ui/overlays/infobar_modal/infobar_modal_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/infobar_modal/infobar_modal_overlay_mediator_unittest.mm index 2cff71b..27930e7 100644 --- a/ios/chrome/browser/ui/overlays/infobar_modal/infobar_modal_overlay_mediator_unittest.mm +++ b/ios/chrome/browser/ui/overlays/infobar_modal/infobar_modal_overlay_mediator_unittest.mm
@@ -10,6 +10,7 @@ #include "ios/chrome/browser/overlays/public/overlay_request.h" #include "ios/chrome/browser/overlays/public/overlay_response.h" #include "ios/chrome/browser/overlays/public/overlay_response_support.h" +#include "ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h" #include "ios/chrome/browser/overlays/test/fake_overlay_user_data.h" #include "ios/chrome/browser/overlays/test/overlay_test_macros.h" #include "testing/platform_test.h" @@ -39,21 +40,34 @@ class InfobarModalOverlayMediatorTest : public PlatformTest { public: InfobarModalOverlayMediatorTest() - : request_(OverlayRequest::CreateWithConfig<ModalConfig>()), + : callback_installer_( + &callback_receiver_, + {InfobarModalMainActionResponse::ResponseSupport()}), + request_(OverlayRequest::CreateWithConfig<ModalConfig>()), delegate_( OCMStrictProtocolMock(@protocol(OverlayRequestMediatorDelegate))), mediator_([[FakeInfobarModalOverlayMediator alloc] initWithRequest:request_.get()]) { mediator_.delegate = delegate_; + callback_installer_.InstallCallbacks(request_.get()); } ~InfobarModalOverlayMediatorTest() override { + // |callback_receiver_|'s completion callback is guaranteed to be called + // when the test fixture is torn down. This functionality is already tested + // in OverlayRequestCallbackInstaller's unittests. This EXPECT_CALL() for + // the completion callback is added here instead of in individual tests + // since the execution of the completion callback is not functionality + // specific to the InfobarModalOverlayMediator. + EXPECT_CALL(callback_receiver_, CompletionCallback(request_.get())); EXPECT_OCMOCK_VERIFY(delegate_); } protected: + MockOverlayRequestCallbackReceiver callback_receiver_; + FakeOverlayRequestCallbackInstaller callback_installer_; std::unique_ptr<OverlayRequest> request_; id<OverlayRequestMediatorDelegate> delegate_ = nil; - InfobarModalOverlayMediator* mediator_ = nil; + FakeInfobarModalOverlayMediator* mediator_ = nil; }; // Tests that |-dismissInfobarModal| triggers dismissal via the delegate. @@ -65,16 +79,10 @@ // Tests that |-modalInfobarButtonWasAccepted| dispatches a main action response // then dismisses the modal. TEST_F(InfobarModalOverlayMediatorTest, ModalInfobarButtonWasAccepted) { - // Add a dispatch callback that resets |main_action_callback_executed| to true - // upon receiving an OverlayResponse created with an - // InfobarModalMainActionResponse. - __block bool main_action_callback_executed = false; - request_->GetCallbackManager()->AddDispatchCallback(OverlayDispatchCallback( - base::BindRepeating(^(OverlayResponse* response) { - main_action_callback_executed = true; - }), - InfobarModalMainActionResponse::ResponseSupport())); + EXPECT_CALL( + callback_receiver_, + DispatchCallback(request_.get(), + InfobarModalMainActionResponse::ResponseSupport())); OCMExpect([delegate_ stopOverlayForMediator:mediator_]); [mediator_ modalInfobarButtonWasAccepted:nil]; - EXPECT_TRUE(main_action_callback_executed); }
diff --git a/ios/chrome/browser/ui/overlays/overlay_request_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/overlay_request_mediator_unittest.mm index f873659b3..d93366a 100644 --- a/ios/chrome/browser/ui/overlays/overlay_request_mediator_unittest.mm +++ b/ios/chrome/browser/ui/overlays/overlay_request_mediator_unittest.mm
@@ -10,8 +10,9 @@ #include "ios/chrome/browser/overlays/public/overlay_request.h" #include "ios/chrome/browser/overlays/public/overlay_response.h" #include "ios/chrome/browser/overlays/public/overlay_response_support.h" -#include "ios/chrome/browser/overlays/test/fake_overlay_user_data.h" +#include "ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h" #include "ios/chrome/browser/overlays/test/overlay_test_macros.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/platform_test.h" #import "third_party/ocmock/OCMock/OCMock.h" #import "third_party/ocmock/gtest_support.h" @@ -21,60 +22,73 @@ #endif namespace { -// InfoType used to create dispatched respones in test. +// ConfigType and InfoType used in tests. +DEFINE_TEST_OVERLAY_REQUEST_CONFIG(FakeConfig); DEFINE_TEST_OVERLAY_RESPONSE_INFO(DispatchInfo); } -// Test fixture for OverlayRequestMediator. -using OverlayRequestMediatorTest = PlatformTest; +// OverlayRequestMediator subclass used in tests. +@interface FakeOverlayRequestMediator : OverlayRequestMediator +@end -// Tests that the mediator's request is reset after destruction. +@implementation FakeOverlayRequestMediator ++ (const OverlayRequestSupport*)requestSupport { + return FakeConfig::RequestSupport(); +} +@end + +// Test fixture for OverlayRequestMediator. +class OverlayRequestMediatorTest : public PlatformTest { + public: + OverlayRequestMediatorTest() + : callback_installer_(&callback_receiver_, + {DispatchInfo::ResponseSupport()}), + request_(OverlayRequest::CreateWithConfig<FakeConfig>()), + delegate_( + OCMStrictProtocolMock(@protocol(OverlayRequestMediatorDelegate))), + mediator_([[FakeOverlayRequestMediator alloc] + initWithRequest:request_.get()]) { + mediator_.delegate = delegate_; + callback_installer_.InstallCallbacks(request_.get()); + } + ~OverlayRequestMediatorTest() override { + ResetRequest(); + EXPECT_OCMOCK_VERIFY(delegate_); + } + + // Destroys |request_|, expecting that the completion callback is executed. + void ResetRequest() { + if (!request_) + return; + EXPECT_CALL(callback_receiver_, CompletionCallback(request_.get())); + request_ = nullptr; + } + + protected: + MockOverlayRequestCallbackReceiver callback_receiver_; + FakeOverlayRequestCallbackInstaller callback_installer_; + std::unique_ptr<OverlayRequest> request_; + id<OverlayRequestMediatorDelegate> delegate_ = nil; + FakeOverlayRequestMediator* mediator_ = nil; +}; + +// Tests that the mediator's request is reset after the request's destruction. TEST_F(OverlayRequestMediatorTest, ResetRequestAfterDestruction) { - std::unique_ptr<OverlayRequest> request = - OverlayRequest::CreateWithConfig<FakeOverlayUserData>(); - OverlayRequestMediator* mediator = - [[OverlayRequestMediator alloc] initWithRequest:request.get()]; - EXPECT_EQ(request.get(), mediator.request); - request = nullptr; - EXPECT_EQ(nullptr, mediator.request); + EXPECT_EQ(request_.get(), mediator_.request); + ResetRequest(); + EXPECT_EQ(nullptr, mediator_.request); } // Tests that |-dispatchResponse:| correctly dispatches the response. TEST_F(OverlayRequestMediatorTest, DispatchResponse) { - std::unique_ptr<OverlayRequest> request = - OverlayRequest::CreateWithConfig<FakeOverlayUserData>(); - // Add a dispatch callback that sets |dispatch_callback_executed| to true - // upon receiving an OverlayResponse created with DispatchInfo. - __block bool dispatch_callback_executed = false; - std::unique_ptr<OverlayResponse> dispatched_response = - OverlayResponse::CreateWithInfo<DispatchInfo>(); - OverlayResponse* response_copy = dispatched_response.get(); - request->GetCallbackManager()->AddDispatchCallback( - OverlayDispatchCallback(base::BindRepeating(^(OverlayResponse* response) { - dispatch_callback_executed = true; - EXPECT_EQ(response_copy, response); - }), - DispatchInfo::ResponseSupport())); - OverlayRequestMediator* mediator = - [[OverlayRequestMediator alloc] initWithRequest:request.get()]; - // Dispatch the response and verify |dipatch_callback_executed|. - [mediator dispatchResponse:std::move(dispatched_response)]; - - EXPECT_TRUE(dispatch_callback_executed); + EXPECT_CALL( + callback_receiver_, + DispatchCallback(request_.get(), DispatchInfo::ResponseSupport())); + [mediator_ dispatchResponse:OverlayResponse::CreateWithInfo<DispatchInfo>()]; } // Tests that |-dismissOverlay| stops the overlay. TEST_F(OverlayRequestMediatorTest, DismissOverlay) { - std::unique_ptr<OverlayRequest> request = - OverlayRequest::CreateWithConfig<FakeOverlayUserData>(); - OverlayRequestMediator* mediator = - [[OverlayRequestMediator alloc] initWithRequest:request.get()]; - id<OverlayRequestMediatorDelegate> delegate = - OCMStrictProtocolMock(@protocol(OverlayRequestMediatorDelegate)); - mediator.delegate = delegate; - OCMExpect([delegate stopOverlayForMediator:mediator]); - - [mediator dismissOverlay]; - - EXPECT_OCMOCK_VERIFY(delegate); + OCMExpect([delegate_ stopOverlayForMediator:mediator_]); + [mediator_ dismissOverlay]; }
diff --git a/ios/chrome/browser/ui/passwords/BUILD.gn b/ios/chrome/browser/ui/passwords/BUILD.gn index d9625e6..d5647ee 100644 --- a/ios/chrome/browser/ui/passwords/BUILD.gn +++ b/ios/chrome/browser/ui/passwords/BUILD.gn
@@ -23,6 +23,7 @@ "//components/password_manager/core/browser", "//components/strings:components_strings_grit", "//ios/chrome/app/strings", + "//ios/chrome/browser/main:public", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/util",
diff --git a/ios/chrome/browser/ui/passwords/password_breach_coordinator.h b/ios/chrome/browser/ui/passwords/password_breach_coordinator.h index 2e8724b..ba0feed 100644 --- a/ios/chrome/browser/ui/passwords/password_breach_coordinator.h +++ b/ios/chrome/browser/ui/passwords/password_breach_coordinator.h
@@ -7,15 +7,19 @@ #import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h" -@class CommandDispatcher; - // Presents and stops the Password Breach feature, which consists in alerting // the user that Chrome detected a leaked credential. In some scenarios it // prompts for a checkup of the stored passwords. @interface PasswordBreachCoordinator : ChromeCoordinator -// The dispatcher used to register commands. -@property(nonatomic, weak) CommandDispatcher* dispatcher; +// Unavailable, use -initWithBaseViewController:browser:. +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + NS_UNAVAILABLE; +// Unavailable, use -initWithBaseViewController:browser:. +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browserState: + (ios::ChromeBrowserState*)browserState + NS_UNAVAILABLE; @end
diff --git a/ios/chrome/browser/ui/passwords/password_breach_coordinator.mm b/ios/chrome/browser/ui/passwords/password_breach_coordinator.mm index 1de69a6..a7236e8 100644 --- a/ios/chrome/browser/ui/passwords/password_breach_coordinator.mm +++ b/ios/chrome/browser/ui/passwords/password_breach_coordinator.mm
@@ -4,6 +4,7 @@ #import "ios/chrome/browser/ui/passwords/password_breach_coordinator.h" +#import "ios/chrome/browser/main/browser.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/commands/password_breach_commands.h" #import "ios/chrome/browser/ui/passwords/password_breach_learn_more_view_controller.h" @@ -37,9 +38,13 @@ // To start, a mediator and view controller should be ready. DCHECK(self.viewController); DCHECK(self.mediator); + DCHECK(self.browser); [self.baseViewController presentViewController:self.viewController animated:YES completion:nil]; + CommandDispatcher* dispatcher = self.browser->GetCommandDispatcher(); + [dispatcher startDispatchingToTarget:self + forProtocol:@protocol(PasswordBreachCommands)]; } - (void)stop { @@ -50,18 +55,8 @@ completion:nil]; self.viewController = nil; [super stop]; -} - -#pragma mark - Setters - -- (void)setDispatcher:(CommandDispatcher*)dispatcher { - if (_dispatcher == dispatcher) { - return; - } - [_dispatcher stopDispatchingToTarget:self]; - [dispatcher startDispatchingToTarget:self - forProtocol:@protocol(PasswordBreachCommands)]; - _dispatcher = dispatcher; + CommandDispatcher* dispatcher = self.browser->GetCommandDispatcher(); + [dispatcher stopDispatchingToTarget:self]; } #pragma mark - PasswordBreachCommands @@ -73,8 +68,8 @@ if (@available(iOS 13, *)) { self.viewController.modalInPresentation = YES; } - id<ApplicationCommands> dispatcher = - static_cast<id<ApplicationCommands>>(self.dispatcher); + id<ApplicationCommands> dispatcher = static_cast<id<ApplicationCommands>>( + self.browser->GetCommandDispatcher()); self.mediator = [[PasswordBreachMediator alloc] initWithConsumer:self.viewController presenter:self
diff --git a/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm b/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm index 344f18f6..4f09d4d46 100644 --- a/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm +++ b/ios/chrome/browser/ui/payments/payment_request_mediator_unittest.mm
@@ -501,9 +501,10 @@ base::RunLoop run_loop; base::Closure quit_closure = run_loop.QuitClosure(); AuthenticationServiceFactory::GetForBrowserState(browser_state()) - ->SignOut(signin_metrics::ProfileSignout::SIGNOUT_TEST, ^{ - quit_closure.Run(); - }); + ->SignOut(signin_metrics::ProfileSignout::SIGNOUT_TEST, + /*force_clear_browsing_data=*/false, ^{ + quit_closure.Run(); + }); run_loop.Run(); // The signed in state has no effect on the footer text if the first
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 7ea88d8..c52839c6 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
@@ -397,13 +397,15 @@ if (authService->IsAuthenticated()) { _authenticationOperationInProgress = YES; [self preventUserInteraction]; - authService->SignOut(signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS, ^{ - [self allowUserInteraction]; - _authenticationOperationInProgress = NO; - [base::mac::ObjCCastStrict<SettingsNavigationController>( - self.navigationController) - popViewControllerOrCloseSettingsAnimated:YES]; - }); + authService->SignOut( + signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS, + /*force_clear_browsing_data=*/false, ^{ + [self allowUserInteraction]; + _authenticationOperationInProgress = NO; + [base::mac::ObjCCastStrict<SettingsNavigationController>( + self.navigationController) + popViewControllerOrCloseSettingsAnimated:YES]; + }); } }
diff --git a/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_coordinator.mm b/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_coordinator.mm index 28cd527..9e0acb8 100644 --- a/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_coordinator.mm +++ b/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_coordinator.mm
@@ -165,7 +165,8 @@ "Signin_Signin_ConfirmCancelAdvancedSyncSettings")); syncSetupService->CommitSyncChanges(); AuthenticationServiceFactory::GetForBrowserState(self.browserState) - ->SignOut(signin_metrics::ABORT_SIGNIN, nil); + ->SignOut(signin_metrics::ABORT_SIGNIN, + /*force_clear_browsing_data=*/false, nil); break; case AdvancedSigninSettingsCoordinatorResultInterrupted: base::RecordAction(
diff --git a/ios/chrome/browser/ui/snackbar/BUILD.gn b/ios/chrome/browser/ui/snackbar/BUILD.gn index 78dc55eb..456275511 100644 --- a/ios/chrome/browser/ui/snackbar/BUILD.gn +++ b/ios/chrome/browser/ui/snackbar/BUILD.gn
@@ -9,6 +9,7 @@ "snackbar_coordinator.mm", ] deps = [ + "//ios/chrome/browser/main:public", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/util", @@ -16,17 +17,3 @@ ] libs = [ "UIKit.framework" ] } - -source_set("unit_tests") { - configs += [ "//build/config/compiler:enable_arc" ] - testonly = true - sources = [ - "snackbar_coordinator_unittest.mm", - ] - deps = [ - ":snackbar", - "//ios/chrome/browser/ui/commands", - "//testing/gtest", - "//third_party/ocmock", - ] -}
diff --git a/ios/chrome/browser/ui/snackbar/snackbar_coordinator.h b/ios/chrome/browser/ui/snackbar/snackbar_coordinator.h index 830eb0df..e6868f2 100644 --- a/ios/chrome/browser/ui/snackbar/snackbar_coordinator.h +++ b/ios/chrome/browser/ui/snackbar/snackbar_coordinator.h
@@ -9,13 +9,18 @@ #import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h" -@class CommandDispatcher; - // Coordinator that handles commands to show snackbars. @interface SnackbarCoordinator : ChromeCoordinator -// The dispatcher used to register commands. -@property(nonatomic, weak) CommandDispatcher* dispatcher; +// Unavailable, use -initWithBaseViewController:browser:. +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + NS_UNAVAILABLE; + +// Unavailable, use -initWithBaseViewController:browser:. +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browserState: + (ios::ChromeBrowserState*)browserState + NS_UNAVAILABLE; @end
diff --git a/ios/chrome/browser/ui/snackbar/snackbar_coordinator.mm b/ios/chrome/browser/ui/snackbar/snackbar_coordinator.mm index ba8caf5..706946ca 100644 --- a/ios/chrome/browser/ui/snackbar/snackbar_coordinator.mm +++ b/ios/chrome/browser/ui/snackbar/snackbar_coordinator.mm
@@ -4,6 +4,7 @@ #import "ios/chrome/browser/ui/snackbar/snackbar_coordinator.h" +#import "ios/chrome/browser/main/browser.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/commands/snackbar_commands.h" #import "ios/chrome/browser/ui/util/named_guide.h" @@ -14,15 +15,18 @@ #endif @implementation SnackbarCoordinator -@synthesize dispatcher = _dispatcher; - (void)start { - [self.dispatcher startDispatchingToTarget:self - forProtocol:@protocol(SnackbarCommands)]; + DCHECK(self.browser); + CommandDispatcher* dispatcher = self.browser->GetCommandDispatcher(); + [dispatcher startDispatchingToTarget:self + forProtocol:@protocol(SnackbarCommands)]; } - (void)stop { - [self.dispatcher stopDispatchingToTarget:self]; + DCHECK(self.browser); + CommandDispatcher* dispatcher = self.browser->GetCommandDispatcher(); + [dispatcher stopDispatchingToTarget:self]; } #pragma mark - SnackbarCommands
diff --git a/ios/chrome/browser/ui/snackbar/snackbar_coordinator_unittest.mm b/ios/chrome/browser/ui/snackbar/snackbar_coordinator_unittest.mm deleted file mode 100644 index bc221003..0000000 --- a/ios/chrome/browser/ui/snackbar/snackbar_coordinator_unittest.mm +++ /dev/null
@@ -1,34 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/ui/snackbar/snackbar_coordinator.h" - -#import "ios/chrome/browser/ui/commands/command_dispatcher.h" -#import "ios/chrome/browser/ui/commands/snackbar_commands.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/platform_test.h" -#import "third_party/ocmock/OCMock/OCMock.h" -#include "third_party/ocmock/gtest_support.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -using SnackbarCoordinatorTest = PlatformTest; - -// Tests that the coordinator handles snackbar commands. -TEST_F(SnackbarCoordinatorTest, RegistersDispatching) { - id dispatcher = OCMClassMock([CommandDispatcher class]); - UIViewController* baseViewController = [[UIViewController alloc] init]; - SnackbarCoordinator* coordinator = [[SnackbarCoordinator alloc] - initWithBaseViewController:baseViewController]; - coordinator.dispatcher = dispatcher; - [[dispatcher expect] startDispatchingToTarget:coordinator - forProtocol:@protocol(SnackbarCommands)]; - [coordinator start]; - EXPECT_OCMOCK_VERIFY(dispatcher); - EXPECT_TRUE([coordinator respondsToSelector:@selector(showSnackbarMessage:)]); - EXPECT_TRUE([coordinator respondsToSelector:@selector(showSnackbarMessage: - bottomOffset:)]); -}
diff --git a/ios/chrome/browser/ui/tab_grid/BUILD.gn b/ios/chrome/browser/ui/tab_grid/BUILD.gn index 3df663af..ab56c0ba 100644 --- a/ios/chrome/browser/ui/tab_grid/BUILD.gn +++ b/ios/chrome/browser/ui/tab_grid/BUILD.gn
@@ -57,9 +57,7 @@ "tab_grid_constants.mm", ] - deps = [ - "resources:grid_background_color", - ] + deps = [ "resources:grid_background_color" ] } source_set("tab_grid_ui") { @@ -121,12 +119,19 @@ "grid:grid_ui", "//base", "//base/test:test_support", + "//components/sessions", "//ios/chrome/browser", "//ios/chrome/browser/browser_state:test_support", + "//ios/chrome/browser/main:test_support", "//ios/chrome/browser/ntp", + "//ios/chrome/browser/sessions:restoration_agent", + "//ios/chrome/browser/sessions:test_support", + "//ios/chrome/browser/snapshots", "//ios/chrome/browser/tabs", + "//ios/chrome/browser/tabs:tabs_internal", "//ios/chrome/browser/ui/commands", "//ios/chrome/browser/web", + "//ios/chrome/browser/web:page_placeholder", "//ios/chrome/browser/web:test_support", "//ios/chrome/browser/web_state_list", "//ios/chrome/browser/web_state_list:test_support",
diff --git a/ios/chrome/browser/ui/tab_grid/resources/BUILD.gn b/ios/chrome/browser/ui/tab_grid/resources/BUILD.gn index 7790335..a25c583 100644 --- a/ios/chrome/browser/ui/tab_grid/resources/BUILD.gn +++ b/ios/chrome/browser/ui/tab_grid/resources/BUILD.gn
@@ -5,9 +5,7 @@ import("//build/config/ios/asset_catalog.gni") colorset("grid_background_color") { - sources = [ - "grid_background_color.colorset/Contents.json", - ] + sources = [ "grid_background_color.colorset/Contents.json" ] } imageset("new_tab_floating_button") {
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_bottom_toolbar.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_bottom_toolbar.mm index cdb1b583..d8c28080 100644 --- a/ios/chrome/browser/ui/tab_grid/tab_grid_bottom_toolbar.mm +++ b/ios/chrome/browser/ui/tab_grid/tab_grid_bottom_toolbar.mm
@@ -98,7 +98,9 @@ - (void)setupViews { // For Regular(V) x Compact(H) layout, display UIToolbar. - _toolbar = [[UIToolbar alloc] init]; + // In iOS 13, constraints break if the UIToolbar is initialized with a null or + // zero rect frame. An arbitrary non-zero frame fixes this issue. + _toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; _toolbar.translatesAutoresizingMaskIntoConstraints = NO; _toolbar.barStyle = UIBarStyleBlack; _toolbar.translucent = YES;
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm index cb925d1..253294e 100644 --- a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm +++ b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm
@@ -28,8 +28,6 @@ #import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h" #import "ios/chrome/browser/web_state_list/web_state_list_serialization.h" #include "ios/chrome/browser/web_state_list/web_state_opener.h" -#import "ios/chrome/browser/web_state_list/web_usage_enabler/web_state_list_web_usage_enabler.h" -#import "ios/chrome/browser/web_state_list/web_usage_enabler/web_state_list_web_usage_enabler_factory.h" #import "ios/web/public/navigation/navigation_manager.h" #import "ios/web/public/web_state.h" #import "ios/web/public/web_state_observer_bridge.h" @@ -110,8 +108,9 @@ @property(nonatomic, weak) id<GridConsumer> consumer; // The saved session window just before close all tabs is called. @property(nonatomic, strong) SessionWindowIOS* closedSessionWindow; -// The number of tabs closed when close all tabs is called. -@property(nonatomic, assign) int closedTabsCount; +// The number of tabs in |closedSessionWindow| that are synced by +// TabRestoreService. +@property(nonatomic, assign) int syncedClosedTabsCount; // Short-term cache for grid thumbnails. @property(nonatomic, strong) NSMutableDictionary<NSString*, UIImage*>* appearanceCache; @@ -135,7 +134,7 @@ @synthesize webStateList = _webStateList; @synthesize consumer = _consumer; @synthesize closedSessionWindow = _closedSessionWindow; -@synthesize closedTabsCount = _closedTabsCount; +@synthesize syncedClosedTabsCount = _syncedClosedTabsCount; @synthesize appearanceCache = _appearanceCache; - (instancetype)initWithConsumer:(id<GridConsumer>)consumer { @@ -323,24 +322,34 @@ [cache markImageWithSessionID:tabHelper->tab_id()]; } self.closedSessionWindow = SerializeWebStateList(self.webStateList); - self.closedTabsCount = self.webStateList->count(); + int old_size = + self.tabRestoreService ? self.tabRestoreService->entries().size() : 0; self.webStateList->CloseAllWebStates(WebStateList::CLOSE_USER_ACTION); + self.syncedClosedTabsCount = + self.tabRestoreService + ? self.tabRestoreService->entries().size() - old_size + : 0; } - (void)undoCloseAllItems { if (!self.closedSessionWindow) return; - __weak TabGridMediator* weakSelf = self; - self.webStateList->PerformBatchOperation( - base::BindOnce(^(WebStateList* web_state_list) { - [weakSelf restoreClosedSessionWindowAndUpdateTabRestoreService]; - })); + DCHECK(self.tabModel.browserState); + [self.tabModel restoreSessionWindow:self.closedSessionWindow + forInitialRestore:NO]; + + self.closedSessionWindow = nil; + [self removeEntriesFromTabRestoreService]; + self.syncedClosedTabsCount = 0; + // Unmark all images for deletion since they are now active tabs again. + ios::ChromeBrowserState* browserState = self.tabModel.browserState; + [SnapshotCacheFactory::GetForBrowserState(browserState) unmarkAllImages]; } - (void)discardSavedClosedItems { if (!self.closedSessionWindow) return; - self.closedTabsCount = 0; + self.syncedClosedTabsCount = 0; self.closedSessionWindow = nil; // Delete all marked images from the cache. DCHECK(self.tabModel.browserState); @@ -418,7 +427,7 @@ } } -// Removes |self.closedTabsCount| most recent entries from the +// Removes |self.syncedClosedTabsCount| most recent entries from the // TabRestoreService. - (void)removeEntriesFromTabRestoreService { if (!self.tabRestoreService) { @@ -427,7 +436,7 @@ std::vector<SessionID> identifiers; auto iter = self.tabRestoreService->entries().begin(); auto end = self.tabRestoreService->entries().end(); - for (int i = 0; i < self.closedTabsCount && iter != end; i++) { + for (int i = 0; i < self.syncedClosedTabsCount && iter != end; i++) { identifiers.push_back(iter->get()->id); iter++; } @@ -436,33 +445,6 @@ } } -// Restores the saved |self.closedSessionWindow| and updates the -// TabRestoreService. -- (void)restoreClosedSessionWindowAndUpdateTabRestoreService { - if (!self.closedSessionWindow) - return; - DCHECK(self.tabModel.browserState); - // Don't trigger the initial load for these restored WebStates since the - // number of WKWebViews is unbounded and may lead to an OOM crash. - WebStateListWebUsageEnabler* webUsageEnabler = - WebStateListWebUsageEnablerFactory::GetInstance()->GetForBrowserState( - self.tabModel.browserState); - webUsageEnabler->SetTriggersInitialLoad(false); - web::WebState::CreateParams createParams(self.tabModel.browserState); - DeserializeWebStateList( - self.webStateList, self.closedSessionWindow, - base::BindRepeating(&web::WebState::CreateWithStorageSession, - createParams)); - webUsageEnabler->SetTriggersInitialLoad(true); - - self.closedSessionWindow = nil; - [self removeEntriesFromTabRestoreService]; - self.closedTabsCount = 0; - // Unmark all images for deletion since they are now active tabs again. - ios::ChromeBrowserState* browserState = self.tabModel.browserState; - [SnapshotCacheFactory::GetForBrowserState(browserState) unmarkAllImages]; -} - // Returns a SnapshotCache for the current BrowserState. - (SnapshotCache*)snapshotCache { if (!_tabModel.browserState)
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm index 51dd99b0..b95fd4b 100644 --- a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm +++ b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm
@@ -8,19 +8,29 @@ #include <memory> #include "base/mac/foundation_util.h" +#include "components/sessions/core/live_tab.h" +#include "components/sessions/core/tab_restore_service.h" +#include "components/sessions/core/tab_restore_service_helper.h" #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #include "ios/chrome/browser/chrome_url_constants.h" +#import "ios/chrome/browser/main/test_browser.h" #import "ios/chrome/browser/ntp/new_tab_page_tab_helper.h" #import "ios/chrome/browser/ntp/new_tab_page_tab_helper_delegate.h" +#include "ios/chrome/browser/sessions/session_restoration_browser_agent.h" +#import "ios/chrome/browser/sessions/test_session_service.h" +#import "ios/chrome/browser/snapshots/snapshot_tab_helper.h" #import "ios/chrome/browser/tabs/tab_model.h" +#import "ios/chrome/browser/tabs/tab_model_closing_web_state_observer.h" #import "ios/chrome/browser/ui/tab_grid/grid/grid_commands.h" #import "ios/chrome/browser/ui/tab_grid/grid/grid_consumer.h" #import "ios/chrome/browser/ui/tab_grid/grid/grid_item.h" +#import "ios/chrome/browser/web/page_placeholder_tab_helper.h" #import "ios/chrome/browser/web/tab_id_tab_helper.h" #include "ios/chrome/browser/web_state_list/fake_web_state_list_delegate.h" #include "ios/chrome/browser/web_state_list/web_state_list.h" #import "ios/chrome/browser/web_state_list/web_state_opener.h" #include "ios/web/common/features.h" +#import "ios/web/public/test/fakes/test_navigation_manager.h" #import "ios/web/public/test/fakes/test_web_state.h" #include "ios/web/public/test/web_task_environment.h" #import "ios/web/public/web_client.h" @@ -34,6 +44,104 @@ #error "This file requires ARC support." #endif +namespace sessions { +class TabRestoreServiceObserver; +class LiveTabContext; +} + +namespace { + +// A Fake restore service that just store and returns tabs. +class FakeTabRestoreService : public sessions::TabRestoreService { + public: + void AddObserver(sessions::TabRestoreServiceObserver* observer) override { + NOTREACHED(); + } + + void RemoveObserver(sessions::TabRestoreServiceObserver* observer) override { + NOTREACHED(); + } + + void CreateHistoricalTab(sessions::LiveTab* live_tab, int index) override { + auto tab = std::make_unique<Tab>(); + int entry_count = + live_tab->IsInitialBlankNavigation() ? 0 : live_tab->GetEntryCount(); + tab->navigations.resize(static_cast<int>(entry_count)); + for (int i = 0; i < entry_count; ++i) { + sessions::SerializedNavigationEntry entry = live_tab->GetEntryAtIndex(i); + tab->navigations[i] = entry; + } + entries_.push_front(std::move(tab)); + } + + void BrowserClosing(sessions::LiveTabContext* context) override { + NOTREACHED(); + } + + void BrowserClosed(sessions::LiveTabContext* context) override { + NOTREACHED(); + } + + void ClearEntries() override { NOTREACHED(); } + + void DeleteNavigationEntries(const DeletionPredicate& predicate) override { + NOTREACHED(); + } + + const Entries& entries() const override { return entries_; } + + std::vector<sessions::LiveTab*> RestoreMostRecentEntry( + sessions::LiveTabContext* context) override { + NOTREACHED(); + return std::vector<sessions::LiveTab*>(); + } + + std::unique_ptr<Tab> RemoveTabEntryById(SessionID session_id) override { + Entries::iterator it = GetEntryIteratorById(session_id); + if (it == entries_.end()) { + return nullptr; + } + auto tab = std::unique_ptr<Tab>(static_cast<Tab*>(it->release())); + entries_.erase(it); + return tab; + } + + std::vector<sessions::LiveTab*> RestoreEntryById( + sessions::LiveTabContext* context, + SessionID session_id, + WindowOpenDisposition disposition) override { + NOTREACHED(); + return std::vector<sessions::LiveTab*>(); + } + + void LoadTabsFromLastSession() override { NOTREACHED(); } + + bool IsLoaded() const override { + NOTREACHED(); + return false; + } + + void DeleteLastSession() override { NOTREACHED(); } + + bool IsRestoring() const override { + NOTREACHED(); + return false; + } + + private: + // Returns an iterator to the entry with id |session_id|. + Entries::iterator GetEntryIteratorById(SessionID session_id) { + for (auto i = entries_.begin(); i != entries_.end(); ++i) { + if ((*i)->id == session_id) { + return i; + } + } + return entries_.end(); + } + Entries entries_; +}; +} // namespace + // Test object that conforms to GridConsumer and exposes inner state for test // verification. @interface FakeConsumer : NSObject<GridConsumer> @@ -83,11 +191,11 @@ @end -// Fake WebStateList delegate that attaches the tab ID tab helper. -class TabIdFakeWebStateListDelegate : public FakeWebStateListDelegate { +// Fake WebStateList delegate that attaches the required tab helper. +class TabHelperFakeWebStateListDelegate : public FakeWebStateListDelegate { public: - TabIdFakeWebStateListDelegate() {} - ~TabIdFakeWebStateListDelegate() override {} + TabHelperFakeWebStateListDelegate() {} + ~TabHelperFakeWebStateListDelegate() override {} // WebStateListDelegate implementation. void WillAddWebState(web::WebState* web_state) override { @@ -95,6 +203,7 @@ // Create NTPTabHelper to ensure VisibleURL is set to kChromeUINewTabURL. id delegate = OCMProtocolMock(@protocol(NewTabPageTabHelperDelegate)); NewTabPageTabHelper::CreateForWebState(web_state, delegate); + PagePlaceholderTabHelper::CreateForWebState(web_state); } }; @@ -107,18 +216,29 @@ PlatformTest::SetUp(); browser_state_ = TestChromeBrowserState::Builder().Build(); web_state_list_delegate_ = - std::make_unique<TabIdFakeWebStateListDelegate>(); + std::make_unique<TabHelperFakeWebStateListDelegate>(); web_state_list_ = std::make_unique<WebStateList>(web_state_list_delegate_.get()); + browser_ = std::make_unique<TestBrowser>(browser_state_.get(), + web_state_list_.get()); + tab_restore_service_ = std::make_unique<FakeTabRestoreService>(); tab_model_ = OCMClassMock([TabModel class]); OCMStub([tab_model_ webStateList]).andReturn(web_state_list_.get()); OCMStub([tab_model_ browserState]).andReturn(browser_state_.get()); + tab_model_closing_web_state_observer_ = + [[TabModelClosingWebStateObserver alloc] + initWithTabModel:tab_model_ + restoreService:tab_restore_service_.get()]; + tab_model_closing_web_state_observer_bridge_ = + std::make_unique<WebStateListObserverBridge>( + tab_model_closing_web_state_observer_); + web_state_list_->AddObserver( + tab_model_closing_web_state_observer_bridge_.get()); NSMutableSet<NSString*>* identifiers = [[NSMutableSet alloc] init]; // Insert some web states. for (int i = 0; i < 3; i++) { - auto web_state = std::make_unique<web::TestWebState>(); - TabIdTabHelper::CreateForWebState(web_state.get()); + auto web_state = CreateTestWebStateWithURL(GURL("https://foo/bar")); NSString* identifier = TabIdTabHelper::FromWebState(web_state.get())->tab_id(); // Tab IDs should be unique. @@ -136,18 +256,63 @@ consumer_ = [[FakeConsumer alloc] init]; mediator_ = [[TabGridMediator alloc] initWithConsumer:consumer_]; mediator_.tabModel = tab_model_; + mediator_.tabRestoreService = tab_restore_service_.get(); + } + + // Creates a TestWebState with a navigation history containing exactly only + // the given |url|. + std::unique_ptr<web::TestWebState> CreateTestWebStateWithURL( + const GURL& url) { + auto web_state = std::make_unique<web::TestWebState>(); + auto navigation_manager = std::make_unique<web::TestNavigationManager>(); + navigation_manager->AddItem(url, ui::PAGE_TRANSITION_LINK); + navigation_manager->SetLastCommittedItem( + navigation_manager->GetItemAtIndex(0)); + web_state->SetNavigationManager(std::move(navigation_manager)); + web_state->SetBrowserState(browser_state_.get()); + TabIdTabHelper::CreateForWebState(web_state.get()); + SnapshotTabHelper::CreateForWebState(web_state.get(), + [[NSUUID UUID] UUIDString]); + return web_state; + } + + void TearDown() override { + web_state_list_->RemoveObserver( + tab_model_closing_web_state_observer_bridge_.get()); + PlatformTest::TearDown(); + } + + // Prepare the mock method to restore the tabs. + void PrepareForRestoration() { + [[[tab_model_ expect] andDo:^(NSInvocation* inv) { + SessionWindowIOS* sessionWindow; + [inv retainArguments]; + [inv getArgument:&sessionWindow atIndex:2]; + TestSessionService* test_session_service = + [[TestSessionService alloc] init]; + SessionRestorationBrowserAgent::CreateForBrowser(browser_.get(), + test_session_service); + SessionRestorationBrowserAgent* session_restoration_agent = + SessionRestorationBrowserAgent::FromBrowser(browser_.get()); + session_restoration_agent->RestoreSessionWindow(sessionWindow); + }] restoreSessionWindow:[OCMArg any] forInitialRestore:NO]; } protected: web::WebTaskEnvironment task_environment_; std::unique_ptr<ios::ChromeBrowserState> browser_state_; - std::unique_ptr<TabIdFakeWebStateListDelegate> web_state_list_delegate_; + std::unique_ptr<TabHelperFakeWebStateListDelegate> web_state_list_delegate_; std::unique_ptr<WebStateList> web_state_list_; + std::unique_ptr<FakeTabRestoreService> tab_restore_service_; id tab_model_; FakeConsumer* consumer_; TabGridMediator* mediator_; NSSet<NSString*>* original_identifiers_; NSString* original_selected_identifier_; + std::unique_ptr<Browser> browser_; + TabModelClosingWebStateObserver* tab_model_closing_web_state_observer_; + std::unique_ptr<WebStateListObserverBridge> + tab_model_closing_web_state_observer_bridge_; }; #pragma mark - Consumer tests @@ -269,6 +434,7 @@ // Tests that the |web_state_list_| is not restored to 3 items when // |-undoCloseAllItems| is called after |-discardSavedClosedItems| is called. TEST_F(TabGridMediatorTest, DiscardSavedClosedItemsCommand) { + PrepareForRestoration(); // Previously there were 3 items. [mediator_ saveAndCloseAllItems]; [mediator_ discardSavedClosedItems]; @@ -280,6 +446,7 @@ // Tests that the |web_state_list_| is restored to 3 items when // |-undoCloseAllItems| is called. TEST_F(TabGridMediatorTest, UndoCloseAllItemsCommand) { + PrepareForRestoration(); // Previously there were 3 items. [mediator_ saveAndCloseAllItems]; [mediator_ undoCloseAllItems]; @@ -290,6 +457,54 @@ EXPECT_TRUE([original_identifiers_ containsObject:consumer_.items[2]]); } +// Tests that the |web_state_list_| is restored to 3 items when +// |-undoCloseAllItems| is called. +TEST_F(TabGridMediatorTest, UndoCloseAllItemsCommandWithNTP) { + PrepareForRestoration(); + // Previously there were 3 items. + [mediator_ saveAndCloseAllItems]; + // The three tabs created in the SetUp should be passed to the restore + // service. + EXPECT_EQ(3UL, tab_restore_service_->entries().size()); + std::set<SessionID::id_type> ids; + for (auto& entry : tab_restore_service_->entries()) { + ids.insert(entry->id.id()); + } + EXPECT_EQ(3UL, ids.size()); + // There should be no tabs in the WebStateList. + EXPECT_EQ(0, web_state_list_->count()); + EXPECT_EQ(0UL, consumer_.items.count); + + // Add three new tabs. + auto web_state1 = CreateTestWebStateWithURL(GURL("https://test/url1")); + web_state_list_->InsertWebState(0, std::move(web_state1), + WebStateList::INSERT_FORCE_INDEX, + WebStateOpener()); + // Second tab is a NTP. + auto web_state2 = CreateTestWebStateWithURL(GURL(kChromeUINewTabURL)); + web_state_list_->InsertWebState(1, std::move(web_state2), + WebStateList::INSERT_FORCE_INDEX, + WebStateOpener()); + auto web_state3 = CreateTestWebStateWithURL(GURL("https://test/url2")); + web_state_list_->InsertWebState(2, std::move(web_state3), + WebStateList::INSERT_FORCE_INDEX, + WebStateOpener()); + web_state_list_->ActivateWebStateAt(0); + + [mediator_ saveAndCloseAllItems]; + // The NTP should not be saved. + EXPECT_EQ(5UL, tab_restore_service_->entries().size()); + EXPECT_EQ(0, web_state_list_->count()); + EXPECT_EQ(0UL, consumer_.items.count); + [mediator_ undoCloseAllItems]; + EXPECT_EQ(3UL, tab_restore_service_->entries().size()); + EXPECT_EQ(3UL, consumer_.items.count); + // Check the session entries were not changed. + for (auto& entry : tab_restore_service_->entries()) { + EXPECT_EQ(1UL, ids.count(entry->id.id())); + } +} + // Tests that when |-addNewItem| is called, the |web_state_list_| count is // incremented, the |active_index| is at the end of |web_state_list_|, the new // web state has no opener, and the URL is the New Tab Page.
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm index 54ba192c..8c038c9 100644 --- a/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm +++ b/ios/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm
@@ -558,6 +558,11 @@ if (!self.viewVisible || !animated) { [self.scrollView setContentOffset:targetOffset animated:NO]; self.currentPage = targetPage; + // Important updates (e.g., button configurations, incognito visibility) are + // made at the end of scrolling animations after |self.currentPage| is set. + // Since this codepath has no animations, updates must be called manually. + [self broadcastIncognitoContentVisibility]; + [self configureButtonsForActiveAndCurrentPage]; } else { // Only set |scrollViewAnimatingContentOffset| to YES if there's an actual // change in the contentOffset, as |-scrollViewDidEndScrollingAnimation:| is @@ -871,8 +876,13 @@ gridViewController == nil ? NO : !gridViewController.gridEmpty; self.closeAllButton.title = l10n_util::GetNSString(IDS_IOS_TAB_GRID_CLOSE_ALL_BUTTON); - self.closeAllButton.accessibilityIdentifier = - kTabGridCloseAllButtonIdentifier; + // Setting the |accessibilityIdentifier| seems to trigger layout, which causes + // an infinite loop. + if (self.closeAllButton.accessibilityIdentifier != + kTabGridCloseAllButtonIdentifier) { + self.closeAllButton.accessibilityIdentifier = + kTabGridCloseAllButtonIdentifier; + } } // Shows the two toolbars and the floating button. Suitable for use in
diff --git a/ios/chrome/browser/ui/toolbar/BUILD.gn b/ios/chrome/browser/ui/toolbar/BUILD.gn index 3989fa2..00110cd1 100644 --- a/ios/chrome/browser/ui/toolbar/BUILD.gn +++ b/ios/chrome/browser/ui/toolbar/BUILD.gn
@@ -191,9 +191,7 @@ ] testonly = true - sources = [ - "adaptive_toolbar_app_interface.h", - ] + sources = [ "adaptive_toolbar_app_interface.h" ] } source_set("eg2_tests") {
diff --git a/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn b/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn index eb17022..c34e12f 100644 --- a/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn +++ b/ios/chrome/browser/ui/toolbar/buttons/resources/BUILD.gn
@@ -5,15 +5,11 @@ import("//build/config/ios/asset_catalog.gni") colorset("omnibox_incognito_background_color") { - sources = [ - "omnibox_incognito_background_color.colorset/Contents.json", - ] + sources = [ "omnibox_incognito_background_color.colorset/Contents.json" ] } colorset("tab_toolbar_button_color_highlighted") { - sources = [ - "tab_toolbar_button_color_highlighted.colorset/Contents.json", - ] + sources = [ "tab_toolbar_button_color_highlighted.colorset/Contents.json" ] } colorset("tab_toolbar_button_color_highlighted_incognito") { @@ -23,15 +19,11 @@ } colorset("tab_toolbar_button_halo_color") { - sources = [ - "tab_toolbar_button_halo_color.colorset/Contents.json", - ] + sources = [ "tab_toolbar_button_halo_color.colorset/Contents.json" ] } colorset("tab_toolbar_button_halo_color_incognito") { - sources = [ - "tab_toolbar_button_halo_color_incognito.colorset/Contents.json", - ] + sources = [ "tab_toolbar_button_halo_color_incognito.colorset/Contents.json" ] } imageset("toolbar_new_tab_page") {
diff --git a/ios/chrome/browser/ui/toolbar/public/BUILD.gn b/ios/chrome/browser/ui/toolbar/public/BUILD.gn index d776d5f..bf7c9cb 100644 --- a/ios/chrome/browser/ui/toolbar/public/BUILD.gn +++ b/ios/chrome/browser/ui/toolbar/public/BUILD.gn
@@ -23,9 +23,7 @@ "//ios/chrome/browser/ui/util", "//ios/public/provider/chrome/browser/voice", ] - public_deps = [ - ":constants", - ] + public_deps = [ ":constants" ] } source_set("constants") { @@ -41,8 +39,6 @@ "features.h", "features.mm", ] - deps = [ - "//base", - ] + deps = [ "//base" ] configs += [ "//build/config/compiler:enable_arc" ] }
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 146b37d..f2f8bbc 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -286,7 +286,6 @@ "//ios/chrome/browser/ui/settings/password:unit_tests", "//ios/chrome/browser/ui/settings/sync:unit_tests", "//ios/chrome/browser/ui/side_swipe:unit_tests", - "//ios/chrome/browser/ui/snackbar:unit_tests", "//ios/chrome/browser/ui/tab_grid:unit_tests", "//ios/chrome/browser/ui/tab_grid/grid:unit_tests", "//ios/chrome/browser/ui/table_view:unit_tests",
diff --git a/ios/chrome/test/app/signin_test_util.mm b/ios/chrome/test/app/signin_test_util.mm index 04a27daf..1843072d 100644 --- a/ios/chrome/test/app/signin_test_util.mm +++ b/ios/chrome/test/app/signin_test_util.mm
@@ -104,7 +104,8 @@ AuthenticationService* authentication_service = AuthenticationServiceFactory::GetForBrowserState(browser_state); if (authentication_service->IsAuthenticated()) { - authentication_service->SignOut(signin_metrics::SIGNOUT_TEST, nil); + authentication_service->SignOut(signin_metrics::SIGNOUT_TEST, + /*force_clear_browsing_data=*/false, nil); } // Clear last signed in user preference.
diff --git a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.h b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.h index 2d4311cd..92e22afb 100644 --- a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.h +++ b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.h
@@ -70,6 +70,9 @@ // Sets up the mock methods for integration tests. void SetUpForIntegrationTests(); + // Adds the managed identities given their name. + void AddManagedIdentities(NSArray* identitiesName); + // Adds the identities given their name. void AddIdentities(NSArray* identitiesNames);
diff --git a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm index a079e39a..526d94f 100644 --- a/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm +++ b/ios/public/provider/chrome/browser/signin/fake_chrome_identity_service.mm
@@ -91,6 +91,7 @@ @end namespace ios { +NSString* const kManagedIdentityEmailFormat = @"%@@google.com"; NSString* const kIdentityEmailFormat = @"%@@gmail.com"; NSString* const kIdentityGaiaIDFormat = @"%@ID"; @@ -262,6 +263,17 @@ void FakeChromeIdentityService::SetUpForIntegrationTests() {} +void FakeChromeIdentityService::AddManagedIdentities(NSArray* identitiesNames) { + for (NSString* name in identitiesNames) { + NSString* email = + [NSString stringWithFormat:kManagedIdentityEmailFormat, name]; + NSString* gaiaID = [NSString stringWithFormat:kIdentityGaiaIDFormat, name]; + [identities_ addObject:[FakeChromeIdentity identityWithEmail:email + gaiaID:gaiaID + name:name]]; + } +} + void FakeChromeIdentityService::AddIdentities(NSArray* identitiesNames) { for (NSString* name in identitiesNames) { NSString* email = [NSString stringWithFormat:kIdentityEmailFormat, name];
diff --git a/ios/showcase/badges/BUILD.gn b/ios/showcase/badges/BUILD.gn index 1916f14e8..4b8cd26b 100644 --- a/ios/showcase/badges/BUILD.gn +++ b/ios/showcase/badges/BUILD.gn
@@ -35,9 +35,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ - "sc_badge_egtest.mm", - ] + sources = [ "sc_badge_egtest.mm" ] deps = [ ":badges_constants", "//ios/chrome/browser/infobars:badge_public", @@ -53,9 +51,7 @@ source_set("eg_tests") { defines = [ "CHROME_EARL_GREY_1" ] testonly = true - sources = [ - "sc_badge_egtest.mm", - ] + sources = [ "sc_badge_egtest.mm" ] deps = [ ":badges_constants", "//ios/chrome/browser/infobars:badge",
diff --git a/ios/showcase/bubble/BUILD.gn b/ios/showcase/bubble/BUILD.gn index d4990c11..104924ec 100644 --- a/ios/showcase/bubble/BUILD.gn +++ b/ios/showcase/bubble/BUILD.gn
@@ -22,9 +22,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ - "sc_bubble_egtest.mm", - ] + sources = [ "sc_bubble_egtest.mm" ] deps = [ "//ios/chrome/test/earl_grey:eg_test_support+eg2", "//ios/showcase/test:eg2_test", @@ -37,9 +35,7 @@ source_set("eg_tests") { testonly = true defines = [ "CHROME_EARL_GREY_1" ] - sources = [ - "sc_bubble_egtest.mm", - ] + sources = [ "sc_bubble_egtest.mm" ] deps = [ "//ios/chrome/browser/ui/bubble", "//ios/chrome/test/earl_grey:test_support",
diff --git a/ios/showcase/common/BUILD.gn b/ios/showcase/common/BUILD.gn index dac7a08..6034809 100644 --- a/ios/showcase/common/BUILD.gn +++ b/ios/showcase/common/BUILD.gn
@@ -9,9 +9,7 @@ "protocol_alerter.h", "protocol_alerter.mm", ] - deps = [ - "//base", - ] + deps = [ "//base" ] libs = [ "UIKit.framework" ] configs += [ "//build/config/compiler:enable_arc" ] }
diff --git a/ios/showcase/core/BUILD.gn b/ios/showcase/core/BUILD.gn index 42360730..716385b6 100644 --- a/ios/showcase/core/BUILD.gn +++ b/ios/showcase/core/BUILD.gn
@@ -26,9 +26,7 @@ source_set("main_eg2") { testonly = true - sources = [ - "main.mm", - ] + sources = [ "main.mm" ] deps = [ ":core", "//base", @@ -46,9 +44,7 @@ } source_set("main") { - sources = [ - "main.mm", - ] + sources = [ "main.mm" ] deps = [ ":core", "//base", @@ -68,9 +64,7 @@ source_set("eg_tests") { defines = [ "CHROME_EARL_GREY_1" ] testonly = true - sources = [ - "showcase_egtest.mm", - ] + sources = [ "showcase_egtest.mm" ] deps = [ "//ios/showcase/test", "//ios/testing/earl_grey:earl_grey_support", @@ -86,9 +80,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ - "showcase_egtest.mm", - ] + sources = [ "showcase_egtest.mm" ] deps = [ "//ios/chrome/test/earl_grey:eg_test_support+eg2", "//ios/showcase/test:eg2_test",
diff --git a/ios/showcase/core/resources/BUILD.gn b/ios/showcase/core/resources/BUILD.gn index d34961c..c5dae79 100644 --- a/ios/showcase/core/resources/BUILD.gn +++ b/ios/showcase/core/resources/BUILD.gn
@@ -30,7 +30,5 @@ "Icon-87.png", "Sample-screenshot-portrait.png", ] - outputs = [ - "{{bundle_resources_dir}}/{{source_file_part}}", - ] + outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] }
diff --git a/ios/showcase/test/BUILD.gn b/ios/showcase/test/BUILD.gn index 7237394..bfff47ad 100644 --- a/ios/showcase/test/BUILD.gn +++ b/ios/showcase/test/BUILD.gn
@@ -19,9 +19,7 @@ "//ios/third_party/earl_grey:earl_grey+link", "//testing/gtest", ] - public_deps = [ - "//build/config/ios:xctest", - ] + public_deps = [ "//build/config/ios:xctest" ] configs += [ "//build/config/compiler:enable_arc" ] } @@ -54,9 +52,7 @@ ] testonly = true - sources = [ - "showcase_test_case_app_interface.h", - ] + sources = [ "showcase_test_case_app_interface.h" ] deps = [ "//base",
diff --git a/ios/showcase/text_badge_view/BUILD.gn b/ios/showcase/text_badge_view/BUILD.gn index 07d77b34c..72a2cd3 100644 --- a/ios/showcase/text_badge_view/BUILD.gn +++ b/ios/showcase/text_badge_view/BUILD.gn
@@ -3,9 +3,7 @@ "sc_text_badge_view_controller.h", "sc_text_badge_view_controller.mm", ] - deps = [ - "//ios/chrome/browser/ui/reading_list:reading_list_ui", - ] + deps = [ "//ios/chrome/browser/ui/reading_list:reading_list_ui" ] libs = [ "UIKit.framework" ] configs += [ "//build/config/compiler:enable_arc" ] } @@ -17,9 +15,7 @@ "//build/config/ios:xctest_config", ] testonly = true - sources = [ - "sc_text_badge_view_egtest.mm", - ] + sources = [ "sc_text_badge_view_egtest.mm" ] deps = [ "//ios/chrome/test/earl_grey:eg_test_support+eg2", "//ios/showcase/test:eg2_test", @@ -32,9 +28,7 @@ source_set("eg_tests") { testonly = true defines = [ "CHROME_EARL_GREY_1" ] - sources = [ - "sc_text_badge_view_egtest.mm", - ] + sources = [ "sc_text_badge_view_egtest.mm" ] deps = [ "//ios/chrome/browser/ui/reading_list:reading_list_ui", "//ios/chrome/test/earl_grey:test_support",
diff --git a/ios/third_party/earl_grey2/BUILD.gn b/ios/third_party/earl_grey2/BUILD.gn index 68a4aeb..844bd81 100644 --- a/ios/third_party/earl_grey2/BUILD.gn +++ b/ios/third_party/earl_grey2/BUILD.gn
@@ -196,13 +196,9 @@ "src/UILib/VisibilityChecker/GREYVisibilityChecker.m", ] - deps = [ - ":common_lib", - ] + deps = [ ":common_lib" ] - public_deps = [ - ":ui_lib_shared_headers", - ] + public_deps = [ ":ui_lib_shared_headers" ] public_configs = [ ":config" ] @@ -391,9 +387,7 @@ "//ios/third_party/webkit", ] - public_deps = [ - ":app_framework_shared_headers", - ] + public_deps = [ ":app_framework_shared_headers" ] public_headers = [ "src/AppFramework/EarlGreyApp/EarlGreyApp.h" ]
diff --git a/ios/web/navigation/navigation_manager_impl.mm b/ios/web/navigation/navigation_manager_impl.mm index d16eb3a3..9dc5c65 100644 --- a/ios/web/navigation/navigation_manager_impl.mm +++ b/ios/web/navigation/navigation_manager_impl.mm
@@ -387,20 +387,6 @@ reload_url = last_non_redirect_item->GetVirtualURL(); } - // Reload using a client-side redirect URL to create a new entry in - // WKBackForwardList for the new user agent type. This hack is not needed for - // LegacyNavigationManagerImpl which manages its own history entries. - GURL target_url; - // If current entry is a redirect URL, reload the original target URL. This - // can happen on a slow connection when user taps on Request Desktop Site - // before the previous redirect has finished (https://crbug.com/833958). - if (wk_navigation_util::IsRestoreSessionUrl(reload_url) && - wk_navigation_util::ExtractTargetURL(reload_url, &target_url)) { - reload_url = target_url; - } - DCHECK(!wk_navigation_util::IsRestoreSessionUrl(reload_url)); - reload_url = wk_navigation_util::CreateRedirectUrl(reload_url); - WebLoadParams params(reload_url); if (last_non_redirect_item->GetVirtualURL() != reload_url) params.virtual_url = last_non_redirect_item->GetVirtualURL();
diff --git a/ios/web/navigation/navigation_manager_impl_unittest.mm b/ios/web/navigation/navigation_manager_impl_unittest.mm index b13b069..d7d6034 100644 --- a/ios/web/navigation/navigation_manager_impl_unittest.mm +++ b/ios/web/navigation/navigation_manager_impl_unittest.mm
@@ -1574,10 +1574,7 @@ NavigationItem* pending_item = navigation_manager()->GetPendingItemInCurrentOrRestoredSession(); - GURL reload_target_url; - ASSERT_TRUE(wk_navigation_util::ExtractTargetURL(pending_item->GetURL(), - &reload_target_url)); - EXPECT_EQ(url, reload_target_url); + EXPECT_EQ(url, pending_item->GetURL()); EXPECT_EQ(virtual_url, pending_item->GetVirtualURL()); EXPECT_EQ(UserAgentType::DESKTOP, pending_item->GetUserAgentType()); } @@ -1603,10 +1600,7 @@ NavigationItem* pending_item = navigation_manager()->GetPendingItemInCurrentOrRestoredSession(); - GURL reload_target_url; - ASSERT_TRUE(wk_navigation_util::ExtractTargetURL(pending_item->GetURL(), - &reload_target_url)); - EXPECT_EQ("http://www.1.com/", reload_target_url.spec()); + EXPECT_EQ(url, pending_item->GetURL()); EXPECT_EQ(virtual_url, pending_item->GetVirtualURL()); EXPECT_EQ(UserAgentType::DESKTOP, pending_item->GetUserAgentType()); }
diff --git a/ios/web/navigation/wk_based_navigation_manager_impl.mm b/ios/web/navigation/wk_based_navigation_manager_impl.mm index f30cf75..dfd54d38 100644 --- a/ios/web/navigation/wk_based_navigation_manager_impl.mm +++ b/ios/web/navigation/wk_based_navigation_manager_impl.mm
@@ -230,8 +230,17 @@ NavigationItemImpl* current_item = GetNavigationItemFromWKItem(current_wk_item); if (!current_item) { + current_item = pending_item_.get(); SetNavigationItemInWKItem(current_wk_item, std::move(pending_item_)); } + if (user_agent_override_option == UserAgentOverrideOption::DESKTOP) { + current_item->SetUserAgentType(UserAgentType::DESKTOP, + /*update_inherited_user_agent =*/true); + } else if (user_agent_override_option == UserAgentOverrideOption::MOBILE) { + current_item->SetUserAgentType(UserAgentType::MOBILE, + /*update_inherited_user_agent =*/true); + } + pending_item_.reset(); } }
diff --git a/net/disk_cache/simple/simple_backend_impl.cc b/net/disk_cache/simple/simple_backend_impl.cc index d52155e..6ab5f58 100644 --- a/net/disk_cache/simple/simple_backend_impl.cc +++ b/net/disk_cache/simple/simple_backend_impl.cc
@@ -179,7 +179,7 @@ } // namespace const base::Feature SimpleBackendImpl::kPrioritizedSimpleCacheTasks{ - "PrioritizedSimpleCacheTasks", base::FEATURE_DISABLED_BY_DEFAULT}; + "PrioritizedSimpleCacheTasks", base::FEATURE_ENABLED_BY_DEFAULT}; // Static function which is called by base::trace_event::EstimateMemoryUsage() // to estimate the memory of SimpleEntryImpl* type.
diff --git a/printing/BUILD.gn b/printing/BUILD.gn index 1491e10..bd20652 100644 --- a/printing/BUILD.gn +++ b/printing/BUILD.gn
@@ -14,6 +14,9 @@ if (is_android) { import("//build/config/android/rules.gni") } +if (use_cups && is_chromeos) { + import("//printing/backend/tools/code_generator.gni") +} if ((enable_basic_printing && is_win) || enable_print_preview) { # Windows basic printing or print preview requires pdf enabled. @@ -25,27 +28,16 @@ # Several targets want to include this header file. We separate it out # here so multiple targets can depend on it. source_set("printing_export") { - sources = [ - "printing_export.h", - ] + sources = [ "printing_export.h" ] } if (use_cups && is_chromeos) { - attributes_path = "backend/tools/ipp-registrations-2.csv" ipp_handler_map_path = "$target_gen_dir/backend/ipp_handler_map.cc" - action("ipp_code_generate") { - script = "backend/tools/code_generator.py" - inputs = [ - attributes_path, - ] - outputs = [ - ipp_handler_map_path, - ] - args = [ - "--attributes-file=" + rebase_path(attributes_path, root_build_dir), - "--ipp-handler-map=" + rebase_path(ipp_handler_map_path, root_build_dir), - ] + ipp_code_generate("ipp_handlers_generate") { + outputs = [ ipp_handler_map_path ] + args = [ "--ipp-handler-map=" + + rebase_path(ipp_handler_map_path, root_build_dir) ] } } @@ -105,9 +97,7 @@ cflags = [] defines = [ "PRINTING_IMPLEMENTATION" ] - public_deps = [ - "//printing/buildflags", - ] + public_deps = [ "//printing/buildflags" ] deps = [ ":printing_export", "//base", @@ -199,7 +189,7 @@ defines += [ "PRINT_BACKEND_AVAILABLE" ] if (is_chromeos) { - deps += [ ":ipp_code_generate" ] + deps += [ ":ipp_handlers_generate" ] sources += [ "backend/cups_connection.cc", @@ -383,9 +373,7 @@ if (is_android) { generate_jni("printing_jni_headers") { - sources = [ - "android/java/src/org/chromium/printing/PrintingContext.java", - ] + sources = [ "android/java/src/org/chromium/printing/PrintingContext.java" ] } android_library("printing_java") {
diff --git a/printing/backend/cups_ipp_util_unittest.cc b/printing/backend/cups_ipp_util_unittest.cc index d2d950a9..6fd52da 100644 --- a/printing/backend/cups_ipp_util_unittest.cc +++ b/printing/backend/cups_ipp_util_unittest.cc
@@ -321,8 +321,8 @@ printer_->SetSupportedOptions( "job-creation-attributes", MakeStringCollection( - ipp_, {"copies", "ipp-attribute-fidelity", "finishings", "job-name", - "output-bin", "print-quality"})); + ipp_, {"copies", "confirmation-sheet-print", "finishings", + "job-message-to-operator", "output-bin", "print-quality"})); printer_->SetSupportedOptions("finishings", MakeIntCollection(ipp_, {3, 7, 10})); printer_->SetSupportedOptions( @@ -334,13 +334,13 @@ CapsAndDefaultsFromPrinter(*printer_, &caps); EXPECT_EQ(6u, caps.advanced_capabilities.size()); - EXPECT_EQ("ipp-attribute-fidelity", caps.advanced_capabilities[0].name); + EXPECT_EQ("confirmation-sheet-print", caps.advanced_capabilities[0].name); EXPECT_EQ(base::Value::Type::BOOLEAN, caps.advanced_capabilities[0].type); EXPECT_EQ("finishings/7", caps.advanced_capabilities[1].name); EXPECT_EQ(base::Value::Type::BOOLEAN, caps.advanced_capabilities[1].type); EXPECT_EQ("finishings/10", caps.advanced_capabilities[2].name); EXPECT_EQ(base::Value::Type::BOOLEAN, caps.advanced_capabilities[2].type); - EXPECT_EQ("job-name", caps.advanced_capabilities[3].name); + EXPECT_EQ("job-message-to-operator", caps.advanced_capabilities[3].name); EXPECT_EQ(base::Value::Type::STRING, caps.advanced_capabilities[3].type); EXPECT_EQ("output-bin", caps.advanced_capabilities[4].name); EXPECT_EQ(2u, caps.advanced_capabilities[4].values.size());
diff --git a/printing/backend/tools/README.md b/printing/backend/tools/README.md index dbb792c..65bcf646 100644 --- a/printing/backend/tools/README.md +++ b/printing/backend/tools/README.md
@@ -1,9 +1,13 @@ # IPP Attribute code generation -This directory contains tools to generate mapping from IPP attribute name to a -handler appropriate for its type. The authoritative source for -[ipp-registrations-2.csv](ipp-registrations-2.csv) is the +This directory contains tools to handle IPP attributes based on data provided in +IPP registrations. The authoritative source for CSVs in this directory is the [registrations page hosted by IANA](https://www.iana.org/assignments/ipp-registrations/ipp-registrations.xhtml) -([direct link to Attributes CSV](https://www.iana.org/assignments/ipp-registrations/ipp-registrations-2.csv)). +([direct link to Attributes CSV](https://www.iana.org/assignments/ipp-registrations/ipp-registrations-2.csv), +[direct link to Keyword Values CSV](https://www.iana.org/assignments/ipp-registrations/ipp-registrations-4.csv), +[direct link to Enum Values CSV](https://www.iana.org/assignments/ipp-registrations/ipp-registrations-6.csv)). -If CSV is updated one should be able to drop the new version as is. +If CSVs are updated one should be able to drop in the new version as is but +localizations might have to be added to +[components/printing_component_strings.grdp](components/printing_component_strings.grdp). +TODO: Generate placeholders in grdp.
diff --git a/printing/backend/tools/code_generator.gni b/printing/backend/tools/code_generator.gni new file mode 100644 index 0000000..094e6ef --- /dev/null +++ b/printing/backend/tools/code_generator.gni
@@ -0,0 +1,26 @@ +# Copyright 2019 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +attributes_path = "//printing/backend/tools/ipp-registrations-2.csv" +keyword_values_path = "//printing/backend/tools/ipp-registrations-4.csv" +enum_values_path = "//printing/backend/tools/ipp-registrations-6.csv" + +template("ipp_code_generate") { + action(target_name) { + script = "//printing/backend/tools/code_generator.py" + inputs = [ + attributes_path, + keyword_values_path, + enum_values_path, + ] + outputs = invoker.outputs + args = [ + "--attributes-file=" + rebase_path(attributes_path, root_build_dir), + "--keyword-values-file=" + + rebase_path(keyword_values_path, root_build_dir), + "--enum-values-file=" + rebase_path(enum_values_path, root_build_dir), + ] + args += invoker.args + } +}
diff --git a/printing/backend/tools/code_generator.py b/printing/backend/tools/code_generator.py index f6e57d0..5a55882 100755 --- a/printing/backend/tools/code_generator.py +++ b/printing/backend/tools/code_generator.py
@@ -12,15 +12,18 @@ # We skip attributes that are already implemented in print preview. NOOP_ATTRS = [ - 'copies', 'job-hold-until', 'job-password', 'job-password-encryption', - 'media', 'media-col', 'number-up', 'page-ranges', 'print-color-mode', - 'printer-resolution', 'sheet-collate', 'sides' + 'copies', 'job-hold-until', 'job-copies', 'job-password', + 'job-password-encryption', 'media', 'media-col', 'number-up', + 'orientation-requested', 'page-ranges', 'presentation-direction-number-up', + 'print-color-mode', 'print-scaling', 'printer-resolution', 'sheet-collate', + 'sides' ] -# As defined by RFC 8011 (5.1.4). -KEYWORD_PATTERN = re.compile('^[a-z][a-z0-9\._-]*$') +# RFC 8011 (5.1.4) requires keywords to start with a letter. There's however at +# least one keyword that starts with a digit. +KEYWORD_PATTERN = re.compile('^[a-z1-9][a-z0-9\._-]*$') -OUTPUT_HEADER = """// DO NOT MODIFY +HANDLER_HEADER = """// DO NOT MODIFY // Generated by printing/backend/tools/code_generator.py #include "printing/backend/ipp_handler_map.h" @@ -34,12 +37,29 @@ HandlerMap result; """ -OUTPUT_FOOTER = """ return result; +HANDLER_FOOTER = """ return result; } } // namespace printing """ +L10N_HEADER = """// DO NOT MODIFY +// Generated by printing/backend/tools/code_generator.py + +#include "components/printing/browser/ipp_l10n.h" + +#include "base/no_destructor.h" +#include "components/strings/grit/components_strings.h" + +const std::map<base::StringPiece, int>& CapabilityLocalizationMap() { + static const base::NoDestructor<std::map<base::StringPiece, int>> l10n_map({ +""" + +L10N_FOOTER = """ }); + return *l10n_map; +} +""" + def get_handler(syntax, name): if syntax.startswith('1setOf'): @@ -80,43 +100,81 @@ return '' +# Remove annotations like '(obsolete)', '(deprecated)' etc. +def remove_annotation(keyword): + parenthesis = keyword.find('(') + return keyword if parenthesis == -1 else keyword[:parenthesis].strip() + + +SPECIAL_CHARS = re.compile('[-/\.]') + + +def add_l10n(l10n_file, ipp_id, grit_id=None): + if not grit_id: + grit_id = ipp_id + + l10n_file.write(' {"%s", IDS_PRINT_%s},\n' % + (ipp_id, SPECIAL_CHARS.sub('_', grit_id.upper()))) + + def main(): parser = argparse.ArgumentParser(usage=__doc__) parser.add_argument( - '-i', + '-a', '--attributes-file', dest='attributes_file', help='path to ipp-registrations-2.csv input file', metavar='FILE', required=True) parser.add_argument( - '-o', + '-k', + '--keyword-values-file', + dest='keyword_values_file', + help='path to ipp-registrations-4.csv input file', + metavar='FILE', + required=True) + parser.add_argument( + '-e', + '--enum-values-file', + dest='enum_values_file', + help='path to ipp-registrations-6.csv input file', + metavar='FILE', + required=True) + parser.add_argument( + '-i', '--ipp-handler-map', dest='ipp_handler_map', help='path to ipp_handler_map.cc output file', - metavar='FILE', - required=True) + metavar='FILE') + parser.add_argument( + '-l', + '--localization-map', + dest='localization_map', + help='path to ipp_l10n.cc output file', + metavar='FILE') args = parser.parse_args() - with open(args.ipp_handler_map, 'w') as mapfile, \ - open(args.attributes_file, 'r') as attrfile: - reader = csv.reader(attrfile) - mapfile.write(OUTPUT_HEADER) + if not (args.ipp_handler_map or args.localization_map): + parser.error('No output file selected') - for attr in reader: + handlers = [] + supported_items = set() + with open(args.attributes_file, 'r') as attr_file: + attr_reader = csv.reader(attr_file) + + for attr in attr_reader: # Filter out by attribute group. - if attr[0] not in ['Job Template', 'Operation']: + if attr[0] != 'Job Template': continue # Skip sub-attributes. if attr[2] != '': continue - attr_name = attr[1] - # Remove annotations like '(obsolete)', '(deprecated)' etc. - parenthesis = attr_name.find('(') - if parenthesis != -1: - attr_name = attr_name[:parenthesis].strip() + attr_name = remove_annotation(attr[1]) + # Skip duplicates + if attr_name in supported_items: + continue if not KEYWORD_PATTERN.match(attr_name): print('Warning: attribute name %s is invalid' % attr_name) @@ -130,10 +188,64 @@ if handler == '': continue - mapfile.write(' result.emplace("%s", base::BindRepeating(&%s));\n' % - (attr_name, handler)) + handlers.append((attr_name, handler)) + if handler != 'NoOpHandler': + supported_items.add(attr_name) - mapfile.write(OUTPUT_FOOTER) + if args.ipp_handler_map: + handler_file = open(args.ipp_handler_map, 'w') + handler_file.write(HANDLER_HEADER) + + for (attr_name, handler) in handlers: + handler_file.write(' result.emplace("%s", base::BindRepeating(&%s));\n' + % (attr_name, handler)) + + handler_file.write(HANDLER_FOOTER) + handler_file.close() + + if args.localization_map: + l10n_file = open(args.localization_map, 'w') + l10n_file.write(L10N_HEADER) + + for (attr_name, handler) in handlers: + if handler != 'NoOpHandler': + if args.localization_map and not handler.startswith('Multivalue'): + add_l10n(l10n_file, attr_name) + + with open(args.keyword_values_file, 'r') as keyword_file: + keyword_reader = csv.reader(keyword_file) + for keyword_item in keyword_reader: + attr_name = keyword_item[0] + if attr_name in supported_items: + keyword_value = remove_annotation(keyword_item[1]) + # TODO(crbug.com/964919): Also handle some plain English cases. + if KEYWORD_PATTERN.match(keyword_value): + l10n_key = '%s/%s' % (attr_name, keyword_value) + # Skip duplicates. + if l10n_key not in supported_items: + supported_items.add(l10n_key) + add_l10n(l10n_file, l10n_key) + + with open(args.enum_values_file, 'r') as enum_file: + enum_reader = csv.reader(enum_file) + for enum_item in enum_reader: + attr_name = enum_item[0] + if attr_name in supported_items: + enum_value = enum_item[1] + try: + int(enum_value) + l10n_key = attr_name + '/' + enum_value + # Skip duplicates and finishings 'none' value. + if l10n_key not in supported_items and l10n_key != 'finishings/3': + supported_items.add(l10n_key) + add_l10n(l10n_file, l10n_key, + attr_name + '_' + remove_annotation(enum_item[2])) + except ValueError: + # TODO(crbug.com/964919): Handle some plain English cases. + pass + + l10n_file.write(L10N_FOOTER) + l10n_file.close() if __name__ == '__main__':
diff --git a/printing/backend/tools/ipp-registrations-4.csv b/printing/backend/tools/ipp-registrations-4.csv new file mode 100644 index 0000000..4c68e18 --- /dev/null +++ b/printing/backend/tools/ipp-registrations-4.csv
@@ -0,0 +1,2840 @@ +Attribute,Keyword Value,Syntax,Type,Reference +accuracy-units,,type2 keyword,,[PWG5100.21] +accuracy-units,mm,type2 keyword,,[PWG5100.21] +accuracy-units,nm,type2 keyword,,[PWG5100.21] +accuracy-units,um,type2 keyword,,[PWG5100.21] +accuracy-units-supported,,1setOf type2 keyword,,[PWG5100.21] +accuracy-units-supported,< any accuracy-units values >,1setOf type2 keyword,,[PWG5100.21] +accuracy-units-supported,"<Any ""accuracy-units"" value>",1setOf type2 keyword,,[PWG5100.21] +baling-type,,type2 keyword | name(MAX),,[PWG5100.1] +baling-type,band,type2 keyword | name(MAX),,[PWG5100.1] +baling-type,shrink-wrap,type2 keyword | name(MAX),,[PWG5100.1] +baling-type,wrap,type2 keyword | name(MAX),,[PWG5100.1] +baling-type-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.1] +baling-type-supported,"<Any ""baling-type"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.1] +baling-when,,type2 keyword,,[PWG5100.1] +baling-when,after-job,type2 keyword,,[PWG5100.1] +baling-when,after-sets,type2 keyword,,[PWG5100.1] +baling-when-supported,,1setOf type2 keyword,,[PWG5100.1] +baling-when-supported,"<Any ""baling-when"" value>",1setOf type2 keyword,,[PWG5100.1] +binding-reference-edge,,type1 keyword,,[PWG5100.1] +binding-reference-edge,bottom,type1 keyword,,[PWG5100.1] +binding-reference-edge,left,type1 keyword,,[PWG5100.1] +binding-reference-edge,right,type1 keyword,,[PWG5100.1] +binding-reference-edge,top,type1 keyword,,[PWG5100.1] +binding-reference-edge-supported,,1setOf type1 keyword,,[PWG5100.1] +binding-reference-edge-supported,"<Any ""binding-reference-edge"" value>",1setOf type1 keyword,,[PWG5100.1] +binding-type,,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,adhesive,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,comb,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,flat,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,padding,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,perfect,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,spiral,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,tape,type2 keyword | name(MAX),,[PWG5100.1] +binding-type,velo,type2 keyword | name(MAX),,[PWG5100.1] +binding-type-supported,,(1setOf type2 keyword | name(MAX)),,[PWG5100.1] +binding-type-supported,"<Any ""binding-type"" value>",(1setOf type2 keyword | name(MAX)),,[PWG5100.1] +coating-sides,,type1 keyword,,[PWG5100.1] +coating-sides,back,type1 keyword,,[PWG5100.1] +coating-sides,both,type1 keyword,,[PWG5100.1] +coating-sides,front,type1 keyword,,[PWG5100.1] +coating-sides-supported,,1setOf type1 keyword,,[PWG5100.1] +coating-sides-supported,"<Any ""coating-sides"" value>",1setOf type1 keyword,,[PWG5100.1] +coating-type,,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,archival,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,archival-glossy,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,archival-matte,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,archival-semi-gloss,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,glossy,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,high-gloss,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,matte,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,semi-gloss,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,silicone,type2 keyword | name(MAX),,[PWG5100.1] +coating-type,translucent,type2 keyword | name(MAX),,[PWG5100.1] +coating-type-supported,,(1setOf type2 keyword | name(MAX)),,[PWG5100.1] +coating-type-supported,"<Any ""coating-type"" value>",(1setOf type2 keyword | name(MAX)),,[PWG5100.1] +compression,,type2 keyword,,[RFC8011] +compression,compress,type2 keyword,,[RFC8011] +compression,deflate,1setOf type2 keyword,,[RFC8011] +compression,gzip,type2 keyword,,[RFC8011] +compression,none,type2 keyword,,[RFC8011] +compression-accepted,,1setOf type2 keyword,,[PWG5100.17] +compression-accepted,"<Any ""compression"" value>",1setOf type2 keyword,,[PWG5100.17] +compression-supported,,1setOf type2 keyword,,[RFC8011] +compression-supported,"<Any ""compression"" value>",1setOf type2 keyword,,[RFC8011] +cover-type,,type2 keyword,,[PWG5100.3] +cover-type,no-cover,type2 keyword,,[PWG5100.3] +cover-type,print-back,type2 keyword,,[PWG5100.3] +cover-type,print-both,type2 keyword,,[PWG5100.3] +cover-type,print-front,type2 keyword,,[PWG5100.3] +cover-type,print-none,type2 keyword,,[PWG5100.3] +covering-name,,type2 keyword | name(MAX),,[PWG5100.1] +covering-name,plain,type2 keyword | name(MAX),,[PWG5100.1] +covering-name,pre-cut,type2 keyword | name(MAX),,[PWG5100.1] +covering-name,pre-printed,type2 keyword | name(MAX),,[PWG5100.1] +covering-name-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.1] +covering-name-supported,"<Any ""covering-name"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.1] +current-page-order,,type2 keyword,,[PWG5100.3] +current-page-order,"<Any ""page-order-received"" value>",type2 keyword,,[PWG5100.3] +document-digital-signature,,type2 keyword,,[PWG5100.7] +document-digital-signature,dss,type2 keyword,,[PWG5100.7] +document-digital-signature,none,type2 keyword,,[PWG5100.7] +document-digital-signature,pgp,type2 keyword,,[PWG5100.7] +document-digital-signature,smime,type2 keyword,,[PWG5100.7] +document-digital-signature,xmldsig,type2 keyword,,[PWG5100.7] +document-digital-signature-default,,type2 keyword,,[PWG5100.7] +document-digital-signature-default,"<Any ""document-digital-signature"" value>",type2 keyword,,[PWG5100.7] +document-digital-signature-supported,,1setOf type2 keyword,,[PWG5100.7] +document-digital-signature-supported,"<Any ""document-digital-signature"" value>",1setOf type2 keyword,,[PWG5100.7] +document-format-varying-attributes,,1setOf type2 keyword,,[RFC3380] +document-format-varying-attributes,<Any Printer attribute keyword name>,1setOf type2 keyword,,[RFC3380] +document-format-varying-attributes,none,1setOf type2 keyword,,[RFC3380] +document-privacy-attributes,,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-attributes,< any Document object attribute >,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-attributes,all,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-attributes,default,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-attributes,document-description,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-attributes,document-template,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-attributes,none,1setOf type2 keyword,,[IPPPRIVACY10] +document-privacy-scope,,type2 keyword,,[IPPPRIVACY10] +document-privacy-scope,all,type2 keyword,,[IPPPRIVACY10] +document-privacy-scope,default,type2 keyword,,[IPPPRIVACY10] +document-privacy-scope,none,type2 keyword,,[IPPPRIVACY10] +document-privacy-scope,owner,type2 keyword,,[IPPPRIVACY10] +document-state-reasons,,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,aborted-by-system,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,canceled-at-device,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,canceled-by-operator,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,canceled-by-user,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,completed-successfully,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,completed-with-errors,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,completed-with-warnings,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,compression-error,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,data-insufficient,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,digital-signature-did-not-verify,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,digital-signature-type-not-supported,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,digital-signature-wait,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,document-access-error,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,document-fetchable,1setOf type2 keyword,,[PWG5100.18] +document-state-reasons,document-format-error,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,document-password-error,1setOf type2 keyword,,[PWG5100.13] +document-state-reasons,document-permission-error,1setOf type2 keyword,,[PWG5100.13] +document-state-reasons,document-security-error,1setOf type2 keyword,,[PWG5100.13] +document-state-reasons,document-unprintable-error,1setOf type2 keyword,,[PWG5100.13] +document-state-reasons,errors-detected,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,incoming,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,interpreting,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,none,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,outgoing,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,printing,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,processing-to-stop-point,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,queued,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,queued-for-marker,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,queued-in-device,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,resources-are-not-ready,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,resources-are-not-supported,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,submission-interrupted,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,transforming,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,unsupported-compression,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,unsupported-document-format,1setOf type2 keyword,,[PWG5100.5] +document-state-reasons,warnings-detected,1setOf type2 keyword,,[PWG5100.5] +feed-orientation,,type2 keyword,,[PWG5100.11] +feed-orientation,long-edge-first,type2 keyword,,[PWG5100.11] +feed-orientation,short-edge-first,type2 keyword,,[PWG5100.11] +feed-orientation-supported,,1setOf type2 keyword,,[PWG5100.11] +feed-orientation-supported,"<Any ""feed-orientation"" value>",1setOf type2 keyword,,[PWG5100.11] +finishing-template,,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,bale,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,bind,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,bind-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,bind-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,bind-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,bind-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,booklet-maker,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,coat,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,cover,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,edge-stitch,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,edge-stitch-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,edge-stitch-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,edge-stitch-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,edge-stitch-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-accordion,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-double-gate,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-engineering-z,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-gate,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-half,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-half-z,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-left-gate,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-letter,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-parallel,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-poster,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-right-gate,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,fold-z,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f2-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f4-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f4-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f6-8,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f8-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f10-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f10-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f10-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-8,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-9,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-10,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-11,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-12,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-13,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f12-14,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f14-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-8,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-9,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-10,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-11,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-12,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-13,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f16-14,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-8,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f18-9,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f20-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f20-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-8,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-9,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-10,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f24-11,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f28-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-3,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-4,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-5,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-6,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-7,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-8,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f32-9,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f36-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f36-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f40-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f48-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f48-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f64-1,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jdf-f64-2,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jog-offset,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,jog-offset(deprecated),type2 keyword | name(MAX),,[IPP-JOG-OFFSET] +finishing-template,laminate,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-bottom-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-bottom-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-dual-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-dual-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-dual-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-dual-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-multiple-bottom,type2 keyword | name(MAX),,[CANON-PUNCHING] +finishing-template,punch-multiple-left,type2 keyword | name(MAX),,[CANON-PUNCHING] +finishing-template,punch-multiple-right,type2 keyword | name(MAX),,[CANON-PUNCHING] +finishing-template,punch-multiple-top,type2 keyword | name(MAX),,[CANON-PUNCHING] +finishing-template,punch-quad-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-quad-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-quad-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-quad-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-top-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-top-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-triple-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-triple-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-triple-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,punch-triple-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,saddle-stitch,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-bottom-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-bottom-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-dual-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-dual-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-dual-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-dual-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-top-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-top-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-triple-bottom,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-triple-left,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-triple-right,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,staple-triple-top,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,trim,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,trim-after-copies,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,trim-after-documents,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,trim-after-job,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template,trim-after-pages,type2 keyword | name(MAX),,[PWG5100.1] +finishing-template-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.1] +finishing-template-supported,"<Any ""finishing-template"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.1] +folding-direction,,type1 keyword,,[PWG5100.1] +folding-direction,inward,type1 keyword,,[PWG5100.1] +folding-direction,outward,type1 keyword,,[PWG5100.1] +folding-direction-supported,,1setOf type1 keyword,,[PWG5100.1] +folding-direction-supported,"<Any ""folding-direction"" value>",1setOf type1 keyword,,[PWG5100.1] +folding-reference-edge,,type1 keyword,,[PWG5100.1] +folding-reference-edge,bottom,type1 keyword,,[PWG5100.1] +folding-reference-edge,left,type1 keyword,,[PWG5100.1] +folding-reference-edge,right,type1 keyword,,[PWG5100.1] +folding-reference-edge,top,type1 keyword,,[PWG5100.1] +folding-reference-edge-supported,,1setOf type1 keyword,,[PWG5100.1] +folding-reference-edge-supported,"<Any ""folding-reference-edge"" value>",1setOf type1 keyword,,[PWG5100.1] +identify-actions,,1setOf type2 keyword,,[PWG5100.13] +identify-actions,display,1setOf type2 keyword,,[PWG5100.13] +identify-actions,flash,1setOf type2 keyword,,[PWG5100.13] +identify-actions,sound,1setOf type2 keyword,,[PWG5100.13] +identify-actions,speak,1setOf type2 keyword,,[PWG5100.13] +identify-actions-default,,1setOf type2 keyword,,[PWG5100.13] +identify-actions-default,"<Any ""identify-actions"" value>",1setOf type2 keyword,,[PWG5100.13] +identify-actions-supported,,1setOf type2 keyword,,[PWG5100.13] +identify-actions-supported,"<Any ""identify-actions"" value>",1setOf type2 keyword,,[PWG5100.13] +imposition-template,,type2 keyword | name(MAX),,[PWG5100.3] +imposition-template,none,type2 keyword | name(MAX),,[PWG5100.3] +imposition-template,signature,type2 keyword | name(MAX),,[PWG5100.3] +input-color-mode,,type2 keyword,,[PWG5100.15] +input-color-mode,auto,type2 keyword,,[PWG5100.15] +input-color-mode,bi-level,type2 keyword,,[PWG5100.15] +input-color-mode,cmyk_8,type2 keyword,,[PWG5100.17] +input-color-mode,cmyk_16,type2 keyword,,[PWG5100.17] +input-color-mode,color,type2 keyword,,[PWG5100.15] +input-color-mode,color_8,type2 keyword,,[PWG5100.17] +input-color-mode,monochrome,type2 keyword,,[PWG5100.15] +input-color-mode,monochrome_4,type2 keyword,,[PWG5100.17] +input-color-mode,monochrome_8,type2 keyword,,[PWG5100.17] +input-color-mode,monochrome_16,type2 keyword,,[PWG5100.17] +input-color-mode,rgb_16,type2 keyword,,[PWG5100.17] +input-color-mode,rgba_8,type2 keyword,,[PWG5100.17] +input-color-mode,rgba_16,type2 keyword,,[PWG5100.17] +input-color-mode-supported,,1setOf type2 keyword,,[PWG5100.15] +input-color-mode-supported,"<Any ""input-color-mode"" value>",1setOf type2 keyword,,[PWG5100.15] +input-content-type,,type2 keyword,,[PWG5100.15] +input-content-type,auto,type2 keyword,,[PWG5100.15] +input-content-type,halftone,type2 keyword,,[PWG5100.15] +input-content-type,line-art,type2 keyword,,[PWG5100.15] +input-content-type,magazine,type2 keyword,,[PWG5100.15] +input-content-type,photo,type2 keyword,,[PWG5100.15] +input-content-type,text,type2 keyword,,[PWG5100.15] +input-content-type,text-and-photo,type2 keyword,,[PWG5100.15] +input-content-type-supported,,1setOf type2 keyword,,[PWG5100.15] +input-content-type-supported,"<Any ""input-content-type"" value>",1setOf type2 keyword,,[PWG5100.15] +input-film-scan-mode,,type2 keyword,,[PWG5100.15] +input-film-scan-mode,black-and-white-negative-film,type2 keyword,,[PWG5100.15] +input-film-scan-mode,color-negative-film,type2 keyword,,[PWG5100.15] +input-film-scan-mode,color-slide-film,type2 keyword,,[PWG5100.15] +input-film-scan-mode,not-applicable,type2 keyword,,[PWG5100.15] +input-film-scan-mode-supported,,1setOf type2 keyword,,[PWG5100.15] +input-film-scan-mode-supported,"<Any ""input-film-scan-mode"" value>",1setOf type2 keyword,,[PWG5100.15] +input-media,,type2 keyword | name(MAX),,[PWG5100.15] +input-media,"<Any ""media"" size name value>",type2 keyword | name(MAX),,[PWG5100.15] +input-media,auto,type2 keyword | name(MAX),,[PWG5100.15] +input-media-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.15] +input-media-supported,"<Any ""media"" size name value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.15] +input-sides,,type2 keyword,,[PWG5100.15] +input-sides,"<Any ""sides"" value>",type2 keyword,,[PWG5100.15] +input-sides-supported,,1setOf type2 keyword,,[PWG5100.15] +input-sides-supported,"<Any ""sides"" value>",1setOf type2 keyword,,[PWG5100.15] +input-source,,type2 keyword,,[PWG5100.15] +input-source,adf,type2 keyword,,[PWG5100.15] +input-source,film-reader,type2 keyword,,[PWG5100.15] +input-source,platen,type2 keyword,,[PWG5100.15] +input-source-supported,,1setOf type2 keyword,,[PWG5100.15] +input-source-supported,"<Any ""input-source"" value>",1setOf type2 keyword,,[PWG5100.15] +ipp-features-supported,,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,document-object,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,faxout,1setOf type2 keyword,,[PWG5100.15] +ipp-features-supported,icc-color-matching,1setOf type2 keyword,,[APPLE-ICC] +ipp-features-supported,infrastructure-printer,1setOf type2 keyword,,[PWG5100.18] +ipp-features-supported,ipp-3d,1setOf type2 keyword,,[PWG5100.21] +ipp-features-supported,ipp-everywhere,1setOf type2 keyword,,[PWG5100.14] +ipp-features-supported,job-save,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,none,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,page-overrides,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,proof-print,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,resource-object,1setOf type2 keyword,,[PWG5100.22] +ipp-features-supported,scan,1setOf type2 keyword,,[PWG5100.17] +ipp-features-supported,subscription-object,1setOf type2 keyword,,[PWG5100.13] +ipp-features-supported,system-object,1setOf type2 keyword,,[PWG5100.22] +ipp-versions-supported,,1setOf type2 keyword,,[RFC8011] +ipp-versions-supported,1.0,1setOf type2 keyword,,[RFC8011] +ipp-versions-supported,1.1,1setOf type2 keyword,,[RFC8011] +ipp-versions-supported,2.0,1setOf type2 keyword,,[PWG5100.10] +ipp-versions-supported,2.1,1setOf type2 keyword,,[PWG5100.10] +ipp-versions-supported,2.2,1setOf type2 keyword,,[PWG5100.12] +job-account-type,,type2 keyword | name(MAX),,[PWG5100.16] +job-account-type,general,type2 keyword | name(MAX),,[PWG5100.16] +job-account-type,group,type2 keyword | name(MAX),,[PWG5100.16] +job-account-type,none,type2 keyword | name(MAX),,[PWG5100.16] +job-account-type-default,,type2 keyword | name(MAX),,[PWG5100.16] +job-account-type-default,"<Any ""job-account-type"" value>",type2 keyword | name(MAX),,[PWG5100.16] +job-account-type-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +job-account-type-supported,"<Any ""job-account-type"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +job-accounting-output-bin,,type2 keyword | name(MAX),,[PWG5100.3] +job-accounting-output-bin,"<Any ""output-bin"" value keyword>",type2 keyword | name(MAX),,[PWG5100.2] +job-accounting-sheets-type,,type2 keyword | name(MAX),,[PWG5100.3] +job-accounting-sheets-type,none,type2 keyword | name(MAX),,[PWG5100.3] +job-accounting-sheets-type,standard,type2 keyword | name(MAX),,[PWG5100.3] +job-cover-back-supported,"<Any ""cover-back-supported"" value>",1setOf type2 keyword,,[PWG5100.7] +job-cover-front-supported,"<Any ""cover-front-supported"" value>",1setOf type2 keyword,,[PWG5100.7] +job-delay-output-until,,type2 keyword | name(MAX),,[PWG5100.11] +job-delay-output-until,day-time,type2 keyword,,[PWG5100.11] +job-delay-output-until,evening,type2 keyword,,[PWG5100.11] +job-delay-output-until,indefinite,type2 keyword,,[PWG5100.11] +job-delay-output-until,night,type2 keyword,,[PWG5100.11] +job-delay-output-until,no-delay-output,type2 keyword,,[PWG5100.11] +job-delay-output-until,second-shift,type2 keyword,,[PWG5100.11] +job-delay-output-until,third-shift,type2 keyword,,[PWG5100.11] +job-delay-output-until,weekend,type2 keyword,,[PWG5100.11] +job-delay-output-until-default,,type2 keyword | name(MAX),,[PWG5100.11] +job-delay-output-until-default,"<Any ""job-default-output-until"" value>",type2 keyword,,[PWG5100.11] +job-delay-output-until-default,"<Any ""job-delay-output-until"" value>",type2 keyword | name(MAX),,[PWG5100.7] +job-delay-output-until-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.11] +job-delay-output-until-supported,"<Any ""job-default-output-until"" value>",1setOf type2 keyword,,[PWG5100.11] +job-delay-output-until-supported,"<Any ""job-delay-output-until"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +job-destination-spooling-supported,,type2 keyword,,[PWG5100.17] +job-destination-spooling-supported,automatic,type2 keyword,,[PWG5100.17] +job-destination-spooling-supported,spool,type2 keyword,,[PWG5100.17] +job-destination-spooling-supported,stream,type2 keyword,,[PWG5100.17] +job-error-action,,type2 keyword,,[PWG5100.13] +job-error-action,abort-job,type2 keyword,,[PWG5100.13] +job-error-action,cancel-job,type2 keyword,,[PWG5100.13] +job-error-action,continue-job,type2 keyword,,[PWG5100.13] +job-error-action,suspend-job,type2 keyword,,[PWG5100.13] +job-error-action-default,,type2 keyword,,[PWG5100.13] +job-error-action-default,"<Any ""job-error-action"" value>",type2 keyword,,[PWG5100.13] +job-error-action-supported,,1setOf type2 keyword,,[PWG5100.13] +job-error-action-supported,"<Any ""job-error-action"" value>",1setOf type2 keyword,,[PWG5100.13] +job-error-sheet-type,,type2 keyword | name(MAX),,[PWG5100.3] +job-error-sheet-type,none,type2 keyword | name(MAX),,[PWG5100.3] +job-error-sheet-type,standard,type2 keyword | name(MAX),,[PWG5100.3] +job-error-sheet-when,,type2 keyword,,[PWG5100.3] +job-error-sheet-when,always,type2 keyword,,[PWG5100.3] +job-error-sheet-when,on-error,type2 keyword,,[PWG5100.3] +job-hold-until,,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,day-time,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,evening,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,indefinite,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,night,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,no-hold,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,second-shift,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,third-shift,type2 keyword | name(MAX),,[RFC8011] +job-hold-until,weekend,type2 keyword | name(MAX),,[RFC8011] +job-hold-until-default,,type2 keyword | name(MAX),,[RFC8011] +job-hold-until-default,"<Any ""job-hold-until"" value>",type2 keyword | name(MAX),,[RFC8011] +job-hold-until-supported,,1setOf (type2 keyword | name(MAX)),,[RFC8011] +job-hold-until-supported,"<Any ""job-hold-until"" value>",1setOf (type2 keyword | name(MAX)),,[RFC8011] +job-password-encryption,,type2 keyword,,[PWG5100.11] +job-password-encryption,md2,type2 keyword,,[PWG5100.11] +job-password-encryption,md2(deprecated),type2 keyword,,[IPPWG20160229-1] +job-password-encryption,md4,type2 keyword,,[PWG5100.11] +job-password-encryption,md4(deprecated),type2 keyword,,[IPPWG20160229-1] +job-password-encryption,md5,type2 keyword,,[PWG5100.11] +job-password-encryption,md5(deprecated),type2 keyword,,[IPPWG20160229-1] +job-password-encryption,none,type2 keyword,,[PWG5100.11] +job-password-encryption,sha,type2 keyword,,[PWG5100.11] +job-password-encryption,sha(deprecated),type2 keyword,,[IPPWG20160229-1] +job-password-encryption,sha2-224,type2 keyword,,[IPPWG20140616] +job-password-encryption,sha2-256,type2 keyword,,[IPPWG20140616] +job-password-encryption,sha2-384,type2 keyword,,[IPPWG20140616] +job-password-encryption,sha2-512,type2 keyword,,[IPPWG20140616] +job-password-encryption,sha2-512_224,type2 keyword,,[IPPWG20151009] +job-password-encryption,sha2-512_256,type2 keyword,,[IPPWG20140616] +job-password-encryption,sha3-224,type2 keyword,,[IPPWG20151009] +job-password-encryption,sha3-256,type2 keyword,,[IPPWG20151009] +job-password-encryption,sha3-384,type2 keyword,,[IPPWG20151009] +job-password-encryption,sha3-512,type2 keyword,,[IPPWG20151009] +job-password-encryption,sha3-512_224,type2 keyword,,[IPPWG20151009] +job-password-encryption,sha3-512_256,type2 keyword,,[IPPWG20151009] +job-password-encryption,shake-128,type2 keyword,,[IPPWG20151009] +job-password-encryption,shake-256,type2 keyword,,[IPPWG20151009] +job-password-encryption-supported,,1setOf type2 keyword,,[PWG5100.11] +job-password-encryption-supported,"<Any ""job-password-encryption"" value>",1setOf type2 keyword,,[PWG5100.11] +job-password-repertoire-configured,,type2 keyword | name(MAX),,[IPPWG20160229-1] +job-password-repertoire-configured,"<Any ""job-password-repertoire-supported"" value>",type2 keyword | name(MAX),,[IPPWG20160229-1] +job-password-repertoire-supported,,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_us-ascii_any,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_us-ascii_complex,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_us-ascii_digits,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_us-ascii_letters,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_utf-8_any,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_utf-8_digits,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-password-repertoire-supported,iana_utf-8_letters,1setOf (type2 keyword | name(MAX)),,[IPPWG20160229-1] +job-privacy-attributes,,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-attributes,< any Job object attribute >,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-attributes,all,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-attributes,default,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-attributes,job-description,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-attributes,job-template,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-attributes,none,1setOf type2 keyword,,[IPPPRIVACY10] +job-privacy-scope,,type2 keyword,,[IPPPRIVACY10] +job-privacy-scope,all,type2 keyword,,[IPPPRIVACY10] +job-privacy-scope,default,type2 keyword,,[IPPPRIVACY10] +job-privacy-scope,none,type2 keyword,,[IPPPRIVACY10] +job-privacy-scope,owner,type2 keyword,,[IPPPRIVACY10] +job-retain-until,,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until,end-of-day,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until,end-of-month,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until,end-of-week,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until,indefinite,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until,none,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until-default,,type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until-default,"<Any ""job-retain-until"" value>",type2 keyword | name(MAX),,[PWG5100.7] +job-retain-until-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +job-retain-until-supported,"<Any ""job-retain-until"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +job-save-disposition-supported,,1setOf type2 keyword,,[PWG5100.11] +job-save-disposition-supported,save-disposition,1setOf type2 keyword,,[PWG5100.11] +job-save-disposition-supported,save-info,1setOf type2 keyword,,[PWG5100.11] +job-sheets,,type2 keyword | name(MAX),,[RFC8011] +job-sheets,first-print-stream-page,type2 keyword | name(MAX),,[PWG5100.3] +job-sheets,job-both-sheet,type2 keyword | name(MAX),,[PWG5100.3] +job-sheets,job-end-sheet,type2 keyword | name(MAX),,[PWG5100.3] +job-sheets,job-start-sheet,type2 keyword | name(MAX),,[PWG5100.3] +job-sheets,none,type2 keyword | name(MAX),,[RFC8011] +job-sheets,standard,type2 keyword | name(MAX),,[RFC8011] +job-sheets-default,,type2 keyword | name(MAX),,[RFC8011] +job-sheets-default,"<Any ""job-sheets"" value>",type2 keyword | name(MAX),,[RFC8011] +job-sheets-supported,,1setOf (type2 keyword | name(MAX)),,[RFC8011] +job-sheets-supported,"<Any ""job-sheets"" value>",1setOf (type2 keyword | name(MAX)),,[RFC8011] +job-spooling-supported,,type2 keyword,,[PWG5100.11] +job-spooling-supported,automatic,type2 keyword,,[PWG5100.11] +job-spooling-supported,spool,type2 keyword,,[PWG5100.11] +job-spooling-supported,stream,type2 keyword,,[PWG5100.11] +job-state-reasons,,1setOf type2 keyword,,[RFC8011] +job-state-reasons,aborted-by-system,1setOf type2 keyword,,[RFC8011] +job-state-reasons,account-authorization-failed,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,account-closed,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,account-info-needed,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,account-limit-reached,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,compression-error,1setOf type2 keyword,,[RFC8011] +job-state-reasons,conflicting-attributes,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,connected-to-destination,1setOf type2 keyword,,[PWG5100.15] +job-state-reasons,connecting-to-destination,1setOf type2 keyword,,[PWG5100.15] +job-state-reasons,destination-uri-failed,1setOf type2 keyword,,[PWG5100.15] +job-state-reasons,digital-signature-did-not-verify,1setOf type2 keyword,,[PWG5100.7] +job-state-reasons,digital-signature-type-not-supported,1setOf type2 keyword,,[PWG5100.7] +job-state-reasons,digital-signature-type-not-supported(obsolete),1setOf type2 keyword,,[PWG5100.7] +job-state-reasons,document-access-error,1setOf type2 keyword,,[RFC8011] +job-state-reasons,document-format-error,1setOf type2 keyword,,[RFC8011] +job-state-reasons,document-password-error,1setOf type2 keyword,,[PWG5100.13] +job-state-reasons,document-permission-error,1setOf type2 keyword,,[PWG5100.13] +job-state-reasons,document-security-error,1setOf type2 keyword,,[PWG5100.13] +job-state-reasons,document-unprintable-error,1setOf type2 keyword,,[PWG5100.13] +job-state-reasons,errors-detected,1setOf type2 keyword,,[PWG5100.7] +job-state-reasons,job-canceled-at-device,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-canceled-by-operator,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-canceled-by-user,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-completed-successfully,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-completed-with-errors,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-completed-with-warnings,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-data-insufficient,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-delay-output-until-specified,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-digital-signature-wait,1setOf type2 keyword,,[PWG5100.7] +job-state-reasons,job-digital-signature-wait(obsolete),1setOf type2 keyword,,[PWG5100.7] +job-state-reasons,job-fetchable,1setOf type2 keyword,,[PWG5100.18] +job-state-reasons,job-held-for-review,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,job-hold-until-specified,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-incoming,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-interpreting,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-outgoing,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-password-wait,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-printed-successfully,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-printed-with-errors,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-printed-with-warnings,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-printing,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-queued,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-queued-for-marker,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-release-wait,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,job-restartable,1setOf type2 keyword,,[RFC8011] +job-state-reasons,job-resuming,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-saved-successfully,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-saved-with-errors,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-saved-with-warnings,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-saving,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-spooling,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-streaming,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-suspended,1setOf type2 keyword,,[RFC3998] +job-state-reasons,job-suspended-by-operator,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-suspended-by-system,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-suspended-by-user,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-suspending,1setOf type2 keyword,,[PWG5100.11] +job-state-reasons,job-transferring,1setOf type2 keyword,,[PWG5100.15] +job-state-reasons,job-transforming,1setOf type2 keyword,,[RFC8011] +job-state-reasons,none,1setOf type2 keyword,,[RFC8011] +job-state-reasons,printer-stopped,1setOf type2 keyword,,[RFC8011] +job-state-reasons,printer-stopped-partly,1setOf type2 keyword,,[RFC8011] +job-state-reasons,processing-to-stop-point,1setOf type2 keyword,,[RFC8011] +job-state-reasons,queued-in-device,1setOf type2 keyword,,[RFC8011] +job-state-reasons,resources-are-not-ready,1setOf type2 keyword,,[RFC8011] +job-state-reasons,resources-are-not-supported,1setOf type2 keyword,,[PWG5100.3] +job-state-reasons,service-off-line,1setOf type2 keyword,,[RFC8011] +job-state-reasons,submission-interrupted,1setOf type2 keyword,,[RFC8011] +job-state-reasons,unsupported-attributes-or-values,1setOf type2 keyword,,[PWG5100.16] +job-state-reasons,unsupported-compression,1setOf type2 keyword,,[RFC8011] +job-state-reasons,unsupported-document-format,1setOf type2 keyword,,[RFC8011] +job-state-reasons,waiting-for-user-action,1setOf type2 keyword,,[PWG5100.17] +job-state-reasons,warnings-detected,1setOf type2 keyword,,[PWG5100.7] +jpeg-features-supported,,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,arithmetic,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,cmyk,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,deep,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,hierarchical,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,icc,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,lossless,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,none,1setOf type2 keyword,,[APPLE20151021] +jpeg-features-supported,progressive,1setOf type2 keyword,,[APPLE20151021] +laminating-sides,,type1 keyword,,[PWG5100.1] +laminating-sides,back,type1 keyword,,[PWG5100.1] +laminating-sides,both,type1 keyword,,[PWG5100.1] +laminating-sides,front,type1 keyword,,[PWG5100.1] +laminating-sides-supported,,1setOf type1 keyword,,[PWG5100.1] +laminating-sides-supported,"<All ""laminating-sides"" value>",1setOf type1 keyword,,[PWG5100.1] +laminating-type,,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type,archival,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type,glossy,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type,high-gloss,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type,matte,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type,semi-gloss,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type,translucent,type2 keyword | name(MAX),,[PWG5100.1] +laminating-type-supported,,(1setOf type2 keyword | name(MAX)),,[PWG5100.1] +laminating-type-supported,"<Any ""laminating-type"" value>",(1setOf type2 keyword | name(MAX)),,[PWG5100.1] +material-amount-units,,type2 keyword,,[PWG5100.21] +material-amount-units,g,type2 keyword,,[PWG5100.21] +material-amount-units,kg,type2 keyword,,[PWG5100.21] +material-amount-units,l,type2 keyword,,[PWG5100.21] +material-amount-units,m,type2 keyword,,[PWG5100.21] +material-amount-units,ml,type2 keyword,,[PWG5100.21] +material-amount-units,mm,type2 keyword,,[PWG5100.21] +material-color,,type2 keyword,,[PWG5100.21] +material-color,"< any ""media"" color name >",type2 keyword,,[PWG5100.21] +material-color,"<Any ""media-color"" value>",type2 keyword,,[PWG5100.21] +material-purpose,,1setOf type2 keyword,,[PWG5100.21] +material-purpose,all,1setOf type2 keyword,,[PWG5100.21] +material-purpose,base,1setOf type2 keyword,,[PWG5100.21] +material-purpose,in-fill,1setOf type2 keyword,,[PWG5100.21] +material-purpose,shell,1setOf type2 keyword,,[PWG5100.21] +material-purpose,support,1setOf type2 keyword,,[PWG5100.21] +material-rate-units,,type2 keyword,,[PWG5100.21] +material-rate-units,mg_second,type2 keyword,,[PWG5100.21] +material-rate-units,ml_second,type2 keyword,,[PWG5100.21] +material-rate-units,mm_second,type2 keyword,,[PWG5100.21] +material-type,,type2 keyword,,[PWG5100.21] +material-type,abs,type2 keyword,,[PWG5100.21] +material-type,abs-carbon-fiber,type2 keyword,,[PWG5100.21] +material-type,abs-carbon-nanotube,type2 keyword,,[PWG5100.21] +material-type,chocolate,type2 keyword,,[PWG5100.21] +material-type,gold,type2 keyword,,[PWG5100.21] +material-type,nylon,type2 keyword,,[PWG5100.21] +material-type,pet,type2 keyword,,[PWG5100.21] +material-type,photopolymer,type2 keyword,,[PWG5100.21] +material-type,pla,type2 keyword,,[PWG5100.21] +material-type,pla-conductive,type2 keyword,,[PWG5100.21] +material-type,pla-dissolvable,type2 keyword,,[PWG5100.21] +material-type,pla-flexible,type2 keyword,,[PWG5100.21] +material-type,pla-magnetic,type2 keyword,,[PWG5100.21] +material-type,pla-steel,type2 keyword,,[PWG5100.21] +material-type,pla-stone,type2 keyword,,[PWG5100.21] +material-type,pla-wood,type2 keyword,,[PWG5100.21] +material-type,polycarbonate,type2 keyword,,[PWG5100.21] +material-type,pva-dissolvable,type2 keyword,,[PWG5100.21] +material-type,silver,type2 keyword,,[PWG5100.21] +material-type,titanium,type2 keyword,,[PWG5100.21] +material-type,wax,type2 keyword,,[PWG5100.21] +materials-col-supported,,1setOf type2 keyword,,[PWG5100.21] +materials-col-supported,< any materials-col member attribute name >,1setOf type2 keyword,,[PWG5100.21] +media,,type2 keyword | name(MAX),,[RFC8011] +media,a,type2 keyword | name(MAX),size name,[RFC2911] +media,a-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,a-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,a-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-a,type2 keyword | name(MAX),size name,[RFC2911] +media,arch-a-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-a-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-a-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-axsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-axsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-axsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-b,type2 keyword | name(MAX),size name,[RFC2911] +media,arch-b-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-b-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-b-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-bxsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-bxsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-bxsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-c,type2 keyword | name(MAX),size name,[RFC2911] +media,arch-c-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-c-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-c-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-cxsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-cxsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-cxsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-d,type2 keyword | name(MAX),size name,[RFC2911] +media,arch-d-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-d-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-d-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-dxsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-dxsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-dxsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-e,type2 keyword | name(MAX),size name,[RFC2911] +media,arch-e-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-e-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-e-white,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-exsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-exsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,arch-exsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,asme_f_28x40in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,auto-fixed-size-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-fixed-size-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-fixed-size-white,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-synchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-synchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-synchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,auto-white,type2 keyword | name(MAX),media name,[RFC2911] +media,axsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,axsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,axsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,b,type2 keyword | name(MAX),size name,[RFC2911] +media,b-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,b-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,b-white,type2 keyword | name(MAX),media name,[RFC2911] +media,bottom,type2 keyword | name(MAX),input tray,[RFC2911] +media,bxsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,bxsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,bxsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,c,type2 keyword | name(MAX),size name,[RFC2911] +media,c-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,c-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,c-white,type2 keyword | name(MAX),media name,[RFC2911] +media,choice_iso_a4_210x297mm_na_letter_8.5x11in,type2 keyword | name(MAX),size name,[PWG5100.7] +media,cxsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,cxsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,cxsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,d,type2 keyword | name(MAX),size name,[RFC2911] +media,d-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,d-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,d-white,type2 keyword | name(MAX),media name,[RFC2911] +media,default,type2 keyword | name(MAX),media name,[RFC2911] +media,dxsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,dxsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,dxsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,e,type2 keyword | name(MAX),size name,[RFC2911] +media,e-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,e-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,e-white,type2 keyword | name(MAX),media name,[RFC2911] +media,envelope,type2 keyword | name(MAX),input tray,[RFC2911] +media,executive,type2 keyword | name(MAX),size name,[RFC2911] +media,executive-white,type2 keyword | name(MAX),media name,[RFC2911] +media,exsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,exsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,exsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,f,type2 keyword | name(MAX),size name,[PWG5101.1] +media,folio,type2 keyword | name(MAX),size name,[RFC2911] +media,folio-white,type2 keyword | name(MAX),media name,[RFC2911] +media,invoice,type2 keyword | name(MAX),size name,[RFC2911] +media,invoice-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a0,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a0-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a0-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a0-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a0xsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a0xsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a0xsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a1-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1x3-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1x3-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1x3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1x4-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1x4-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1x4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1xsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1xsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a1xsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a2-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x3-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x3-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x4-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x4-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x5-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x5-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2x5-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2xsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2xsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a2xsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a3-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x3-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x3-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x4-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x4-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x5-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x5-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x5-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x6-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x6-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x6-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x7-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x7-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3x7-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3xsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3xsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a3xsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a4-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x3-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x3-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x4-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x4-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x5-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x5-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x5-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x6-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x6-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x6-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x7-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x7-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x7-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x8-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x8-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x8-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x9-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x9-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4x9-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4xsynchro-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4xsynchro-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a4xsynchro-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a5,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a5-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a5-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a5-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a5-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a6,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a6-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a7,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a7-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a8,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a8-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a9,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a9-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-a10,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-a10-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b0,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b0-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b1,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b1-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b2,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b2-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b3,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b4,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b4-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b4-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso-b4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b5,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b5-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b5-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso-b5-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b6,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b6-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b7,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b7-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b8,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b8-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b9,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b9-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-b10,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-b10-white,type2 keyword | name(MAX),media name,[RFC2911] +media,iso-c3,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-c3-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso-c4,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-c4-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso-c5,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-c5-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso-c6,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-c6-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso-designated-long,type2 keyword | name(MAX),size name,[RFC2911] +media,iso-designated-long-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,iso_2a0_1189x1682mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a0_841x1189mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a1_594x841mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a1x3_841x1783mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a1x4_841x2378mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a2_420x594mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a2x3_594x1261mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a2x4_594x1682mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a2x5_594x2102mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3-extra_322x445mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3_297x420mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a0x3_1189x2523mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3x3_420x891mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3x4_420x1189mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3x5_420x1486mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3x6_420x1783mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a3x7_420x2080mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4-extra_235.5x322.3mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4-tab_225x297mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4_210x297mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x3_297x630mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x4_297x841mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x5_297x1051mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x6_297x1261mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x7_297x1471mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x8_297x1682mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a4x9_297x1892mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a5-extra_174x235mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a5_148x210mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a6_105x148mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a7_74x105mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a8_52x74mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a9_37x52mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_a10_26x37mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b0_1000x1414mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b1_707x1000mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b2_500x707mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b3_353x500mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b4_250x353mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b5-extra_201x276mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b5_176x250mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b6_125x176mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b6c4_125x324mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b7_88x125mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b8_62x88mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b9_44x62mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_b10_31x44mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c0_917x1297mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c1_648x917mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c2_458x648mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c3_324x458mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c4_229x324mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c5_162x229mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c6_114x162mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c6c5_114x229mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c7_81x114mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c7c6_81x162mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c8_57x81mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c9_40x57mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_c10_28x40mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_dl_110x220mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_id-1_53.98x85.6mm,type2 keyword | name(MAX),size name,[CANON20180329] +media,iso_id-3_88x125mm,type2 keyword | name(MAX),size name,[CANON20180329] +media,iso_ra0_860x1220mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_ra1_610x860mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_ra2_430x610mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_ra3_305x430mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_ra4_215x305mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_sra0_900x1280mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_sra1_640x900mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_sra2_450x640mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_sra3_320x450mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,iso_sra4_225x320mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis-b0,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b0-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b0-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b0-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b1,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b1-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b1-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b1-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b2,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b2-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b2-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b2-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b3,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b3-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b3-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b3-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b4,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b4-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b4-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b4-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b4-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b5,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b5-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b5-translucent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b5-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b5-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b6,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b6-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b7,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b7-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b8,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b8-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b9,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b9-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis-b10,type2 keyword | name(MAX),size name,[RFC2911] +media,jis-b10-white,type2 keyword | name(MAX),media name,[RFC2911] +media,jis_b0_1030x1456mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b1_728x1030mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b2_515x728mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b3_364x515mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b4_257x364mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b5_182x257mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b6_128x182mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b7_91x128mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b8_64x91mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b9_45x64mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_b10_32x45mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jis_exec_216x330mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_chou2_111.1x146mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_chou3_120x235mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_chou4_90x205mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_chou40_90x225mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_hagaki_100x148mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kahu_240x322.1mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kaku1_270x382mm,type2 keyword | name(MAX),size name,[APPLE20171002] +media,jpn_kaku2_240x332mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kaku3_216x277mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kaku4_197x267mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kaku5_190x240mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kaku7_142x205mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_kaku8_119x197mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_oufuku_148x200mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,jpn_you4_105x235mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,large-capacity,type2 keyword | name(MAX),input tray,[RFC2911] +media,ledger,type2 keyword | name(MAX),size name,[RFC2911] +media,ledger-white,type2 keyword | name(MAX),media name,[RFC2911] +media,main,type2 keyword | name(MAX),input tray,[RFC2911] +media,manual,type2 keyword | name(MAX),input tray,[RFC2911] +media,middle,type2 keyword | name(MAX),input tray,[RFC2911] +media,monarch,type2 keyword | name(MAX),size name,[RFC2911] +media,monarch-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-5x7,type2 keyword | name(MAX),size name,[RFC2911] +media,na-6x9,type2 keyword | name(MAX),size name,[RFC2911] +media,na-6x9-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-7x9,type2 keyword | name(MAX),size name,[RFC2911] +media,na-7x9-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-8x10,type2 keyword | name(MAX),size name,[RFC2911] +media,na-9x11,type2 keyword | name(MAX),size name,[RFC2911] +media,na-9x11-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-9x12,type2 keyword | name(MAX),size name,[RFC2911] +media,na-9x12-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-10x13,type2 keyword | name(MAX),size name,[RFC2911] +media,na-10x13-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-10x14,type2 keyword | name(MAX),size name,[RFC2911] +media,na-10x14-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-10x15,type2 keyword | name(MAX),size name,[RFC2911] +media,na-10x15-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-legal,type2 keyword | name(MAX),size name,[RFC2911] +media,na-legal-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,na-legal-white,type2 keyword | name(MAX),media name,[RFC2911] +media,na-letter,type2 keyword | name(MAX),size name,[RFC2911] +media,na-letter-colored,type2 keyword | name(MAX),media name,[RFC2911] +media,na-letter-transparent,type2 keyword | name(MAX),media name,[RFC2911] +media,na-letter-white,type2 keyword | name(MAX),media name,[RFC2911] +media,na-number-9,type2 keyword | name(MAX),size name,[RFC2911] +media,na-number-9-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na-number-10,type2 keyword | name(MAX),size name,[RFC2911] +media,na-number-10-envelope,type2 keyword | name(MAX),envelope name,[RFC2911] +media,na_5x7_5x7in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_6x9_6x9in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_7x9_7x9in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_9x11_9x11in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_10x11_10x11in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_10x13_10x13in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_10x14_10x14in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_10x15_10x15in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_11x12_11x12in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_11x15_11x15in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_12x19_12x19in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_a2_4.375x5.75in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_arch-a_9x12in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_arch-b_12x18in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_arch-c_18x24in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_arch-d_24x36in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_arch-e2_26x38in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,na_arch-e3_27x39in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,na_arch-e_36x48in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_b-plus_12x19.17in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_c5_6.5x9.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_c_17x22in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_d_22x34in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_e_34x44in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_edp_11x14in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_eur-edp_12x14in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_executive_7.25x10.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_f_44x68in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_fanfold-eur_8.5x12in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_fanfold-us_11x14.875in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_foolscap_8.5x13in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_govt-legal_8x13in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_govt-letter_8x10in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_index-3x5_3x5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_index-4x6-ext_6x8in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_index-4x6_4x6in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_index-5x8_5x8in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_invoice_5.5x8.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_ledger_11x17in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_legal-extra_9.5x15in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_legal_8.5x14in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_letter-extra_9.5x12in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_letter-plus_8.5x12.69in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_letter_8.5x11in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_monarch_3.875x7.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_number-9_3.875x8.875in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_number-10_4.125x9.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_number-11_4.5x10.375in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_number-12_4.75x11in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_number-14_5x11.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_oficio_8.5x13.4in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_personal_3.625x6.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_quarto_8.5x10.83in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_super-a_8.94x14in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_super-b_13x19in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,na_wide-format_30x42in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,oe_12x16_12x16in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_14x17_14x17in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_18x22_18x22in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_a2plus_17x24in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_business-card_2x3.5in,type2 keyword | name(MAX),size name,[CANON20180618] +media,oe_photo-10r_10x12in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_photo-20r_20x24in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_photo-l_3.5x5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,oe_photo-s10r_10x15in,type2 keyword | name(MAX),size name,[IPPWG20160229-2] +media,oe_square-photo_4x4in,type2 keyword | name(MAX),size name,[CANON20180618] +media,oe_square-photo_5x5in,type2 keyword | name(MAX),size name,[CANON20180618] +media,om_16k_184x260mm,type2 keyword | name(MAX),size name,[HP-MEDIA] +media,om_16k_195x270mm,type2 keyword | name(MAX),size name,[HP-MEDIA] +media,om_business-card_55x85mm,type2 keyword | name(MAX),size name,[CANON20180618] +media,om_business-card_55x91mm,type2 keyword | name(MAX),size name,[CANON20180618] +media,om_card_54x86mm,type2 keyword | name(MAX),size name,[CANON20180329] +media,om_dai-pa-kai_275x395mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_dsc-photo_89x119mm,type2 keyword | name(MAX),size name,[CANON20180329] +media,om_folio-sp_215x315mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_folio_210x330mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_invite_220x220mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_italian_110x230mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_juuro-ku-kai_198x275mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_large-photo_200x300,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_medium-photo_130x180mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_pa-kai_267x389mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_postfix_114x229mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_small-photo_100x150mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,om_square-photo_89x89mm,type2 keyword | name(MAX),size name,[CANON20180618] +media,om_wide-photo_100x200mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_1_102x165mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_2_102x176mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_3_125x176mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_4_110x208mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_5_110x220mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_6_120x320mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_7_160x230mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_8_120x309mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_10_324x458mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_16k_146x215mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,prc_32k_97x151mm,type2 keyword | name(MAX),size name,[PWG5101.1] +media,quarto,type2 keyword | name(MAX),size name,[RFC2911] +media,quarto-white,type2 keyword | name(MAX),media name,[RFC2911] +media,roc_8k_10.75x15.5in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,roc_16k_7.75x10.75in,type2 keyword | name(MAX),size name,[PWG5101.1] +media,side,type2 keyword | name(MAX),input tray,[RFC2911] +media,super-b,type2 keyword | name(MAX),size name,[PWG5101.1] +media,tabloid,type2 keyword | name(MAX),size name,[PWG5101.1] +media,top,type2 keyword | name(MAX),input tray,[RFC2911] +media-back-coating,,type2 keyword | name(MAX),,[PWG5100.3] +media-back-coating,glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-back-coating,high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-back-coating,matte,type2 keyword | name(MAX),,[PWG5101.1] +media-back-coating,none,type2 keyword | name(MAX),,[PWG5101.1] +media-back-coating,satin,type2 keyword | name(MAX),,[PWG5101.1] +media-back-coating,semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-back-coating-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.3] +media-back-coating-supported,"<Any ""media-back-coating"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.3] +media-color,,type2 keyword | name(MAX),,[PWG5100.7] +media-color,black,type2 keyword | name(MAX),,[PWG5101.1] +media-color,blue,type2 keyword | name(MAX),,[PWG5101.1] +media-color,brown,type2 keyword | name(MAX),,[PWG5101.1] +media-color,buff,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-black,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-blue,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-brown,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-buff,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-cyan,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-gold,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-goldenrod,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-gray,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-green,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-ivory,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-magenta,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-multi-color,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-mustard,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-orange,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-pink,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-red,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-silver,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-turquoise,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-violet,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-white,type2 keyword | name(MAX),,[PWG5101.1] +media-color,clear-yellow,type2 keyword | name(MAX),,[PWG5101.1] +media-color,cyan,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-blue,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-brown,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-buff,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-cyan,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-gold,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-goldenrod,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-gray,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-green,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-ivory,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-magenta,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-mustard,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-orange,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-pink,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-red,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-silver,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-turquoise,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-violet,type2 keyword | name(MAX),,[PWG5101.1] +media-color,dark-yellow,type2 keyword | name(MAX),,[PWG5101.1] +media-color,gold,type2 keyword | name(MAX),,[PWG5101.1] +media-color,goldenrod,type2 keyword | name(MAX),,[PWG5101.1] +media-color,gray,type2 keyword | name(MAX),,[PWG5101.1] +media-color,green,type2 keyword | name(MAX),,[PWG5101.1] +media-color,ivory,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-black,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-blue,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-brown,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-buff,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-cyan,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-gold,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-goldenrod,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-gray,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-green,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-ivory,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-magenta,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-mustard,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-orange,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-pink,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-red,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-silver,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-turquoise,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-violet,type2 keyword | name(MAX),,[PWG5101.1] +media-color,light-yellow,type2 keyword | name(MAX),,[PWG5101.1] +media-color,magenta,type2 keyword | name(MAX),,[PWG5101.1] +media-color,multi-color,type2 keyword | name(MAX),,[PWG5101.1] +media-color,mustard,type2 keyword | name(MAX),,[PWG5101.1] +media-color,no-color,type2 keyword | name(MAX),,[PWG5101.1] +media-color,orange,type2 keyword | name(MAX),,[PWG5101.1] +media-color,pink,type2 keyword | name(MAX),,[PWG5101.1] +media-color,red,type2 keyword | name(MAX),,[PWG5101.1] +media-color,silver,type2 keyword | name(MAX),,[PWG5101.1] +media-color,turquoise,type2 keyword | name(MAX),,[PWG5101.1] +media-color,violet,type2 keyword | name(MAX),,[PWG5101.1] +media-color,white,type2 keyword | name(MAX),,[PWG5101.1] +media-color,yellow,type2 keyword | name(MAX),,[PWG5101.1] +media-color-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.3] +media-color-supported,"<Any ""media-color"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.3] +media-default,,no-value | type2 keyword | name(MAX),,[RFC8011] +media-default,"<Any ""media"" value>",no-value | type2 keyword | name(MAX),,[RFC8011] +media-front-coating,,type2 keyword | name(MAX),,[PWG5100.7] +media-front-coating,"<Any ""media-back-coating"" value>",type2 keyword | name(MAX),,[PWG5100.7] +media-front-coating-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-front-coating-supported,"<Any ""media-back-coating"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-grain,,type2 keyword | name(MAX),,[PWG5100.7] +media-grain,x-direction,type2 keyword | name(MAX),,[PWG5100.7] +media-grain,y-direction,type2 keyword | name(MAX),,[PWG5100.7] +media-grain-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-grain-supported,"<Any ""media-grain"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-input-tray-check,,type2 keyword | name(MAX),,[PWG5100.3] +media-input-tray-check,"<Any ""media"" input tray value>",type2 keyword | name(MAX),,[PWG5100.3] +media-pre-printed,,type2 keyword | name(MAX),,[PWG5100.7] +media-pre-printed,blank,type2 keyword | name(MAX),,[PWG5100.7] +media-pre-printed,letter-head,type2 keyword | name(MAX),,[PWG5100.7] +media-pre-printed,pre-printed,type2 keyword | name(MAX),,[PWG5100.7] +media-pre-printed-supported,,type2 keyword | name(MAX),,[PWG5100.7] +media-pre-printed-supported,"<Any ""media-pre-printed"" value>",type2 keyword | name(MAX),,[PWG5100.7] +media-ready,,1setOf (type2 keyword | name(MAX)),,[RFC8011] +media-ready,"<Any ""media"" media or size value>",1setOf (type2 keyword | name(MAX)),,[RFC8011] +media-recycled,,type2 keyword | name(MAX),,[PWG5100.7] +media-recycled,none,type2 keyword | name(MAX),,[PWG5100.7] +media-recycled,standard,type2 keyword | name(MAX),,[PWG5100.7] +media-recycled-supported,,type2 keyword | name(MAX),,[PWG5100.7] +media-recycled-supported,"<Any ""media-recycled"" value>",type2 keyword | name(MAX),,[PWG5100.7] +media-source,,type2 keyword | name(MAX),,[PWG5100.7] +media-source,alternate,type2 keyword | name(MAX),,[PWG5100.7] +media-source,alternate-roll,type2 keyword | name(MAX),,[PWG5100.7] +media-source,auto,type2 keyword | name(MAX),,[PWG5100.7] +media-source,bottom,type2 keyword | name(MAX),,[PWG5100.7] +media-source,by-pass-tray,type2 keyword | name(MAX),,[PWG5100.7] +media-source,center,type2 keyword | name(MAX),,[PWG5100.7] +media-source,disc,type2 keyword | name(MAX),,[PWG5100.7] +media-source,envelope,type2 keyword | name(MAX),,[PWG5100.7] +media-source,hagaki,type2 keyword | name(MAX),,[PWG5100.7] +media-source,large-capacity,type2 keyword | name(MAX),,[PWG5100.7] +media-source,left,type2 keyword | name(MAX),,[PWG5100.7] +media-source,main,type2 keyword | name(MAX),,[PWG5100.7] +media-source,main-roll,type2 keyword | name(MAX),,[PWG5100.7] +media-source,manual,type2 keyword | name(MAX),,[PWG5100.7] +media-source,middle,type2 keyword | name(MAX),,[PWG5100.7] +media-source,photo,type2 keyword | name(MAX),,[PWG5100.7] +media-source,rear,type2 keyword | name(MAX),,[PWG5100.7] +media-source,right,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-1,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-2,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-3,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-4,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-5,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-6,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-7,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-8,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-9,type2 keyword | name(MAX),,[PWG5100.7] +media-source,roll-10,type2 keyword | name(MAX),,[PWG5100.7] +media-source,side,type2 keyword | name(MAX),,[PWG5100.7] +media-source,top,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-1,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-2,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-3,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-4,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-5,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-6,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-7,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-8,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-9,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-10,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-11,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-12,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-13,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-14,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-15,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-16,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-17,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-18,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-19,type2 keyword | name(MAX),,[PWG5100.7] +media-source,tray-20,type2 keyword | name(MAX),,[PWG5100.7] +media-source-feed-direction,,type2 keyword,,[PWG5100.7] +media-source-feed-direction,"<Any ""feed-orientation"" value>",type2 keyword,,[PWG5100.7] +media-source-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-source-supported,"<Any ""media-source"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-supported,,1setOf (type2 keyword | name(MAX)),,[RFC8011] +media-supported,"<Any ""media"" value>",1setOf (type2 keyword | name(MAX)),,[RFC8011] +media-tooth,,type2 keyword | name(MAX),,[PWG5100.7] +media-tooth,antique,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,calendared,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,coarse,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,fine,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,linen,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,medium,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,smooth,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,stipple,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,uncalendared,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth,vellum,type2 keyword | name(MAX),,[PWG5101.1] +media-tooth-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-tooth-supported,"<Any ""media-tooth"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-type,,type2 keyword | name(MAX),,[PWG5100.7] +media-type,aluminum,type2 keyword | name(MAX),,[PWG5101.1] +media-type,auto,type2 keyword | name(MAX),,[PWG5101.1] +media-type,back-print-film,type2 keyword | name(MAX),,[PWG5101.1] +media-type,cardboard,type2 keyword | name(MAX),,[PWG5101.1] +media-type,cardstock,type2 keyword | name(MAX),,[PWG5101.1] +media-type,cd,type2 keyword | name(MAX),,[PWG5101.1] +media-type,continuous,type2 keyword | name(MAX),,[PWG5101.1] +media-type,continuous-long,type2 keyword | name(MAX),,[PWG5101.1] +media-type,continuous-short,type2 keyword | name(MAX),,[PWG5101.1] +media-type,corrugated-board,type2 keyword | name(MAX),,[PWG5101.1] +media-type,disc,type2 keyword | name(MAX),,[PWG5101.1] +media-type,disc-glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-type,disc-high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,disc-matte,type2 keyword | name(MAX),,[PWG5101.1] +media-type,disc-satin,type2 keyword | name(MAX),,[PWG5101.1] +media-type,disc-semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,double-wall,type2 keyword | name(MAX),,[PWG5101.1] +media-type,dry-film,type2 keyword | name(MAX),,[PWG5101.1] +media-type,dvd,type2 keyword | name(MAX),,[PWG5101.1] +media-type,embossing-foil,type2 keyword | name(MAX),,[PWG5101.1] +media-type,end-board,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-archival,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-bond,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-coated,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-cotton,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-fine,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-heavyweight,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-inkjet,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-lightweight,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-plain,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-preprinted,type2 keyword | name(MAX),,[PWG5101.1] +media-type,envelope-window,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric-archival,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric-glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric-high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric-matte,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric-semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,fabric-waterproof,type2 keyword | name(MAX),,[PWG5101.1] +media-type,film,type2 keyword | name(MAX),,[PWG5101.1] +media-type,flexo-base,type2 keyword | name(MAX),,[PWG5101.1] +media-type,flexo-photo-polymer,type2 keyword | name(MAX),,[PWG5101.1] +media-type,flute,type2 keyword | name(MAX),,[PWG5101.1] +media-type,foil,type2 keyword | name(MAX),,[PWG5101.1] +media-type,full-cut-tabs,type2 keyword | name(MAX),,[PWG5101.1] +media-type,glass,type2 keyword | name(MAX),,[PWG5101.1] +media-type,glass-colored,type2 keyword | name(MAX),,[PWG5101.1] +media-type,glass-opaque,type2 keyword | name(MAX),,[PWG5101.1] +media-type,glass-surfaced,type2 keyword | name(MAX),,[PWG5101.1] +media-type,glass-textured,type2 keyword | name(MAX),,[PWG5101.1] +media-type,gravure-cylinder,type2 keyword | name(MAX),,[PWG5101.1] +media-type,image-setter-paper,type2 keyword | name(MAX),,[PWG5101.1] +media-type,imaging-cylinder,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-colored,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-inkjet,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-matte,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-permanent,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-satin,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-security,type2 keyword | name(MAX),,[PWG5101.1] +media-type,labels-semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,laminating-foil,type2 keyword | name(MAX),,[PWG5101.1] +media-type,letterhead,type2 keyword | name(MAX),,[PWG5101.1] +media-type,metal,type2 keyword | name(MAX),,[PWG5101.1] +media-type,metal-glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-type,metal-high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,metal-matte,type2 keyword | name(MAX),,[PWG5101.1] +media-type,metal-satin,type2 keyword | name(MAX),,[PWG5101.1] +media-type,metal-semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,mounting-tape,type2 keyword | name(MAX),,[PWG5101.1] +media-type,multi-layer,type2 keyword | name(MAX),,[PWG5101.1] +media-type,multi-part-form,type2 keyword | name(MAX),,[PWG5101.1] +media-type,other,type2 keyword | name(MAX),,[PWG5101.1] +media-type,paper,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-archival,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-film,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-matte,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-satin,type2 keyword | name(MAX),,[PWG5101.1] +media-type,photographic-semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-archival,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-colored,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-glossy,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-high-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-matte,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-satin,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plastic-semi-gloss,type2 keyword | name(MAX),,[PWG5101.1] +media-type,plate,type2 keyword | name(MAX),,[PWG5101.1] +media-type,polyester,type2 keyword | name(MAX),,[PWG5101.1] +media-type,pre-cut-tabs,type2 keyword | name(MAX),,[PWG5101.1] +media-type,roll,type2 keyword | name(MAX),,[PWG5101.1] +media-type,screen,type2 keyword | name(MAX),,[PWG5101.1] +media-type,screen-paged,type2 keyword | name(MAX),,[PWG5101.1] +media-type,self-adhesive,type2 keyword | name(MAX),,[PWG5101.1] +media-type,self-adhesive-film,type2 keyword | name(MAX),,[PWG5101.1] +media-type,shrink-foil,type2 keyword | name(MAX),,[PWG5101.1] +media-type,single-face,type2 keyword | name(MAX),,[PWG5101.1] +media-type,single-wall,type2 keyword | name(MAX),,[PWG5101.1] +media-type,sleeve,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-archival,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-coated,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-cotton,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-fine,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-heavyweight,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-heavyweight-coated,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-inkjet,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-letterhead,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-lightweight,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-preprinted,type2 keyword | name(MAX),,[PWG5101.1] +media-type,stationery-prepunched,type2 keyword | name(MAX),,[PWG5101.1] +media-type,tab-stock,type2 keyword | name(MAX),,[PWG5101.1] +media-type,tractor,type2 keyword | name(MAX),,[PWG5101.1] +media-type,transfer,type2 keyword | name(MAX),,[PWG5101.1] +media-type,transparency,type2 keyword | name(MAX),,[PWG5101.1] +media-type,triple-wall,type2 keyword | name(MAX),,[PWG5101.1] +media-type,wet-film,type2 keyword | name(MAX),,[PWG5101.1] +media-type-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +media-type-supported,"<Any ""media-type"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.7] +multiple-document-handling,,type2 keyword,,[RFC8011] +multiple-document-handling,separate-documents-collated-copies,type2 keyword,,[RFC8011] +multiple-document-handling,separate-documents-uncollated-copies,type2 keyword,,[RFC8011] +multiple-document-handling,single-document,type2 keyword,,[RFC8011] +multiple-document-handling,single-document-new-sheet,type2 keyword,,[RFC8011] +multiple-document-handling-default,,type2 keyword,,[RFC8011] +multiple-document-handling-default,"<Any ""multiple-document-handling"" value>",type2 keyword,,[RFC8011] +multiple-document-handling-supported,,1setOf (type2 keyword),,[RFC8011] +multiple-document-handling-supported,"<Any ""multiple-document-handling"" value>",1setOf (type2 keyword),,[RFC8011] +multiple-object-handling,,type2 keyword,,[PWG5100.21] +multiple-object-handling,auto,type2 keyword,,[PWG5100.21] +multiple-object-handling,best-fit,type2 keyword,,[PWG5100.21] +multiple-object-handling,best-quality,type2 keyword,,[PWG5100.21] +multiple-object-handling,best-speed,type2 keyword,,[PWG5100.21] +multiple-object-handling,one-at-a-time,type2 keyword,,[PWG5100.21] +multiple-object-handling-actual,,1setOf type2 keyword,,[PWG5100.21] +multiple-object-handling-actual,< any multiple-object-handling Job Template attribute value >,1setOf type2 keyword,,[PWG5100.21] +multiple-object-handling-default,,type2 keyword,,[PWG5100.21] +multiple-object-handling-default,< any multiple-object-handling Job Template attribute value >,type2 keyword,,[PWG5100.21] +multiple-object-handling-supported,,1setOf type2 keyword,,[PWG5100.21] +multiple-object-handling-supported,< any multiple-object-handling Job Template attribute value >,1setOf type2 keyword,,[PWG5100.21] +multiple-operation-time-out-action,,type2 keyword,,[PWG5100.13] +multiple-operation-time-out-action,abort-job,type2 keyword,,[PWG5100.13] +multiple-operation-time-out-action,hold-job,type2 keyword,,[PWG5100.13] +multiple-operation-time-out-action,process-job,type2 keyword,,[PWG5100.13] +notify-events,,1setOf type2 keyword,,[RFC3995] +notify-events,document-completed,1setOf type2 keyword,,[PWG5100.18] +notify-events,document-config-changed,1setOf type2 keyword,,[PWG5100.18] +notify-events,document-created,1setOf type2 keyword,,[PWG5100.18] +notify-events,document-fetchable,1setOf type2 keyword,,[PWG5100.18] +notify-events,document-state-changed,1setOf type2 keyword,,[PWG5100.18] +notify-events,document-stopped,1setOf type2 keyword,,[PWG5100.18] +notify-events,job-completed,1setOf type2 keyword,Job Events,[RFC3995] +notify-events,job-config-changed,1setOf type2 keyword,Job Events,[RFC3995] +notify-events,job-created,1setOf type2 keyword,Job Events,[RFC3995] +notify-events,job-fetchable,1setOf type2 keyword,,[PWG5100.18] +notify-events,job-progress,1setOf type2 keyword,Job Events,[RFC3995] +notify-events,job-state-changed,1setOf type2 keyword,Job Events,[RFC3995] +notify-events,job-stopped,1setOf type2 keyword,Job Events,[RFC3995] +notify-events,none,1setOf type2 keyword,No Events,[RFC3995] +notify-events,printer-config-changed,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-created,1setOf type2 keyword,,[PWG5100.22] +notify-events,printer-deleted,1setOf type2 keyword,,[PWG5100.22] +notify-events,printer-finishings-changed,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-media-changed,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-queue-order-changed,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-restarted,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-shutdown,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-state-changed,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,printer-stopped,1setOf type2 keyword,Printer Events,[RFC3995] +notify-events,resource-canceled,1setOf type2 keyword,,[PWG5100.22] +notify-events,resource-config-changed,1setOf type2 keyword,,[PWG5100.22] +notify-events,resource-created,1setOf type2 keyword,,[PWG5100.22] +notify-events,resource-installed,1setOf type2 keyword,,[PWG5100.22] +notify-events,resource-state-changed,1setOf type2 keyword,,[PWG5100.22] +notify-events,system-config-changed,1setOf type2 keyword,,[PWG5100.22] +notify-events,system-restarted,1setOf type2 keyword,,[PWG5100.22] +notify-events,system-shutdown,1setOf type2 keyword,,[PWG5100.22] +notify-events,system-state-changed,1setOf type2 keyword,,[PWG5100.22] +notify-events,system-stopped,1setOf type2 keyword,,[PWG5100.22] +notify-events-default,,1setOf type2 keyword,,[RFC3995] +notify-events-default,"<Any ""notify-events"" value>",1setOf type2 keyword,,[RFC3995] +notify-events-supported,,1setOf type2 keyword,,[RFC3995] +notify-events-supported,"<Any ""notify-events"" value>",1setOf type2 keyword,,[RFC3995] +notify-pull-method,,type2 keyword,,[RFC3995] +notify-pull-method,ippget,type2 keyword,,[RFC3996] +notify-pull-method-supported,,1setOf type2 keyword,,[RFC3995] +notify-pull-method-supported,"<Any ""notify-pull-method"" value>",1setOf type2 keyword,,[RFC3995] +notify-subscribed-event,,type2 keyword,,[RFC3995] +notify-subscribed-event,"<Any ""notify-events"" value>",type2 keyword,,[RFC3995] +output-bin,,type2 keyword,,[PWG5100.2] +output-bin,auto,type2 keyword,,[APPLE-OUTPUT-BIN] +output-bin,bottom,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,center,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,face-down,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,face-up,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,large-capacity,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,left,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-1,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-2,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-3,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-4,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-5,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-6,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-7,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-8,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-9,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,mailbox-10,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,middle,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,my-mailbox,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,rear,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,right,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,side,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-1,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-2,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-3,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-4,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-5,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-6,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-7,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-8,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-9,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,stacker-10,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,top,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-1,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-2,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-3,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-4,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-5,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-6,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-7,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-8,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-9,type2 keyword | name(MAX),,[PWG5100.2] +output-bin,tray-10,type2 keyword | name(MAX),,[PWG5100.2] +output-bin-default,,type2 keyword | name(MAX),,[PWG5100.2] +output-bin-default,"<Any ""output-bin"" value>",type2 keyword | name(MAX),,[PWG5100.2] +output-bin-supported,,1setof (type2 keyword | name(MAX)),,[PWG5100.2] +output-bin-supported,"<Any ""output-bin"" value>",1setof (type2 keyword | name(MAX)),,[PWG5100.2] +page-delivery,,type2 keyword,,[PWG5100.3] +page-delivery,reverse-order-face-down,type2 keyword,,[PWG5100.3] +page-delivery,reverse-order-face-up,type2 keyword,,[PWG5100.3] +page-delivery,same-order-face-down,type2 keyword,,[PWG5100.3] +page-delivery,same-order-face-up,type2 keyword,,[PWG5100.3] +page-delivery,system-specified,type2 keyword,,[PWG5100.3] +page-delivery-default,,type2 keyword,,[PWG5100.3] +page-delivery-default,"<Any ""page-delivery"" value>",type2 keyword,,[PWG5100.3] +page-delivery-supported,,1setOf type2 keyword,,[PWG5100.3] +page-delivery-supported,"<Any ""page-delivery"" value>",1setOf type2 keyword,,[PWG5100.3] +page-order-received,,type2 keyword,,[PWG5100.3] +page-order-received,1-to-n-order,type2 keyword,,[PWG5100.3] +page-order-received,n-to-1-order,type2 keyword,,[PWG5100.3] +page-order-received-default,,type2 keyword,,[PWG5100.3] +page-order-received-default,"<Any ""page-order-received"" value>",type2 keyword,,[PWG5100.3] +page-order-received-supported,,1setOf type2 keyword,,[PWG5100.3] +page-order-received-supported,"<Any ""page-order-received"" value>",1setOf type2 keyword,,[PWG5100.3] +pclm-raster-back-side,,keyword,,[HP20180907] +pclm-raster-back-side,flipped,keyword,,[HP20180907] +pclm-raster-back-side,normal,keyword,,[HP20180907] +pclm-raster-back-side,rotated,keyword,,[HP20180907] +pdf-features-supported,,1setOf type2 keyword,,[PWG5100.21] +pdf-features-supported,prc,1setOf type2 keyword,,[PWG5100.21] +pdf-features-supported,u3d,1setOf type2 keyword,,[PWG5100.21] +pdf-versions-supported,,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,adobe-1.3,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,adobe-1.4,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,adobe-1.5,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,adobe-1.6,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-15930-1_2001,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-15930-3_2002,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-15930-4_2003,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-15930-6_2003,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-15930-7_2010,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-15930-8_2010,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-16612-2_2010,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-19005-1_2005,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-19005-2_2011,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-19005-3_2012,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,iso-32000-1_2008,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,none,1setOf type2 keyword,,[PWG5100.16] +pdf-versions-supported,pwg-5102.3,1setOf type2 keyword,,[PWG5100.16] +pdl-init-file-supported,,1setOf type2 keyword,,[PWG5100.11] +pdl-init-file-supported,pdl-init-file-entry,1setOf type2 keyword,,[PWG5100.11] +pdl-init-file-supported,pdl-init-file-location,1setOf type2 keyword,,[PWG5100.11] +pdl-init-file-supported,pdl-init-file-name,1setOf type2 keyword,,[PWG5100.11] +pdl-override-supported,,type2 keyword,,[RFC8011] +pdl-override-supported,attempted,type2 keyword,,[RFC8011] +pdl-override-supported,guaranteed,type2 keyword,,[PWG5100.11] +pdl-override-supported,not-attempted,type2 keyword,,[RFC8011] +platform-shape,,type2 keyword,,[APPLE20170629] +platform-shape,ellipse,type2 keyword,,[APPLE20170629] +platform-shape,rectangle,type2 keyword,,[APPLE20170629] +presentation-direction-number-up,,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,tobottom-toleft,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,tobottom-toright,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,toleft-tobottom,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,toleft-totop,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,toright-tobottom,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,toright-totop,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,totop-toleft,type2 keyword,,[PWG5100.3] +presentation-direction-number-up,totop-toright,type2 keyword,,[PWG5100.3] +presentation-direction-number-up-default,,type2 keyword,,[PWG5100.3] +presentation-direction-number-up-default,"<Any ""presentation-direction-number-up"" value>",type2 keyword,,[PWG5100.3] +presentation-direction-number-up-supported,,1setOf type2 keyword,,[PWG5100.3] +presentation-direction-number-up-supported,"<Any ""presentation-direction-number-up"" value>",1setOf type2 keyword,,[PWG5100.3] +print-base,,type2 keyword,,[PWG5100.21] +print-base,brim,type2 keyword,,[PWG5100.21] +print-base,none,type2 keyword,,[PWG5100.21] +print-base,raft,type2 keyword,,[PWG5100.21] +print-base,skirt,type2 keyword,,[PWG5100.21] +print-base,standard,type2 keyword,,[PWG5100.21] +print-base-actual,,1setOf type2 keyword,,[PWG5100.21] +print-base-actual,< any print-base Job Template attribute value >,1setOf type2 keyword,,[PWG5100.21] +print-base-default,,type2 keyword,,[PWG5100.21] +print-base-default,< any print-base Job Template attribute value >,type2 keyword,,[PWG5100.21] +print-base-supported,,1setOf type2 keyword,,[PWG5100.21] +print-base-supported,< any print-base Job Template attribute value >,1setOf type2 keyword,,[PWG5100.21] +print-color-mode,,type2 keyword,,[PWG5100.13] +print-color-mode,auto,type2 keyword,,[PWG5100.13] +print-color-mode,auto-monochrome,type2 keyword,,[APPLE20171101] +print-color-mode,bi-level,type2 keyword,,[PWG5100.13] +print-color-mode,color,type2 keyword,,[PWG5100.13] +print-color-mode,highlight,type2 keyword,,[PWG5100.13] +print-color-mode,monochrome,type2 keyword,,[PWG5100.13] +print-color-mode,process-bi-level,type2 keyword,,[PWG5100.13] +print-color-mode,process-monochrome,type2 keyword,,[PWG5100.13] +print-color-mode-default,,type2 keyword,,[PWG5100.13] +print-color-mode-default,"<Any ""print-color-mode"" value>",type2 keyword,,[PWG5100.13] +print-color-mode-supported,,1setOf type2 keyword,,[PWG5100.13] +print-color-mode-supported,"<Any ""print-color-mode"" value>",1setOf type2 keyword,,[PWG5100.13] +print-content-optimize,,type2 keyword,,[PWG5100.7] +print-content-optimize,auto,type2 keyword,,[PWG5100.13] +print-content-optimize,graphic,type2 keyword,,[PWG5100.7] +print-content-optimize,photo,type2 keyword,,[PWG5100.7] +print-content-optimize,text,type2 keyword,,[PWG5100.7] +print-content-optimize,text-and-graphic,type2 keyword,,[PWG5100.7] +print-content-optimize-actual,,1setOf type2 keyword,,[PWG5100.7] +print-content-optimize-actual,"<Any ""print-content-optimize"" value>",1setOf type2 keyword,,[PWG5100.7] +print-content-optimize-default,,type2 keyword,,[PWG5100.7] +print-content-optimize-default,"<Any ""print-content-optimize"" value>",type2 keyword,,[PWG5100.7] +print-content-optimize-supported,,1setOf type2 keyword,,[PWG5100.7] +print-content-optimize-supported,"<Any ""print-content-optimize"" value>",1setOf type2 keyword,,[PWG5100.7] +print-objects-supported,,1setOf type2 keyword,,[PWG5100.21] +print-objects-supported,< any print-objects member attribute name >,1setOf type2 keyword,,[PWG5100.21] +print-rendering-intent,,type2 keyword,,[PWG5100.13] +print-rendering-intent,absolute,type2 keyword,,[PWG5100.13] +print-rendering-intent,auto,type2 keyword,,[PWG5100.13] +print-rendering-intent,perceptual,type2 keyword,,[PWG5100.13] +print-rendering-intent,relative,type2 keyword,,[PWG5100.13] +print-rendering-intent,relative-bpc,type2 keyword,,[PWG5100.13] +print-rendering-intent,saturation,type2 keyword,,[PWG5100.13] +print-rendering-intent-default,,type2 keyword,,[PWG5100.13] +print-rendering-intent-default,"<Any ""print-rendering-intent"" value>",type2 keyword,,[PWG5100.13] +print-rendering-intent-supported,,1setOf type2 keyword,,[PWG5100.13] +print-rendering-intent-supported,"<Any ""print-rendering-intent"" value>",1setOf type2 keyword,,[PWG5100.13] +print-scaling,,type2 keyword,,[PWG5100.16] +print-scaling,auto,type2 keyword,,[PWG5100.16] +print-scaling,auto-fit,type2 keyword,,[PWG5100.16] +print-scaling,fill,type2 keyword,,[PWG5100.16] +print-scaling,fit,type2 keyword,,[PWG5100.16] +print-scaling,none,type2 keyword,,[PWG5100.16] +print-supports,,type2 keyword,,[PWG5100.21] +print-supports,material,type2 keyword,,[PWG5100.21] +print-supports,none,type2 keyword,,[PWG5100.21] +print-supports,standard,type2 keyword,,[PWG5100.21] +print-supports-actual,,1setOf type2 keyword,,[PWG5100.21] +print-supports-actual,< any print-supports Job Template attribute value >,1setOf type2 keyword,,[PWG5100.21] +print-supports-default,,type2 keyword,,[PWG5100.21] +print-supports-default,< any print-supports Job Template attribute value >,type2 keyword,,[PWG5100.21] +print-supports-supported,,1setOf type2 keyword,,[PWG5100.21] +print-supports-supported,< any print-supports Job Template attribute value >,1setOf type2 keyword,,[PWG5100.21] +printer-kind,,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,disc,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,document,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,envelope,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,label,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,large-format,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,photo,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,postcard,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,receipt,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-kind,roll,1setOf (type2 keyword | name(MAX)),,[PWG5100.16] +printer-service-type,,type2 keyword,,[PWG5100.22] +printer-service-type,copy,type2 keyword,,[PWG5100.22] +printer-service-type,faxin,type2 keyword,,[PWG5100.22] +printer-service-type,faxout,type2 keyword,,[PWG5100.22] +printer-service-type,print,type2 keyword,,[PWG5100.22] +printer-service-type,print3d,type2 keyword,,[PWG5100.22] +printer-service-type,scan,type2 keyword,,[PWG5100.22] +printer-service-type,transform,type2 keyword,,[PWG5100.22] +printer-state-reasons,,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,alert-removal-of-binary-change-entry,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,bander-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,binder-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,camera-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,chamber-cooling,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,chamber-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,chamber-heating,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,chamber-temperature-high,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,chamber-temperature-low,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,cleaner-life-almost-over,1setOf type2 keyword,,[PWG5100.13] +printer-state-reasons,cleaner-life-over,1setOf type2 keyword,,[PWG5100.13] +printer-state-reasons,configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,connecting-to-device,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,cover-open,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,deactivated,1setOf type2 keyword,,[RFC3998] +printer-state-reasons,deleted,1setOf type2 keyword,,[PWG5100.22] +printer-state-reasons,developer-empty,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,developer-low,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,die-cutter-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,die-cutter-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,door-open,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,extruder-cooling,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,extruder-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,extruder-heating,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,extruder-jam,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,extruder-temperature-high,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,extruder-temperature-low,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,fan-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,fax-modem-life-almost-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,fax-modem-life-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,fax-modem-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,fax-modem-turned-off,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,fax-modem-turned-on,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,folder-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,folder-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,fuser-over-temp,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,fuser-under-temp,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,hibernate,1setOf type2 keyword,,[PWG5106.4] +printer-state-reasons,hold-new-jobs,1setOf type2 keyword,,[RFC3998] +printer-state-reasons,identify-printer-requested,1setOf type2 keyword,,[PWG5100.18] +printer-state-reasons,imprinter-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,imprinter-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-cannot-feed-size-selected,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-manual-input-request,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-media-color-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-media-form-parts-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-media-size-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-media-tray-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-media-tray-feed-error,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-media-tray-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-media-type-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-media-weight-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-pick-roller-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-pick-roller-life-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-pick-roller-life-warn,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-pick-roller-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,input-tray-elevation-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,input-tray-missing,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,input-tray-position-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,inserter-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interlock-open,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,interpreter-cartridge-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-cartridge-deleted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-complex-page-encountered,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-memory-decrease,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-memory-increase,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-resource-deleted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,interpreter-resource-unavailable,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,lamp-at-eol,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,lamp-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,lamp-near-eol,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,laser-at-eol,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,laser-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,laser-near-eol,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,make-envelope-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,make-envelope-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-adjusting-print-quality,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-cleaner-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-developer-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-developer-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-developer-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-fuser-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-fuser-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-fuser-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-ink-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-ink-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-ink-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-opc-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-print-ribbon-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-print-ribbon-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-print-ribbon-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-supply-almost-empty,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-supply-empty,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,marker-supply-low,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,marker-supply-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-toner-cartridge-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-toner-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-waste-almost-full,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,marker-waste-full,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,marker-waste-ink-receptacle-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-waste-ink-receptacle-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-waste-ink-receptacle-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-waste-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,marker-waste-toner-receptacle-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-waste-toner-receptacle-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,marker-waste-toner-receptacle-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,material-empty,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,material-low,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,material-needed,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,media-drying,1setOf type2 keyword,,[HP20181213] +printer-state-reasons,media-empty,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,media-jam,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,media-low,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,media-needed,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,media-path-cannot-duplex-media-selected,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,media-path-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-input-empty,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-input-feed-error,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-input-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-input-request,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-media-tray-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,media-path-media-tray-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,media-path-media-tray-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,media-path-output-feed-error,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-output-full,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-output-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-pick-roller-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-pick-roller-life-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-pick-roller-life-warn,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,media-path-pick-roller-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,motor-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,moving-to-paused,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,none,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,opc-life-over,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,opc-near-eol,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,other,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,output-area-almost-full,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,output-area-full,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,output-mailbox-select-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,output-media-tray-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,output-media-tray-feed-error,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,output-media-tray-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,output-tray-missing,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,paused,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,perforater-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,perforater-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,platform-cooling,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,platform-failure,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,platform-heating,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,platform-temperature-high,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,platform-temperature-low,1setOf type2 keyword,,[PWG5100.21] +printer-state-reasons,power-down,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,power-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,printer-manual-reset,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,printer-nms-reset,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,printer-ready-to-print,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,puncher-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,resuming,1setOf type2 keyword,,[PWG5100.22] +printer-state-reasons,scan-media-path-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-input-empty,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-input-feed-error,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-input-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-input-request,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-output-feed-error,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-output-full,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-output-jam,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-pick-roller-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-pick-roller-life-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-pick-roller-life-warn,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-pick-roller-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-tray-almost-full,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-tray-full,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scan-media-path-tray-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-light-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-light-life-almost-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-light-life-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-light-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-sensor-failure,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-sensor-life-almost-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-sensor-life-over,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,scanner-sensor-missing,1setOf type2 keyword,,[PWG5107.3] +printer-state-reasons,separation-cutter-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,separation-cutter-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,sheet-rotator-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,shutdown,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,slitter-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,slitter-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,spool-area-full,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,stacker-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stacker-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,standby,1setOf type2 keyword,,[PWG5106.4] +printer-state-reasons,stapler-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stapler-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stitcher-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,stopped-partly,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,stopping,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,subunit-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-cooling-down,1setOf type2 keyword,,[HPINC20180215] +printer-state-reasons,subunit-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-timing-Failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-unrecoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,subunit-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,suspend,1setOf type2 keyword,,[PWG5106.4] +printer-state-reasons,testing,1setOf type2 keyword,,[PWG5100.22] +printer-state-reasons,timed-out,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,toner-empty,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,toner-low,1setOf type2 keyword,,[RFC8011] +printer-state-reasons,trimmer-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,trimmer-warming-up,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,unknown,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-almost-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-almost-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-at-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-configuration-change,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-cover-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-cover-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-empty,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-full,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-interlock-closed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-interlock-open,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-jam,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-life-almost-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-life-over,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-memory-exhausted,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-missing,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-motor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-near-limit,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-offline,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-opened,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-over-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-power-saver,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-recoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-recoverable-storage,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-resource-added,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-resource-removed,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-thermistor-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-timing-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-turned-off,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-turned-on,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-under-temperature,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-unrecoverable-failure,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-unrecoverable-storage-error,1setOf type2 keyword,,[PWG5100.9] +printer-state-reasons,wrapper-warming-up,1setOf type2 keyword,,[PWG5100.9] +punching-reference-edge,,type1 keyword,,[PWG5100.1] +punching-reference-edge,bottom,type1 keyword,,[PWG5100.1] +punching-reference-edge,left,type1 keyword,,[PWG5100.1] +punching-reference-edge,right,type1 keyword,,[PWG5100.1] +punching-reference-edge,top,type1 keyword,,[PWG5100.1] +punching-reference-edge-supported,,1setOf type1 keyword,,[PWG5100.1] +punching-reference-edge-supported,"<Any ""punching-reference-edge"" value>",1setOf type1 keyword,,[PWG5100.1] +pwg-raster-document-sheet-back,,type2 keyword,,[PWG5102.4] +pwg-raster-document-sheet-back,flipped,type2 keyword,,[PWG5102.4] +pwg-raster-document-sheet-back,manual-tumble,type2 keyword,,[PWG5102.4] +pwg-raster-document-sheet-back,normal,type2 keyword,,[PWG5102.4] +pwg-raster-document-sheet-back,rotated,type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,adobe-rgb_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,adobe-rgb_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,black_1,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,black_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,black_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,cmyk_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,cmyk_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device1_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device1_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device2_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device2_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device3_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device3_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device4_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device4_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device5_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device5_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device6_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device6_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device7_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device7_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device8_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device8_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device9_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device9_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device10_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device10_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device11_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device11_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device12_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device12_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device13_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device13_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device14_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device14_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device15_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,device15_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,rgb_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,rgb_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,sgray_1,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,sgray_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,sgray_16,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,srgb_8,1setOf type2 keyword,,[PWG5102.4] +pwg-raster-document-type-supported,srgb_16,1setOf type2 keyword,,[PWG5102.4] +requested-attributes,,1setOf type2 keyword,,[RFC8011] +requested-attributes,all,1setOf type2 keyword,,[RFC8011] +requested-attributes,document-description,1setOf type2 keyword,,[PWG5100.5] +requested-attributes,document-template,1setOf type2 keyword,,[PWG5100.5] +requested-attributes,job-actuals,1setOf type2 keyword,,[PWG5100.8] +requested-attributes,job-description,1setOf type2 keyword,,[RFC8011] +requested-attributes,job-template,1setOf type2 keyword,,[RFC8011] +requested-attributes,printer-description,1setOf type2 keyword,,[RFC8011] +requested-attributes,resource-description,1setOf type2 keyword,,[PWG5100.22] +requested-attributes,resource-status,1setOf type2 keyword,,[PWG5100.22] +requested-attributes,resource-template,1setOf type2 keyword,,[PWG5100.22] +requested-attributes,subscription-description,1setOf type2 keyword,,[RFC3995] +requested-attributes,subscription-template,1setOf type2 keyword,,[RFC3995] +requested-attributes,system-description,1setOf type2 keyword,,[PWG5100.22] +requested-attributes,system-status,1setOf type2 keyword,,[PWG5100.22] +resource-state-reasons,,1setOf type2 keyword,,[PWG5100.22] +resource-state-reasons,"< any ""job-state-reasons"" value >",1setOf type2 keyword,,[PWG5100.22] +resource-state-reasons,cancel-requested,1setOf type2 keyword,,[PWG5100.22] +resource-state-reasons,install-requested,1setOf type2 keyword,,[PWG5100.22] +resource-state-reasons,resource-incoming,1setOf type2 keyword,,[PWG5100.22] +resource-type,,type2 keyword,,[PWG5100.22] +resource-type,executable-firmware,type2 keyword,,[PWG5100.22] +resource-type,executable-software,type2 keyword,,[PWG5100.22] +resource-type,static-font,type2 keyword,,[PWG5100.22] +resource-type,static-form,type2 keyword,,[PWG5100.22] +resource-type,static-icc-profile,type2 keyword,,[PWG5100.22] +resource-type,static-image,type2 keyword,,[PWG5100.22] +resource-type,static-logo,type2 keyword,,[PWG5100.22] +resource-type,static-other,type2 keyword,,[PWG5100.22] +resource-type,static-strings,type2 keyword,,[PWG5100.22] +resource-type,template-document,type2 keyword,,[PWG5100.22] +resource-type,template-job,type2 keyword,,[PWG5100.22] +resource-type,template-printer,type2 keyword,,[PWG5100.22] +save-disposition,,type2 keyword,,[PWG5100.11] +save-disposition,none,type2 keyword,,[PWG5100.11] +save-disposition,print-save,type2 keyword,,[PWG5100.11] +save-disposition,save-only,type2 keyword,,[PWG5100.11] +save-disposition-supported,,1setOf type2 keyword,,[PWG5100.11] +save-disposition-supported,"<Any ""save-disposition"" value>",1setOf type2 keyword,,[PWG5100.11] +save-info-supported,,1setOf type2 keyword,,[PWG5100.11] +save-info-supported,save-document-format,1setOf type2 keyword,,[PWG5100.11] +save-info-supported,save-location,1setOf type2 keyword,,[PWG5100.11] +save-info-supported,save-name,1setOf type2 keyword,,[PWG5100.11] +separator-sheets-type,,type2 keyword | name(MAX),,[PWG5100.3] +separator-sheets-type,both-sheets,type2 keyword | name(MAX),,[PWG5100.3] +separator-sheets-type,end-sheet,type2 keyword | name(MAX),,[PWG5100.3] +separator-sheets-type,none,type2 keyword | name(MAX),,[PWG5100.3] +separator-sheets-type,slip-sheets,type2 keyword | name(MAX),,[PWG5100.3] +separator-sheets-type,start-sheet,type2 keyword | name(MAX),,[PWG5100.3] +separator-sheets-type-supported,,1setOf (type2 keyword | name(MAX)),,[PWG5100.3] +separator-sheets-type-supported,"<Any ""separator-sheets-type"" value>",1setOf (type2 keyword | name(MAX)),,[PWG5100.3] +sides,,type2 keyword,,[RFC8011] +sides,one-sided,type2 keyword,,[RFC8011] +sides,two-sided-long-edge,type2 keyword,,[RFC8011] +sides,two-sided-short-edge,type2 keyword,,[RFC8011] +sides-default,,type2 keyword,,[RFC8011] +sides-default,"<Any ""sides"" value>",type2 keyword,,[RFC8011] +sides-supported,,1setOf type2 keyword,,[RFC8011] +sides-supported,"<Any ""sides"" value>",1setOf type2 keyword,,[RFC8011] +stitching-method,,type2 keyword,,[PWG5100.1] +stitching-method,auto,type2 keyword,,[PWG5100.1] +stitching-method,crimp,type2 keyword,,[PWG5100.1] +stitching-method,wire,type2 keyword,,[PWG5100.1] +stitching-method-supported,,1setOf type2 keyword,,[PWG5100.1] +stitching-method-supported,"<Any ""stitching-method"" value>",1setOf type2 keyword,,[PWG5100.1] +stitching-reference-edge,,type2 keyword,,[PWG5100.3] +stitching-reference-edge,bottom,type2 keyword,,[PWG5100.3] +stitching-reference-edge,left,type2 keyword,,[PWG5100.3] +stitching-reference-edge,right,type2 keyword,,[PWG5100.3] +stitching-reference-edge,top,type2 keyword,,[PWG5100.3] +stitching-reference-edge-supported,,1setOf type2 keyword,,[PWG5100.3] +stitching-reference-edge-supported,"<Any ""stitching-reference-edge"" value>",1setOf type2 keyword,,[PWG5100.3] +stitching-supported,,1setOf type2 keyword,,[PWG5100.3] +stitching-supported,stitching-locations,1setOf type2 keyword,,[PWG5100.3] +stitching-supported,stitching-offset,1setOf type2 keyword,,[PWG5100.3] +stitching-supported,stitching-reference-edge,1setOf type2 keyword,,[PWG5100.3] +subscription-privacy-attributes,,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-attributes,< any Subscription object attribute >,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-attributes,all,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-attributes,default,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-attributes,none,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-attributes,subscription-description,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-attributes,subscription-template,1setOf type2 keyword,,[IPPPRIVACY10] +subscription-privacy-scope,,type2 keyword,,[IPPPRIVACY10] +subscription-privacy-scope,all,type2 keyword,,[IPPPRIVACY10] +subscription-privacy-scope,default,type2 keyword,,[IPPPRIVACY10] +subscription-privacy-scope,none,type2 keyword,,[IPPPRIVACY10] +subscription-privacy-scope,owner,type2 keyword,,[IPPPRIVACY10] +system-state-reasons,,1setOf type2 keyword,,[PWG5100.22] +system-state-reasons,"< any ""printer-state-reasons"" value >",1setOf type2 keyword,,[PWG5100.22] +system-time-source,,type2 keyword | name(MAX),,[PWG5100.22] +system-time-source,dhcp,type2 keyword | name(MAX),,[PWG5100.22] +system-time-source,ntp,type2 keyword | name(MAX),,[PWG5100.22] +system-time-source,onboard,type2 keyword | name(MAX),,[PWG5100.22] +system-time-source,sntp,type2 keyword | name(MAX),,[PWG5100.22] +timeout-predicate,,type2 keyword,,[PWG5100.22] +timeout-predicate,activity,type2 keyword,,[PWG5100.22] +timeout-predicate,inactivity,type2 keyword,,[PWG5100.22] +timeout-predicate,none,type2 keyword,,[PWG5100.22] +trimming-reference-edge,,type1 keyword,,[PWG5100.1] +trimming-reference-edge,bottom,type1 keyword,,[PWG5100.1] +trimming-reference-edge,left,type1 keyword,,[PWG5100.1] +trimming-reference-edge,right,type1 keyword,,[PWG5100.1] +trimming-reference-edge,top,type1 keyword,,[PWG5100.1] +trimming-reference-edge-supported,,1setOf type1 keyword,,[PWG5100.1] +trimming-reference-edge-supported,"<Any ""trimming-reference-edge"" value>",1setOf type1 keyword,,[PWG5100.1] +trimming-type,,type2 keyword | name(MAX),,[PWG5100.1] +trimming-type,draw-line,type2 keyword | name(MAX),,[IPPWG20160325] +trimming-type,full,type2 keyword | name(MAX),,[PWG5100.1] +trimming-type,partial,type2 keyword | name(MAX),,[PWG5100.1] +trimming-type,perforate,type2 keyword | name(MAX),,[PWG5100.1] +trimming-type,score,type2 keyword | name(MAX),,[PWG5100.1] +trimming-type,tab,type2 keyword | name(MAX),,[PWG5100.1] +trimming-type-supported,,1setOf type2 keyword,,[PWG5100.1] +trimming-type-supported,"<Any ""trimming-type value>",1setOf type2 keyword,,[PWG5100.1] +trimming-when,,type2 keyword,,[PWG5100.1] +trimming-when,after-documents,type2 keyword,,[PWG5100.1] +trimming-when,after-job,type2 keyword,,[PWG5100.1] +trimming-when,after-sets,type2 keyword,,[PWG5100.1] +trimming-when,after-sheets,type2 keyword,,[PWG5100.1] +trimming-when-supported,,1setOf type2 keyword,,[PWG5100.1] +trimming-when-supported,"<Any ""trimming-when"" value>",1setOf type2 keyword,,[PWG5100.1] +uri-authentication-supported,,1setOf type2 keyword,,[RFC8011] +uri-authentication-supported,basic,1setOf type2 keyword,,[RFC8011] +uri-authentication-supported,certificate,1setOf type2 keyword,,[RFC8011] +uri-authentication-supported,digest,1setOf type2 keyword,,[RFC8011] +uri-authentication-supported,negotiate,1setOf type2 keyword,,[PWG5100.13] +uri-authentication-supported,none,1setOf type2 keyword,,[RFC8011] +uri-authentication-supported,oauth,1setOf type2 keyword,,[PWG5100.18] +uri-authentication-supported,requesting-user-name,1setOf type2 keyword,,[RFC8011] +uri-security-supported,,1setOf type2 keyword,,[RFC8011] +uri-security-supported,none,1setOf type2 keyword,,[RFC8011] +uri-security-supported,ssl3,1setOf type2 keyword,,[RFC8011] +uri-security-supported,tls,1setOf type2 keyword,,[RFC8011] +which-jobs,,type2 keyword,,[RFC8011] +which-jobs,aborted,type2 keyword,,[PWG5100.11] +which-jobs,all,type2 keyword,,[PWG5100.11] +which-jobs,canceled,type2 keyword,,[PWG5100.11] +which-jobs,completed,type2 keyword,,[RFC8011] +which-jobs,fetchable,type2 keyword,,[PWG5100.18] +which-jobs,not-completed,type2 keyword,,[RFC8011] +which-jobs,pending,type2 keyword,,[PWG5100.11] +which-jobs,pending-held,type2 keyword,,[PWG5100.11] +which-jobs,processing,type2 keyword,,[PWG5100.11] +which-jobs,processing-stopped,type2 keyword,,[PWG5100.11] +which-jobs,proof-print,type2 keyword,,[PWG5100.11] +which-jobs,saved,type2 keyword,,[PWG5100.11] +which-jobs-supported,,1setOf type2 keyword,,[PWG5100.11] +which-jobs-supported,"<Any ""which-jobs"" value>",1setOf type2 keyword,,[PWG5100.11] +which-printers,,type2 keyword,,[PWG5100.22] +which-printers,all,type2 keyword,,[PWG5100.22] +which-printers,idle,type2 keyword,,[PWG5100.22] +which-printers,not-accepting,type2 keyword,,[PWG5100.22] +which-printers,processing,type2 keyword,,[PWG5100.22] +which-printers,shutdown,type2 keyword,,[PWG5100.22] +which-printers,stopped,type2 keyword,,[PWG5100.22] +which-printers,testing,type2 keyword,,[PWG5100.22] +x-image-position,,type2 keyword,,[PWG5100.3] +x-image-position,center,type2 keyword,,[PWG5100.3] +x-image-position,left,type2 keyword,,[PWG5100.3] +x-image-position,none,type2 keyword,,[PWG5100.3] +x-image-position,right,type2 keyword,,[PWG5100.3] +x-image-position-default,,type2 keyword,,[PWG5100.3] +x-image-position-default,"<Any ""x-image-position"" value>",type2 keyword,,[PWG5100.3] +x-image-position-supported,,1setOf type2 keyword,,[PWG5100.3] +x-image-position-supported,"<Any ""x-image-position"" value>",1setOf type2 keyword,,[PWG5100.3] +xri-authentication-supported,,1setOf type2 keyword,,[RFC3380] +xri-authentication-supported,basic,1setOf type2 keyword,,[RFC8011] +xri-authentication-supported,certificate,1setOf type2 keyword,,[RFC8011] +xri-authentication-supported,digest,1setOf type2 keyword,,[RFC8011] +xri-authentication-supported,negotiate,1setOf type2 keyword,,[PWG5100.13] +xri-authentication-supported,none,1setOf type2 keyword,,[RFC8011] +xri-authentication-supported,oauth,1setOf type2 keyword,,[PWG5100.18] +xri-authentication-supported,requesting-user-name,1setOf type2 keyword,,[RFC8011] +xri-security-supported,,1setOf type2 keyword,,[RFC3380] +xri-security-supported,none,1setOf type2 keyword,,[RFC8011] +xri-security-supported,ssl3,1setOf type2 keyword,,[RFC8011] +xri-security-supported,tls,1setOf type2 keyword,,[RFC8011] +y-image-position,,type2 keyword,,[PWG5100.3] +y-image-position,bottom,type2 keyword,,[PWG5100.3] +y-image-position,center,type2 keyword,,[PWG5100.3] +y-image-position,none,type2 keyword,,[PWG5100.3] +y-image-position,top,type2 keyword,,[PWG5100.3] +y-image-position-default,,type2 keyword,,[PWG5100.3] +y-image-position-default,"<Any ""y-image-position"" value>",type2 keyword,,[PWG5100.3] +y-image-position-supported,,1setOf type2 keyword,,[PWG5100.3] +y-image-position-supported,"<Any ""y-image-position"" value>",1setOf type2 keyword,,[PWG5100.3]
diff --git a/printing/backend/tools/ipp-registrations-6.csv b/printing/backend/tools/ipp-registrations-6.csv new file mode 100644 index 0000000..476a9b00 --- /dev/null +++ b/printing/backend/tools/ipp-registrations-6.csv
@@ -0,0 +1,306 @@ +Attribute,Value,Name,Syntax,Reference +document-state,,,type1 enum,[PWG5100.5] +document-state,3,pending,type1 enum,[PWG5100.5] +document-state,5,processing,type1 enum,[PWG5100.5] +document-state,6,processing-stopped,type1 enum,[PWG5100.18] +document-state,7,canceled,type1 enum,[PWG5100.5] +document-state,8,aborted,type1 enum,[PWG5100.5] +document-state,9,completed,type1 enum,[PWG5100.5] +end-power-state,,,type1 enum,[PWG5100.22] +end-power-state,"< any ""power-state"" value >",,type1 enum,[PWG5100.22] +fetch-status-code,,,type2 enum,[PWG5100.18] +fetch-status-code,"<All ""status-code"" value other than 'successful-ok'>",,type2 enum,[PWG5100.18] +finishings,,,1setOf type2 enum,[RFC8011] +finishings,3,none,1setOf type2 enum,[RFC8011] +finishings,4,staple,1setOf type2 enum,[RFC8011] +finishings,5,punch,1setOf type2 enum,[RFC8011] +finishings,6,cover,1setOf type2 enum,[RFC8011] +finishings,7,bind,1setOf type2 enum,[RFC8011] +finishings,8,saddle-stitch,1setOf type2 enum,[RFC8011] +finishings,9,edge-stitch,1setOf type2 enum,[RFC8011] +finishings,10,fold,1setOf type2 enum,[PWG5100.1] +finishings,11,trim,1setOf type2 enum,[PWG5100.1] +finishings,12,bale,1setOf type2 enum,[PWG5100.1] +finishings,13,booklet-maker,1setOf type2 enum,[PWG5100.1] +finishings,14,jog-offset,1setOf type2 enum,[PWG5100.1] +finishings,14,jog-offset(deprecated),1setOf type2 enum,[IPP-JOG-OFFSET] +finishings,15,coat,1setOf type2 enum,[PWG5100.1] +finishings,16,laminate,1setOf type2 enum,[PWG5100.1] +finishings,20,staple-top-left,1setOf type2 enum,[RFC8011] +finishings,21,staple-bottom-left,1setOf type2 enum,[RFC8011] +finishings,22,staple-top-right,1setOf type2 enum,[RFC8011] +finishings,23,staple-bottom-right,1setOf type2 enum,[RFC8011] +finishings,24,edge-stitch-left,1setOf type2 enum,[RFC8011] +finishings,25,edge-stitch-top,1setOf type2 enum,[RFC8011] +finishings,26,edge-stitch-right,1setOf type2 enum,[RFC8011] +finishings,27,edge-stitch-bottom,1setOf type2 enum,[RFC8011] +finishings,28,staple-dual-left,1setOf type2 enum,[RFC8011] +finishings,29,staple-dual-top,1setOf type2 enum,[RFC8011] +finishings,30,staple-dual-right,1setOf type2 enum,[RFC8011] +finishings,31,staple-dual-bottom,1setOf type2 enum,[RFC8011] +finishings,32,staple-triple-left,1setOf type2 enum,[PWG5100.1] +finishings,33,staple-triple-top,1setOf type2 enum,[PWG5100.1] +finishings,34,staple-triple-right,1setOf type2 enum,[PWG5100.1] +finishings,35,staple-triple-bottom,1setOf type2 enum,[PWG5100.1] +finishings,50,bind-left,1setOf type2 enum,[PWG5100.1] +finishings,51,bind-top,1setOf type2 enum,[PWG5100.1] +finishings,52,bind-right,1setOf type2 enum,[PWG5100.1] +finishings,53,bind-bottom,1setOf type2 enum,[PWG5100.1] +finishings,60,trim-after-pages,1setOf type2 enum,[PWG5100.13] +finishings,61,trim-after-documents,1setOf type2 enum,[PWG5100.13] +finishings,62,trim-after-copies,1setOf type2 enum,[PWG5100.13] +finishings,63,trim-after-job,1setOf type2 enum,[PWG5100.13] +finishings,70,punch-top-left,1setOf type2 enum,[PWG5100.1] +finishings,71,punch-bottom-left,1setOf type2 enum,[PWG5100.1] +finishings,72,punch-top-right,1setOf type2 enum,[PWG5100.1] +finishings,73,punch-bottom-right,1setOf type2 enum,[PWG5100.1] +finishings,74,punch-dual-left,1setOf type2 enum,[PWG5100.1] +finishings,75,punch-dual-top,1setOf type2 enum,[PWG5100.1] +finishings,76,punch-dual-right,1setOf type2 enum,[PWG5100.1] +finishings,77,punch-dual-bottom,1setOf type2 enum,[PWG5100.1] +finishings,78,punch-triple-left,1setOf type2 enum,[PWG5100.1] +finishings,79,punch-triple-top,1setOf type2 enum,[PWG5100.1] +finishings,80,punch-triple-right,1setOf type2 enum,[PWG5100.1] +finishings,81,punch-triple-bottom,1setOf type2 enum,[PWG5100.1] +finishings,82,punch-quad-left,1setOf type2 enum,[PWG5100.1] +finishings,83,punch-quad-top,1setOf type2 enum,[PWG5100.1] +finishings,84,punch-quad-right,1setOf type2 enum,[PWG5100.1] +finishings,85,punch-quad-bottom,1setOf type2 enum,[PWG5100.1] +finishings,86,punch-multiple-left,1setOf type2 enum,[CANON-PUNCHING] +finishings,87,punch-multiple-top,1setOf type2 enum,[CANON-PUNCHING] +finishings,88,punch-multiple-right,1setOf type2 enum,[CANON-PUNCHING] +finishings,89,punch-multiple-bottom,1setOf type2 enum,[CANON-PUNCHING] +finishings,90,fold-accordion,1setOf type2 enum,[PWG5100.1] +finishings,91,fold-double-gate,1setOf type2 enum,[PWG5100.1] +finishings,92,fold-gate,1setOf type2 enum,[PWG5100.1] +finishings,93,fold-half,1setOf type2 enum,[PWG5100.1] +finishings,94,fold-half-z,1setOf type2 enum,[PWG5100.1] +finishings,95,fold-left-gate,1setOf type2 enum,[PWG5100.1] +finishings,96,fold-letter,1setOf type2 enum,[PWG5100.1] +finishings,97,fold-parallel,1setOf type2 enum,[PWG5100.1] +finishings,98,fold-poster,1setOf type2 enum,[PWG5100.1] +finishings,99,fold-right-gate,1setOf type2 enum,[PWG5100.1] +finishings,100,fold-z,1setOf type2 enum,[PWG5100.1] +finishings,101,fold-engineering-z,1setOf type2 enum,[PWG5100.1] +finishings-default,,,1setOf type2 enum,[RFC8011] +finishings-default,"<Any ""finishings"" value>",,1setOf type2 enum,[RFC8011] +finishings-ready,,,1setOf type2 enum,[PWG5100.3] +finishings-ready,"<Any ""finishings"" value>",,1setOf type2 enum,[RFC8011] +finishings-supported,,,1setOf type2 enum,[RFC8011] +finishings-supported,"<Any ""finishings"" value>",,1setOf type2 enum,[RFC8011] +input-orientation-requested,,,type2 enum,[PWG5100.15] +input-orientation-requested,"<Any ""orientation-requested"" value>",,type2 enum,[PWG5100.15] +input-orientation-requested-supported,,,1setOf type2 enum,[PWG5100.15] +input-orientation-requested-supported,"<Any ""orientation-requested"" value>",,1setOf type2 enum,[PWG5100.15] +input-quality,,,type2 enum,[PWG5100.15] +input-quality,"<Any ""print-quality"" value>",,type2 enum,[PWG5100.15] +input-quality-supported,,,1setOf type2 enum,[PWG5100.15] +input-quality-supported,"<Any ""print-quality"" value>",,1setOf type2 enum,[PWG5100.15] +job-state,,,type1 enum,[RFC8011] +job-state,3,pending,type1 enum,[RFC8011] +job-state,4,pending-held,type1 enum,[RFC8011] +job-state,5,processing,type1 enum,[RFC8011] +job-state,6,processing-stopped,type1 enum,[RFC8011] +job-state,7,canceled,type1 enum,[RFC8011] +job-state,8,aborted,type1 enum,[RFC8011] +job-state,9,completed,type1 enum,[RFC8011] +media-source-feed-orientation,,,type2 enum,[PWG5100.13] +media-source-feed-orientation,"<Any ""orientation-requested"" value>",,type2 enum,[PWG5100.13] +operations-supported,,,1setOf type2 enum,[RFC8011] +operations-supported,0x0001,Reserved (not used),1setOf type2 enum,[RFC8011] +operations-supported,0x0002,Print-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x0003,Print-URI,1setOf type2 enum,[RFC8011] +operations-supported,0x0004,Validate-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x0005,Create-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x0006,Send-Document,1setOf type2 enum,[RFC8011] +operations-supported,0x0007,Send-URI,1setOf type2 enum,[RFC8011] +operations-supported,0x0008,Cancel-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x0009,Get-Job-Attributes,1setOf type2 enum,[RFC8011] +operations-supported,0x000A,Get-Jobs,1setOf type2 enum,[RFC8011] +operations-supported,0x000B,Get-Printer-Attributes,1setOf type2 enum,[RFC8011] +operations-supported,0x000C,Hold-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x000D,Release-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x000E,Restart-Job,1setOf type2 enum,[RFC8011] +operations-supported,0x000E,Restart-Job(deprecated),1setOf type2 enum,[APPLE20150505-2] +operations-supported,0x000F,Reserved (not used),1setOf type2 enum, +operations-supported,0x0010,Pause-Printer,1setOf type2 enum,[RFC8011] +operations-supported,0x0011,Resume-Printer,1setOf type2 enum,[RFC8011] +operations-supported,0x0012,Purge-Jobs,1setOf type2 enum,[RFC8011] +operations-supported,0x0012,Purge-Jobs(deprecated),1setOf type2 enum,[APPLE20150505-2] +operations-supported,0x0013,Set-Printer-Attributes,1setOf type2 enum,[RFC3380] +operations-supported,0x0014,Set-Job-Attributes,1setOf type2 enum,[RFC3380] +operations-supported,0x0015,Get-Printer-Supported-Values,1setOf type2 enum,[RFC3380] +operations-supported,0x0016,Create-Printer-Subscriptions,1setOf type2 enum,[RFC3995] +operations-supported,0x0017,Create-Job-Subscriptions,1setOf type2 enum,[RFC3995] +operations-supported,0x0018,Get-Subscription-Attributes,1setOf type2 enum,[RFC3995] +operations-supported,0x0019,Get-Subscriptions,1setOf type2 enum,[RFC3995] +operations-supported,0x001A,Renew-Subscription,1setOf type2 enum,[RFC3995] +operations-supported,0x001B,Cancel-Subscription,1setOf type2 enum,[RFC3995] +operations-supported,0x001C,Get-Notifications,1setOf type2 enum,[RFC3996] +operations-supported,0x001D,Reserved (ipp-indp-method),1setOf type2 enum, +operations-supported,0x001E,Get-Resource-Attributes,1setOf type2 enum, +operations-supported,0x001F,Reserved (ipp-get-resources),1setOf type2 enum, +operations-supported,0x0020,Get-Resources,1setOf type2 enum, +operations-supported,0x0021,Reserved (ipp-install),1setOf type2 enum, +operations-supported,0x0022,Enable-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x0023,Disable-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x0024,Pause-Printer-After-Current-Job,1setOf type2 enum,[RFC3998] +operations-supported,0x0025,Hold-New-Jobs,1setOf type2 enum,[RFC3998] +operations-supported,0x0026,Release-Held-New-Jobs,1setOf type2 enum,[RFC3998] +operations-supported,0x0027,Deactivate-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x0027,Deactivate-Printer(deprecated),1setOf type2 enum,[APPLE20150505-3] +operations-supported,0x0028,Activate-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x0028,Activate-Printer(deprecated),1setOf type2 enum,[APPLE20150505-3] +operations-supported,0x0029,Restart-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x002A,Shutdown-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x002B,Startup-Printer,1setOf type2 enum,[RFC3998] +operations-supported,0x002C,Reprocess-Job,1setOf type2 enum,[RFC3998] +operations-supported,0x002C,Reprocess-Job(deprecated),1setOf type2 enum,[APPLE20150505-2] +operations-supported,0x002D,Cancel-Current-Job,1setOf type2 enum,[RFC3998] +operations-supported,0x002E,Suspend-Current-Job,1setOf type2 enum,[RFC3998] +operations-supported,0x002F,Resume-Job,1setOf type2 enum,[RFC3998] +operations-supported,0x0030,Promote-Job,1setOf type2 enum,[RFC3998] +operations-supported,0x0031,Schedule-Job-After,1setOf type2 enum,[RFC3998] +operations-supported,0x0033,Cancel-Document,1setOf type2 enum,[PWG5100.5] +operations-supported,0x0034,Get-Document-Attributes,1setOf type2 enum,[PWG5100.5] +operations-supported,0x0035,Get-Documents,1setOf type2 enum,[PWG5100.5] +operations-supported,0x0036,Delete-Document(obsolete),1setOf type2 enum,[PWG5100.5] +operations-supported,0x0036,Delete-Document(deprecated),1setOf type2 enum,[APPLE20150505-2] +operations-supported,0x0037,Set-Document-Attributes,1setOf type2 enum,[PWG5100.5] +operations-supported,0x0038,Cancel-Jobs,1setOf type2 enum,[PWG5100.11] +operations-supported,0x0039,Cancel-My-Jobs,1setOf type2 enum,[PWG5100.11] +operations-supported,0x003A,Close-Job,1setOf type2 enum,[PWG5100.11] +operations-supported,0x003B,Resubmit-Job,1setOf type2 enum,[PWG5100.11] +operations-supported,0x003C,Identify-Printer,1setOf type2 enum,[PWG5100.13] +operations-supported,0x003D,Validate-Document,1setOf type2 enum,[PWG5100.13] +operations-supported,0x003E,Add-Document-Images,1setOf type2 enum,[PWG5100.15] +operations-supported,0x003F,Acknowledge-Document,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0040,Acknowledge-Identify-Printer,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0041,Acknowledge-Job,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0042,Fetch-Document,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0043,Fetch-Job,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0044,Get-Output-Device-Attributes,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0045,Update-Active-Jobs,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0046,Deregister-Output-Device,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0047,Update-Document-Status,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0048,Update-Job-Status,1setOf type2 enum,[PWG5100.18] +operations-supported,0x0049,Update-Output-Device-Attributes,1setOf type2 enum,[PWG5100.18] +operations-supported,0x004A,Get-Next-Document-Data,1setOf type2 enum,[PWG5100.17] +operations-supported,0x004B,Allocate-Printer-Resources,1setOf type2 enum,[PWG5100.22] +operations-supported,0x004C,Create-Printer,1setOf type2 enum,[PWG5100.22] +operations-supported,0x004D,Deallocate-Printer-Resources,1setOf type2 enum,[PWG5100.22] +operations-supported,0x004E,Delete-Printer,1setOf type2 enum,[PWG5100.22] +operations-supported,0x004F,Get-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0050,Shutdown-One-Printer,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0051,Startup-One-Printer,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0052,Cancel-Resource,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0053,Create-Resource,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0054,Install-Resource,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0055,Send-Resource-Data,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0056,Set-Resource-Attributes,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0057,Create-Resource-Subscriptions,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0058,Create-System-Subscriptions,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0059,Disable-All-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x005A,Enable-All-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x005B,Get-System-Attributes,1setOf type2 enum,[PWG5100.22] +operations-supported,0x005C,Get-System-Supported-Values,1setOf type2 enum,[PWG5100.22] +operations-supported,0x005D,Pause-All-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x005E,Pause-All-Printers-After-Current-Job,1setOf type2 enum,[PWG5100.22] +operations-supported,0x005F,Register-Output-Device,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0060,Restart-System,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0061,Resume-All-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0062,Set-System-Attributes,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0063,Shutdown-All-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0064,Startup-All-Printers,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0065,Get-Printer-Resources,1setOf type2 enum,[PWG5100.22] +operations-supported,0x0066,Get-User-Printer-Attributes,1setOf type2 enum,[IPPGUPA] +operations-supported,0x0067,Restart-One-Printer,1setOf type2 enum,[PWG5100.22] +orientation-requested,,,type2 enum,[RFC8011] +orientation-requested,3,portrait,type2 enum,[RFC8011] +orientation-requested,4,landscape,type2 enum,[RFC8011] +orientation-requested,5,reverse-landscape,type2 enum,[RFC8011] +orientation-requested,6,reverse-portrait,type2 enum,[RFC8011] +orientation-requested,7,none,type2 enum,[PWG5100.13] +orientation-requested-default,,,no-value | type2 enum,[RFC8011] +orientation-requested-default,"<Any ""orientation-requested"" value>",,no-value | type2 enum,[RFC8011] +orientation-requested-supported,,,1setOf type2 enum,[RFC8011] +orientation-requested-supported,"<Any ""orientation-requested"" value>",,1setOf type2 enum,[RFC8011] +output-device-job-states,,,1setOf type1 enum,[PWG5100.18] +output-device-job-states,"<Any ""job-state"" enum value >",,1setOf type1 enum,[PWG5100.18] +power-state,,,type1 enum,[PWG5100.22] +power-state,20,on,type1 enum,[PWG5100.22] +power-state,21,on-vendor1,type1 enum,[PWG5100.22] +power-state,22,on-vendor2,type1 enum,[PWG5100.22] +power-state,23,on-vendor3,type1 enum,[PWG5100.22] +power-state,24,on-vendor4,type1 enum,[PWG5100.22] +power-state,25,on-vendor5,type1 enum,[PWG5100.22] +power-state,30,standby,type1 enum,[PWG5100.22] +power-state,31,standby-vendor1,type1 enum,[PWG5100.22] +power-state,32,standby-vendor2,type1 enum,[PWG5100.22] +power-state,33,standby-vendor3,type1 enum,[PWG5100.22] +power-state,34,standby-vendor4,type1 enum,[PWG5100.22] +power-state,35,standby-vendor5,type1 enum,[PWG5100.22] +power-state,40,suspend,type1 enum,[PWG5100.22] +power-state,41,suspend-vendor1,type1 enum,[PWG5100.22] +power-state,42,suspend-vendor2,type1 enum,[PWG5100.22] +power-state,43,suspend-vendor3,type1 enum,[PWG5100.22] +power-state,44,suspend-vendor4,type1 enum,[PWG5100.22] +power-state,45,suspend-vendor5,type1 enum,[PWG5100.22] +power-state,50,reset-soft,type1 enum,[PWG5100.22] +power-state,60,off-hard,type1 enum,[PWG5100.22] +power-state,70,hibernate,type1 enum,[PWG5100.22] +power-state,71,hibernate-vendor1,type1 enum,[PWG5100.22] +power-state,72,hibernate-vendor2,type1 enum,[PWG5100.22] +power-state,73,hibernate-vendor3,type1 enum,[PWG5100.22] +power-state,74,hibernate-vendor4,type1 enum,[PWG5100.22] +power-state,75,hibernate-vendor5,type1 enum,[PWG5100.22] +power-state,80,off-soft,type1 enum,[PWG5100.22] +power-state,81,off-soft-vendor1,type1 enum,[PWG5100.22] +power-state,82,off-soft-vendor2,type1 enum,[PWG5100.22] +power-state,83,off-soft-vendor3,type1 enum,[PWG5100.22] +power-state,84,off-soft-vendor4,type1 enum,[PWG5100.22] +power-state,85,off-soft-vendor5,type1 enum,[PWG5100.22] +power-state,90,reset-hard,type1 enum,[PWG5100.22] +power-state,100,reset-mbr,type1 enum,[PWG5100.22] +power-state,110,reset-nmi,type1 enum,[PWG5100.22] +power-state,120,off-soft-graceful,type1 enum,[PWG5100.22] +power-state,130,off-hard-graceful,type1 enum,[PWG5100.22] +power-state,140,reset-mbr-graceful,type1 enum,[PWG5100.22] +power-state,150,reset-soft-graceful,type1 enum,[PWG5100.22] +power-state,160,reset-hard-graceful,type1 enum,[PWG5100.22] +power-state,170,reset-init,type1 enum,[PWG5100.22] +power-state,180,not-applicable,type1 enum,[PWG5100.22] +power-state,190,no-change,type1 enum,[PWG5100.22] +print-quality,,,type2 enum,[RFC8011] +print-quality,3,draft,type2 enum,[RFC8011] +print-quality,4,normal,type2 enum,[RFC8011] +print-quality,5,high,type2 enum,[RFC8011] +print-quality-default,,,type2 enum,[RFC8011] +print-quality-default,"<Any ""print-quality"" value>",,type2 enum,[RFC8011] +print-quality-supported,,,1setOf type2 enum,[RFC8011] +print-quality-supported,"<Any ""print-quality"" value>",,1setOf type2 enum,[RFC8011] +printer-state,,,type1 enum,[RFC8011] +printer-state,3,idle,type1 enum,[RFC8011] +printer-state,4,processing,type1 enum,[RFC8011] +printer-state,5,stopped,type1 enum,[RFC8011] +request-power-state,,,type1 enum,[PWG5100.22] +request-power-state,"< any ""power-state"" value >",,type1 enum,[PWG5100.22] +resource-state,,,type1 enum,[PWG5100.22] +resource-state,3,pending,type1 enum,[PWG5100.22] +resource-state,4,available,type1 enum,[PWG5100.22] +resource-state,5,installed,type1 enum,[PWG5100.22] +resource-state,6,canceled,type1 enum,[PWG5100.22] +resource-state,7,aborted,type1 enum,[PWG5100.22] +start-power-state,,,type1 enum,[PWG5100.22] +start-power-state,"< any ""power-state"" value >",,type1 enum,[PWG5100.22] +system-state,,,type1 enum,[PWG5100.22] +system-state,3,idle,type1 enum,[PWG5100.22] +system-state,4,processing,type1 enum,[PWG5100.22] +system-state,5,stopped,type1 enum,[PWG5100.22] +transmission-status,,,type2 enum,[PWG5100.15] +transmission-status,3,pending,type2 enum,[PWG5100.15] +transmission-status,4,pending-retry,type2 enum,[PWG5100.15] +transmission-status,5,processing,type2 enum,[PWG5100.15] +transmission-status,7,canceled,type2 enum,[PWG5100.15] +transmission-status,8,aborted,type2 enum,[PWG5100.15] +transmission-status,9,completed,type2 enum,[PWG5100.15]
diff --git a/services/network/public/cpp/content_security_policy.cc b/services/network/public/cpp/content_security_policy.cc index a31d453..4fc5914 100644 --- a/services/network/public/cpp/content_security_policy.cc +++ b/services/network/public/cpp/content_security_policy.cc
@@ -299,14 +299,13 @@ } // Parses the frame-ancestor directive of a Content-Security-Policy header. -void ParseFrameAncestors( - const mojom::ContentSecurityPolicyPtr& content_security_policy_ptr, - base::StringPiece frame_ancestors_value) { +void ParseFrameAncestors(const mojom::ContentSecurityPolicyPtr& policy, + base::StringPiece frame_ancestors_value) { // A frame-ancestors directive has already been parsed. Skip further // frame-ancestors directives per // https://www.w3.org/TR/CSP3/#parse-serialized-policy. if (FindDirective(mojom::CSPDirective::Name::FrameAncestors, - &(content_security_policy_ptr->directives))) { + &(policy->directives))) { // TODO(arthursonzogni, lfg): Should a warning be fired to the user here? return; } @@ -318,23 +317,22 @@ if (!source_list) return; - content_security_policy_ptr->directives.push_back(mojom::CSPDirective::New( + policy->directives.push_back(mojom::CSPDirective::New( mojom::CSPDirective::Name::FrameAncestors, std::move(source_list))); } // Parses the report-uri directive of a Content-Security-Policy header. -void ParseReportEndpoint( - const mojom::ContentSecurityPolicyPtr& content_security_policy_ptr, - const GURL& base_url, - base::StringPiece header_value, - bool using_reporting_api) { +void ParseReportEndpoint(const mojom::ContentSecurityPolicyPtr& policy, + const GURL& base_url, + base::StringPiece header_value, + bool using_reporting_api) { // A report-uri directive has already been parsed. Skip further directives per // https://www.w3.org/TR/CSP3/#parse-serialized-policy. - if (!content_security_policy_ptr->report_endpoints.empty()) + if (!policy->report_endpoints.empty()) return; ParseReportDirective(base_url, header_value, using_reporting_api, - &(content_security_policy_ptr->report_endpoints)); + &(policy->report_endpoints)); } } // namespace @@ -370,31 +368,32 @@ base::SplitStringPiece(header_value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { DirectivesMap directives = ParseHeaderValue(header); - auto content_security_policy_ptr = mojom::ContentSecurityPolicy::New(); - content_security_policy_ptr->type = type; + auto policy = mojom::ContentSecurityPolicy::New(); + + policy->header = mojom::ContentSecurityPolicyHeader::New( + header_value.as_string(), type, + mojom::ContentSecurityPolicySource::kHTTP); auto frame_ancestors = directives.find("frame-ancestors"); if (frame_ancestors != directives.end()) - ParseFrameAncestors(content_security_policy_ptr, frame_ancestors->second); + ParseFrameAncestors(policy, frame_ancestors->second); auto report_endpoints = directives.find("report-to"); if (report_endpoints != directives.end()) { - if (!content_security_policy_ptr->use_reporting_api) { - content_security_policy_ptr->use_reporting_api = true; - content_security_policy_ptr->report_endpoints.clear(); + if (!policy->use_reporting_api) { + policy->use_reporting_api = true; + policy->report_endpoints.clear(); } } else { report_endpoints = directives.find("report-uri"); } if (report_endpoints != directives.end()) { - ParseReportEndpoint(content_security_policy_ptr, base_url, - report_endpoints->second, - content_security_policy_ptr->use_reporting_api); + ParseReportEndpoint(policy, base_url, report_endpoints->second, + policy->use_reporting_api); } - content_security_policies_.push_back( - std::move(content_security_policy_ptr)); + content_security_policies_.push_back(std::move(policy)); } }
diff --git a/services/network/public/mojom/content_security_policy.mojom b/services/network/public/mojom/content_security_policy.mojom index cde4d1c..2ebc532 100644 --- a/services/network/public/mojom/content_security_policy.mojom +++ b/services/network/public/mojom/content_security_policy.mojom
@@ -26,6 +26,15 @@ kOriginPolicy }; +// Represents a single Content Security Policy header (i.e. coming from a single +// Content-Security-Policy header in an HTTP response, or from a single <meta +// http-equiv="Content-Security-Policy"...> element). +struct ContentSecurityPolicyHeader { + string header_value; + ContentSecurityPolicyType type = kEnforce; + ContentSecurityPolicySource source = kHTTP; +}; + // A CSPSource represents an expression that matches a set of urls. // Examples of CSPSource: // - domain.example.com @@ -73,11 +82,7 @@ struct ContentSecurityPolicy { array<CSPDirective> directives; - // When set to kReport, this CSP will not enforce the directives, just report - // the violations. - ContentSecurityPolicyType type = kEnforce; - - ContentSecurityPolicySource source = kHTTP; + ContentSecurityPolicyHeader header; // Whether this CSP policy uses the new reporting API. // https://w3c.github.io/reporting/
diff --git a/services/tracing/perfetto/consumer_host.cc b/services/tracing/perfetto/consumer_host.cc index 7df96762..3f1dd3b0a 100644 --- a/services/tracing/perfetto/consumer_host.cc +++ b/services/tracing/perfetto/consumer_host.cc
@@ -392,10 +392,6 @@ json_agent_label_filter_ = agent_label_filter; perfetto::trace_processor::Config processor_config; - // Chrome uses a smaller block size than the default even on 64-bit machines, - // because the sandbox for our utility process may restrict our address space. - // The string pool can still grow larger across multiple blocks if necessary. - processor_config.string_pool_block_size_bytes = 32 * 1024 * 1024; // 32 mB. trace_processor_ = perfetto::trace_processor::TraceProcessorStorage::CreateInstance( processor_config);
diff --git a/storage/browser/blob/blob_storage_context_mojo_unittest.cc b/storage/browser/blob/blob_storage_context_mojo_unittest.cc index 41e1354..3554c6b3 100644 --- a/storage/browser/blob/blob_storage_context_mojo_unittest.cc +++ b/storage/browser/blob/blob_storage_context_mojo_unittest.cc
@@ -27,6 +27,7 @@ #include "storage/browser/blob/blob_impl.h" #include "storage/browser/blob/mojom/blob_storage_context.mojom.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/blob/blob_utils.h" #include "third_party/blink/public/mojom/blob/blob.mojom.h" namespace storage { @@ -116,6 +117,19 @@ return time; } + void CreateFile(base::FilePath path, + std::string data, + base::Optional<base::Time> modification_time) { + base::ScopedAllowBlockingForTesting allow_blocking; + int size = base::WriteFile(path, data.data(), data.size()); + ASSERT_GE(size, 0); + EXPECT_EQ(size, static_cast<int>(data.size())); + if (modification_time) { + ASSERT_TRUE(base::TouchFile(path, modification_time.value(), + modification_time.value())); + } + } + base::ScopedTempDir temp_dir_; base::test::TaskEnvironment task_environment_{ base::test::TaskEnvironment::MainThreadType::IO}; @@ -260,17 +274,10 @@ base::FilePath copy_from_file = temp_dir_.GetPath().AppendASCII("SourceFile.txt"); - // Create a 'modification_time' that is different from now. + // Create a file to copy from. base::Time modification_time = TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1)); - { - base::ScopedAllowBlockingForTesting allow_blocking; - int size = base::WriteFile(copy_from_file, kData.data(), kData.size()); - ASSERT_GT(size, 0); - EXPECT_EQ(size, static_cast<int>(kData.size())); - ASSERT_TRUE( - base::TouchFile(copy_from_file, modification_time, modification_time)); - } + CreateFile(copy_from_file, kData, modification_time); std::unique_ptr<BlobDataBuilder> builder = std::make_unique<BlobDataBuilder>("1234"); @@ -321,17 +328,10 @@ base::FilePath copy_from_file = temp_dir_.GetPath().AppendASCII("SourceFile.txt"); - // Create a 'modification_time' that is different from now. + // Create a file to copy from. base::Time modification_time = TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1)); - { - base::ScopedAllowBlockingForTesting allow_blocking; - int size = base::WriteFile(copy_from_file, kData.data(), kData.size()); - ASSERT_GT(size, 0); - EXPECT_EQ(size, static_cast<int>(kData.size())); - ASSERT_TRUE( - base::TouchFile(copy_from_file, modification_time, modification_time)); - } + CreateFile(copy_from_file, kData, modification_time); std::unique_ptr<BlobDataBuilder> builder = std::make_unique<BlobDataBuilder>("1234"); @@ -379,16 +379,10 @@ base::FilePath copy_from_file = temp_dir_.GetPath().AppendASCII("SourceFile.txt"); - // Create a 'modification_time' that is different from now. + // Create a file to copy from. base::Time modification_time = TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1)); - { - base::ScopedAllowBlockingForTesting allow_blocking; - int size = base::WriteFile(copy_from_file, kData.data(), kData.size()); - ASSERT_EQ(size, 0); - ASSERT_TRUE( - base::TouchFile(copy_from_file, modification_time, modification_time)); - } + CreateFile(copy_from_file, kData, modification_time); std::unique_ptr<BlobDataBuilder> builder = std::make_unique<BlobDataBuilder>("1234"); @@ -437,16 +431,10 @@ base::FilePath copy_from_file = temp_dir_.GetPath().AppendASCII("SourceFile.txt"); - // Create a 'modification_time' that is different from now. + // Create a file to copy from. base::Time modification_time = TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1)); - { - base::ScopedAllowBlockingForTesting allow_blocking; - int size = base::WriteFile(copy_from_file, kData.data(), kData.size()); - ASSERT_EQ(size, static_cast<int>(kData.size())); - ASSERT_TRUE( - base::TouchFile(copy_from_file, modification_time, modification_time)); - } + CreateFile(copy_from_file, kData, modification_time); std::unique_ptr<BlobDataBuilder> builder = std::make_unique<BlobDataBuilder>("1234"); @@ -482,21 +470,15 @@ base::FilePath copy_from_file = temp_dir_.GetPath().AppendASCII("SourceFile.txt"); - // Create a 'modification_time' that is different from now. - base::Time bad_modified_time = - TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(2)); base::Time file_modified_time = TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1)); - { - base::ScopedAllowBlockingForTesting allow_blocking; - int size = base::WriteFile(copy_from_file, kData.data(), kData.size()); - ASSERT_EQ(size, static_cast<int>(kData.size())); - ASSERT_TRUE(base::TouchFile(copy_from_file, file_modified_time, - file_modified_time)); - } + CreateFile(copy_from_file, kData, file_modified_time); + // Create the blob but give it the wrong modification time. std::unique_ptr<BlobDataBuilder> builder = std::make_unique<BlobDataBuilder>("1234"); + base::Time bad_modified_time = + TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(2)); builder->AppendFile(copy_from_file, 0ll, kData.size(), bad_modified_time); std::unique_ptr<BlobDataHandle> blob_handle = context_->AddFinishedBlob(std::move(builder)); @@ -586,5 +568,117 @@ loop.Run(); } +TEST_F(BlobStorageContextMojoTest, SaveBlobToFileNoDirectory) { + SetUpOnDiskContext(); + const std::string kData = "Hello There!"; + mojo::Remote<mojom::BlobStorageContext> context = CreateContextConnection(); + + mojo::Remote<blink::mojom::Blob> blob; + context->RegisterFromMemory( + blob.BindNewPipeAndPassReceiver(), "1234", + mojo_base::BigBuffer(base::as_bytes(base::make_span(kData)))); + + // Create a 'last modified' that is different from now. + base::Time last_modified = + TruncateToSeconds(base::Time::Now() - base::TimeDelta::FromDays(1)); + + base::RunLoop loop; + base::FilePath file_path = temp_dir_.GetPath() + .AppendASCII("NotCreatedDirectory") + .AppendASCII("TestFile.txt"); + context->WriteBlobToFile( + blob.Unbind(), file_path, true, last_modified, + base::BindLambdaForTesting([&](mojom::WriteBlobToFileResult result) { + EXPECT_EQ(result, mojom::WriteBlobToFileResult::kIOError); + loop.Quit(); + })); + loop.Run(); + + base::ThreadRestrictions::SetIOAllowed(true); + EXPECT_FALSE(base::PathExists(file_path)); + ASSERT_TRUE(temp_dir_.Delete()); +} + +TEST_F(BlobStorageContextMojoTest, SaveOptimizedBlobToFileNoDirectory) { + SetUpOnDiskContext(); + const std::string kData = "Hello There!"; + + base::FilePath copy_from_file = + temp_dir_.GetPath().AppendASCII("SourceFile.txt"); + + // Create a file to copy from. + CreateFile(copy_from_file, kData, base::nullopt); + + std::unique_ptr<BlobDataBuilder> builder = + std::make_unique<BlobDataBuilder>("1234"); + builder->AppendFile(copy_from_file, 0, kData.size(), base::Time()); + std::unique_ptr<BlobDataHandle> blob_handle = + context_->AddFinishedBlob(std::move(builder)); + + mojo::PendingRemote<blink::mojom::Blob> blob; + BlobImpl::Create(std::move(blob_handle), + blob.InitWithNewPipeAndPassReceiver()); + + mojo::Remote<mojom::BlobStorageContext> context = CreateContextConnection(); + + base::RunLoop loop; + base::FilePath file_path = temp_dir_.GetPath() + .AppendASCII("NotCreatedDirectory") + .AppendASCII("TestFile.txt"); + context->WriteBlobToFile( + std::move(blob), file_path, true, base::nullopt, + base::BindLambdaForTesting([&](mojom::WriteBlobToFileResult result) { + EXPECT_EQ(result, mojom::WriteBlobToFileResult::kIOError); + loop.Quit(); + })); + loop.Run(); + + base::ThreadRestrictions::SetIOAllowed(true); + EXPECT_FALSE(base::PathExists(file_path)); + ASSERT_TRUE(temp_dir_.Delete()); +} + +TEST_F(BlobStorageContextMojoTest, SaveOptimizedBlobNoFileSize) { + SetUpOnDiskContext(); + const std::string kData = "Hello There!"; + + base::FilePath copy_from_file = + temp_dir_.GetPath().AppendASCII("SourceFile.txt"); + + // Create a file to copy from. + CreateFile(copy_from_file, kData, base::nullopt); + + std::unique_ptr<BlobDataBuilder> builder = + std::make_unique<BlobDataBuilder>("1234"); + builder->AppendFile(copy_from_file, 0, blink::BlobUtils::kUnknownSize, + base::Time()); + std::unique_ptr<BlobDataHandle> blob_handle = + context_->AddFinishedBlob(std::move(builder)); + + mojo::PendingRemote<blink::mojom::Blob> blob; + BlobImpl::Create(std::move(blob_handle), + blob.InitWithNewPipeAndPassReceiver()); + + mojo::Remote<mojom::BlobStorageContext> context = CreateContextConnection(); + + base::RunLoop loop; + base::FilePath file_path = temp_dir_.GetPath().AppendASCII("TestFile.txt"); + context->WriteBlobToFile( + std::move(blob), file_path, true, base::nullopt, + base::BindLambdaForTesting([&](mojom::WriteBlobToFileResult result) { + EXPECT_EQ(result, mojom::WriteBlobToFileResult::kSuccess); + loop.Quit(); + })); + loop.Run(); + + base::ThreadRestrictions::SetIOAllowed(true); + std::string file_contents; + EXPECT_TRUE(base::ReadFileToString(file_path, &file_contents)); + EXPECT_EQ(file_contents, kData); + + base::DeleteFile(file_path, false); + ASSERT_TRUE(temp_dir_.Delete()); +} + } // namespace } // namespace storage
diff --git a/storage/browser/blob/mojom/blob_storage_context.mojom b/storage/browser/blob/mojom/blob_storage_context.mojom index f3706c7..798a108 100644 --- a/storage/browser/blob/mojom/blob_storage_context.mojom +++ b/storage/browser/blob/mojom/blob_storage_context.mojom
@@ -75,9 +75,11 @@ // Writes the given blob to the given file path. If the given |path| is not // under the blob storage context's profile directory or if it has references - // (like "..") then the implementation returns kBadPath. If a file already - // exists at |path| then it is overwritten. If |flush_on_write| is true, then - // Flush will be called on the new file before it is closed. + // (like "..") then the implementation returns kBadPath. If the directory + // that contains the file at |path| does not exist, then this function will + // return kIOError. If a file already exists at |path| then it is + // overwritten. If |flush_on_write| is true, then Flush will be called on the + // new file before it is closed. WriteBlobToFile(pending_remote<blink.mojom.Blob> blob, mojo_base.mojom.FilePath path, bool flush_on_write,
diff --git a/storage/browser/blob/write_blob_to_file.cc b/storage/browser/blob/write_blob_to_file.cc index 3611778..b077b436 100644 --- a/storage/browser/blob/write_blob_to_file.cc +++ b/storage/browser/blob/write_blob_to_file.cc
@@ -122,7 +122,7 @@ } // Copies the contents of |copy_from| to |copy_to|, with the given |offset| and -// |size| applied to the |copy_from| file. The +// optional |size| applied to the |copy_from| file. The // |expected_last_modified_copy_from| must match, within a second, the last // modified time of the |copy_from| file. Afterwards, the |last_modified| date // is optionally saved as the last modified & last accessed time of |copy_to|. @@ -133,7 +133,7 @@ base::Time expected_last_modified_copy_from, const base::FilePath& copy_to, int64_t offset, - int64_t size, + base::Optional<int64_t> size, base::Optional<base::Time> last_modified, bool flush_on_close) { // Do a full file copy if the sizes match and there is no offset. @@ -144,14 +144,15 @@ expected_last_modified_copy_from, info)) { return mojom::WriteBlobToFileResult::kInvalidBlob; } - if (info.size == size) { + if (!size || info.size == size.value()) { bool success = base::CopyFile(copy_from, copy_to); if (!success) return mojom::WriteBlobToFileResult::kIOError; - if (!base::TouchFile(copy_to, last_modified.value(), - last_modified.value())) { + if (last_modified && !base::TouchFile(copy_to, last_modified.value(), + last_modified.value())) { return mojom::WriteBlobToFileResult::kTimestampError; } + return mojom::WriteBlobToFileResult::kSuccess; } } @@ -172,14 +173,16 @@ } int64_t bytes_copied = 0; - if (!CopyFileContentsWithOffsetAndSize(&infile, &outfile, &bytes_copied, - offset, size)) { + if (!CopyFileContentsWithOffsetAndSize( + &infile, &outfile, &bytes_copied, offset, + size.value_or(std::numeric_limits<int64_t>::max()))) { return mojom::WriteBlobToFileResult::kIOError; } - if (bytes_copied != size) + if (size && bytes_copied != size.value()) return mojom::WriteBlobToFileResult::kInvalidBlob; - if (!outfile.SetTimes(last_modified.value(), last_modified.value())) { + if (last_modified && + !outfile.SetTimes(last_modified.value(), last_modified.value())) { // If the file modification time isn't set correctly, then reading will // fail. return mojom::WriteBlobToFileResult::kTimestampError; @@ -196,8 +199,9 @@ base::File file(file_path, base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); bool file_success = file.created(); - if (!file_success) + if (!file_success) { return mojom::WriteBlobToFileResult::kIOError; + } if (last_modified && !file.SetTimes(last_modified.value(), last_modified.value())) { // If the file modification time isn't set correctly, then reading @@ -217,6 +221,10 @@ int64_t bytes_written, storage::FileWriterDelegate::WriteProgressStatus write_status) { bool success = write_status == storage::FileWriterDelegate::SUCCESS_COMPLETED; + if (!success) { + std::move(callback).Run(mojom::WriteBlobToFileResult::kIOError); + return; + } if (success && !bytes_written) { // Special Case 1: Success but no bytes were written, so just create // an empty file (LocalFileStreamWriter only creates a file @@ -277,7 +285,12 @@ const BlobDataItem& item = *items[0]; if (item.type() == BlobDataItem::Type::kFile) { // The File API cannot handle uint64_t. - if (item.length() > std::numeric_limits<int64_t>::max()) { + base::Optional<int64_t> optional_size = item.length(); + if (item.length() == blink::BlobUtils::kUnknownSize) { + // The blob system uses a special value (max uint64_t) to denote an + // unknown file size. This means the whole file should be copied. + optional_size = base::nullopt; + } else if (item.length() > std::numeric_limits<int64_t>::max()) { std::move(callback).Run(mojom::WriteBlobToFileResult::kError); return; } @@ -292,7 +305,7 @@ base::ThreadPool()}, base::BindOnce(CopyFileAndMaybeWriteTimeModified, item.path(), item.expected_modification_time(), file_path, - item.offset(), item.length(), last_modified, + item.offset(), optional_size, last_modified, flush_on_write), std::move(callback)); return;
diff --git a/styleguide/c++/c++-dos-and-donts.md b/styleguide/c++/c++-dos-and-donts.md index f790666..28e432ee 100644 --- a/styleguide/c++/c++-dos-and-donts.md +++ b/styleguide/c++/c++-dos-and-donts.md
@@ -80,7 +80,7 @@ ```cpp MyClass c(1.7, false, "test"); - std::vector<double> v(500, 0.97); // Creates 50 copies of the provided initializer + std::vector<double> v(500, 0.97); // Creates 500 copies of the provided initializer ``` 3. Use C++11 "uniform init" syntax ("{}" without '=') only when neither of the above work:
diff --git a/testing/buildbot/filters/android.pie_arm64_rel.chrome_public_test_apk.filter b/testing/buildbot/filters/android.pie_arm64_rel.chrome_public_test_apk.filter index 983f802..64ca258 100644 --- a/testing/buildbot/filters/android.pie_arm64_rel.chrome_public_test_apk.filter +++ b/testing/buildbot/filters/android.pie_arm64_rel.chrome_public_test_apk.filter
@@ -1,9 +1,6 @@ # crbug/1033877 -org.chromium.chrome.browser.autofill_assistant.AutofillAssistantDirectActionHandlerTest.testReportAvailableDirectActions -#crbug.com/1041870 --org.chromium.chrome.browser.autofill_assistant.AutofillAssistantPaymentTest.testKeyboardIsHiddenOnLostFocus - # crbug/1036413 -org.chromium.chrome.browser.banners.AppBannerManagerTest.testBlockedAmbientBadgeDoesNotAppearAgainForMonths
diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn index f0a8651..a62632e2 100644 --- a/third_party/BUILD.gn +++ b/third_party/BUILD.gn
@@ -24,14 +24,10 @@ if (use_system_libjpeg) { public_configs = [ ":system_libjpeg_config" ] } else if (use_libjpeg_turbo) { - public_deps = [ - "//third_party/libjpeg_turbo:libjpeg", - ] + public_deps = [ "//third_party/libjpeg_turbo:libjpeg" ] public_configs = [ ":libjpeg_turbo_config" ] } else { - public_deps = [ - "//third_party/libjpeg:libjpeg", - ] + public_deps = [ "//third_party/libjpeg:libjpeg" ] } }
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn index bcc9ab1..fdb5ab0 100644 --- a/third_party/blink/common/BUILD.gn +++ b/third_party/blink/common/BUILD.gn
@@ -98,9 +98,7 @@ "web_package/signed_exchange_request_matcher.cc", ] - public_deps = [ - "//third_party/blink/public/common:headers", - ] + public_deps = [ "//third_party/blink/public/common:headers" ] deps = [ "//base", @@ -132,9 +130,7 @@ } fuzzer_test("http_structured_header_fuzzer") { - sources = [ - "http/structured_header_fuzzer.cc", - ] + sources = [ "http/structured_header_fuzzer.cc" ] deps = [ ":common", "//third_party/blink/renderer/platform:blink_fuzzer_test_support",
diff --git a/third_party/blink/public/common/input/web_input_event.h b/third_party/blink/public/common/input/web_input_event.h index 05bef2d..1be9bd5 100644 --- a/third_party/blink/public/common/input/web_input_event.h +++ b/third_party/blink/public/common/input/web_input_event.h
@@ -248,6 +248,12 @@ // ancestor frames moved within its embedding page's viewport recently. kTargetFrameMovedRecently = 1 << 24, + // When an event is forwarded to the main thread, this modifier will tell if + // the event was already handled by the compositor thread or not. Based on + // this, the decision of whether or not the main thread should handle this + // event for the scrollbar can then be made. + kScrollbarManipulationHandledOnCompositorThread = 1 << 25, + // The set of non-stateful modifiers that specifically change the // interpretation of the key being pressed. For example; IsLeft, // IsRight, IsComposing don't change the meaning of the key @@ -255,6 +261,7 @@ // and don't indicate explicit depressed state. kKeyModifiers = kSymbolKey | kFnKey | kAltGrKey | kMetaKey | kAltKey | kControlKey | kShiftKey, + kNoModifiers = 0, }; @@ -432,6 +439,10 @@ modifiers_ |= kTargetFrameMovedRecently; } + void SetScrollbarManipulationHandledOnCompositorThread() { + modifiers_ |= kScrollbarManipulationHandledOnCompositorThread; + } + virtual ~WebInputEvent() = default; virtual std::unique_ptr<WebInputEvent> Clone() const = 0;
diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blink/public/mojom/frame/frame.mojom index 545bde4..d655f00 100644 --- a/third_party/blink/public/mojom/frame/frame.mojom +++ b/third_party/blink/public/mojom/frame/frame.mojom
@@ -6,6 +6,7 @@ import "cc/mojom/touch_action.mojom"; import "mojo/public/mojom/base/string16.mojom"; +import "services/network/public/mojom/content_security_policy.mojom"; import "skia/public/mojom/skcolor.mojom"; import "third_party/blink/public/mojom/devtools/console_message.mojom"; import "third_party/blink/public/mojom/frame/blocked_navigation_types.mojom"; @@ -13,9 +14,9 @@ import "third_party/blink/public/mojom/frame/lifecycle.mojom"; import "third_party/blink/public/mojom/frame/sudden_termination_disabler_type.mojom"; import "third_party/blink/public/mojom/input/scroll_direction.mojom"; +import "ui/events/mojom/scroll_granularity.mojom"; import "url/mojom/origin.mojom"; import "url/mojom/url.mojom"; -import "ui/events/mojom/scroll_granularity.mojom"; // Implemented in Browser, this interface defines frame-specific methods that // will be invoked from the render process (e.g. content::RenderFrameHostImpl). @@ -230,6 +231,11 @@ // fullscreen. WillEnterFullscreen(); + // Updates replicated ContentSecurityPolicy on the remote frame's + // SecurityContent. + AddReplicatedContentSecurityPolicies( + array<network.mojom.ContentSecurityPolicyHeader> headers); + // Resets the replicated ContentSecurityPolicy on the remote frame's // SecurityContext. Used to reset CSP from the previous document on // a cross-document navigation.
diff --git a/third_party/blink/public/platform/web_theme_engine.h b/third_party/blink/public/platform/web_theme_engine.h index 83d89695..ecd3c9f 100644 --- a/third_party/blink/public/platform/web_theme_engine.h +++ b/third_party/blink/public/platform/web_theme_engine.h
@@ -126,6 +126,7 @@ bool is_listbox; SkColor background_color; bool has_border; + bool auto_complete_active; }; // Extra parameters for PartMenuList
diff --git a/third_party/blink/public/web/DEPS b/third_party/blink/public/web/DEPS index 5d69dd9..aae5259 100644 --- a/third_party/blink/public/web/DEPS +++ b/third_party/blink/public/web/DEPS
@@ -31,6 +31,7 @@ "+services/network/public/mojom/cors_origin_pattern.mojom-shared.h", "+services/network/public/mojom/fetch_api.mojom-shared.h", "+services/network/public/mojom/ip_address_space.mojom-shared.h", + "+services/network/public/mojom/content_security_policy-shared.h", "+services/network/public/mojom/referrer_policy.mojom-shared.h", "+services/service_manager/public", "+ui/events/types",
diff --git a/third_party/blink/renderer/DEPS b/third_party/blink/renderer/DEPS index df685f5..d77331bc 100644 --- a/third_party/blink/renderer/DEPS +++ b/third_party/blink/renderer/DEPS
@@ -36,6 +36,7 @@ "+base/sys_byteorder.h", "+base/system/sys_info.h", "+base/task/post_task.h", + "+base/template_util.h", "+base/test/metrics/histogram_tester.h", "+base/test/mock_callback.h", "+base/test/scoped_feature_list.h",
diff --git a/third_party/blink/renderer/bindings/core/v8/idl_types.h b/third_party/blink/renderer/bindings/core/v8/idl_types.h index 1b921b0..d2c6ddd 100644 --- a/third_party/blink/renderer/bindings/core/v8/idl_types.h +++ b/third_party/blink/renderer/bindings/core/v8/idl_types.h
@@ -20,6 +20,7 @@ class EventListener; class ScriptPromise; +class ScriptValue; // Boolean struct IDLBoolean final : public IDLBaseHelper<bool> {}; @@ -131,6 +132,9 @@ struct IDLDateOrNull final : public IDLBaseHelper<base::Optional<base::Time>> { }; +// object +struct IDLObject final : public IDLBaseHelper<ScriptValue> {}; + // Promise struct IDLPromise final : public IDLBaseHelper<ScriptPromise> {};
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h index 6336464..12289df2 100644 --- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
@@ -9,10 +9,12 @@ #include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h" #include "third_party/blink/renderer/bindings/core/v8/script_iterator.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/typed_arrays/dom_data_view.h" #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h" +#include "third_party/blink/renderer/platform/bindings/exception_messages.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -569,18 +571,6 @@ DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE(DOMDataView); #undef DEFINE_NATIVE_VALUE_TRAITS_BUFFER_SOURCE_TYPE -// Promises -template <> -struct CORE_EXPORT NativeValueTraits<IDLPromise> - : public NativeValueTraitsBase<IDLPromise> { - static ScriptPromise NativeValue(v8::Isolate* isolate, - v8::Local<v8::Value> value, - ExceptionState& exception_state) { - return ScriptPromise::Cast(ScriptState::From(isolate->GetCurrentContext()), - value); - } -}; - // Nullable Date template <> struct CORE_EXPORT NativeValueTraits<IDLDateOrNull> @@ -593,6 +583,46 @@ } }; +// object +template <> +struct CORE_EXPORT NativeValueTraits<IDLObject> + : public NativeValueTraitsBase<IDLObject> { + static ScriptValue NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + if (value->IsObject()) + return ScriptValue(isolate, value); + exception_state.ThrowTypeError( + ExceptionMessages::FailedToConvertJSValue("object")); + return ScriptValue(); + } + + static ScriptValue ArgumentValue(v8::Isolate* isolate, + int argument_index, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + if (value->IsObject()) + return ScriptValue(isolate, value); + exception_state.ThrowTypeError( + ExceptionMessages::ArgumentNotOfType(argument_index, "object")); + return ScriptValue(); + } + + static ScriptValue NullValue() { return ScriptValue(); } +}; + +// Promises +template <> +struct CORE_EXPORT NativeValueTraits<IDLPromise> + : public NativeValueTraitsBase<IDLPromise> { + static ScriptPromise NativeValue(v8::Isolate* isolate, + v8::Local<v8::Value> value, + ExceptionState& exception_state) { + return ScriptPromise::Cast(ScriptState::From(isolate->GetCurrentContext()), + value); + } +}; + // Sequences template <typename T> struct NativeValueTraits<IDLSequence<T>>
diff --git a/third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.cc b/third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.cc index 656dcfc..b354163 100644 --- a/third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.cc +++ b/third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.cc
@@ -33,10 +33,10 @@ #include "third_party/blink/renderer/bindings/core/v8/string_or_element_creation_options.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_document.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_element_registration_options.h" #include "third_party/blink/renderer/bindings/core/v8/v8_html_element.h" #include "third_party/blink/renderer/bindings/core/v8/v8_svg_element.h" #include "third_party/blink/renderer/core/dom/document.h" -#include "third_party/blink/renderer/core/dom/element_registration_options.h" #include "third_party/blink/renderer/core/frame/web_feature.h" #include "third_party/blink/renderer/core/html/custom/v0_custom_element_definition.h" #include "third_party/blink/renderer/core/html/custom/v0_custom_element_descriptor.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc index c69cfeb..6dc5d6d3 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
@@ -65,6 +65,7 @@ #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/trustedtypes/trusted_types_util.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h" +#include "third_party/blink/renderer/core/workers/worklet_global_scope.h" #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h" #include "third_party/blink/renderer/platform/bindings/v8_per_context_data.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" @@ -336,7 +337,9 @@ return; auto* script_controller = - To<WorkerGlobalScope>(execution_context)->ScriptController(); + execution_context->IsWorkerGlobalScope() + ? To<WorkerGlobalScope>(execution_context)->ScriptController() + : To<WorkletGlobalScope>(execution_context)->ScriptController(); DCHECK(script_controller); PromiseRejectHandler(data, *script_controller->GetRejectedPromises(),
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py index f012f80..ad75793 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
@@ -183,8 +183,8 @@ real_type = idl_type.unwrap(typedef=True) non_null_real_type = real_type.unwrap(nullable=True) - if (real_type.is_boolean or real_type.is_numeric - or non_null_real_type.is_any or non_null_real_type.is_object): + if (real_type.is_boolean or real_type.is_numeric or real_type.is_any + or real_type.is_object): return "IDL{}".format(real_type.type_name) if non_null_real_type.is_string:
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py index c243a8c..5ecd708 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
@@ -155,7 +155,6 @@ continue if isinstance(type_def_obj, web_idl.Dictionary): header_paths.add(PathManager(type_def_obj).dict_path(ext="h")) - continue header_paths.add(PathManager(type_def_obj).api_path(ext="h")) return header_paths
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py index 010a36e..96c17893 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
@@ -609,7 +609,7 @@ return SequenceNode([ T("// [LenientThis]"), CxxUnlikelyIfNode( - cond="!${class_name}::HasInstance(${v8_receiver}, ${isolate})", + cond="!${class_name}::HasInstance(${isolate}, ${v8_receiver})", body=T("return;")), ]) @@ -618,7 +618,7 @@ T("// Promise returning function: " "Convert a TypeError to a reject promise."), CxxUnlikelyIfNode( - cond="!${class_name}::HasInstance(${v8_receiver}, ${isolate})", + cond="!${class_name}::HasInstance(${isolate}, ${v8_receiver})", body=[ T("${exception_state}.ThrowTypeError(" "\"Illegal invocation\");"),
diff --git a/third_party/blink/renderer/core/animation/effect_model.cc b/third_party/blink/renderer/core/animation/effect_model.cc index 4504d18..a876304 100644 --- a/third_party/blink/renderer/core/animation/effect_model.cc +++ b/third_party/blink/renderer/core/animation/effect_model.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/animation/effect_model.h" -#include "third_party/blink/renderer/core/animation/keyframe_effect_options.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_effect_options.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
diff --git a/third_party/blink/renderer/core/animation/timing_input.cc b/third_party/blink/renderer/core/animation/timing_input.cc index 13ee259..ed8c1cc1 100644 --- a/third_party/blink/renderer/core/animation/timing_input.cc +++ b/third_party/blink/renderer/core/animation/timing_input.cc
@@ -6,10 +6,10 @@ #include "third_party/blink/renderer/bindings/core/v8/unrestricted_double_or_keyframe_animation_options.h" #include "third_party/blink/renderer/bindings/core/v8/unrestricted_double_or_keyframe_effect_options.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_effect_options.h" #include "third_party/blink/renderer/core/animation/animation_effect.h" #include "third_party/blink/renderer/core/animation/animation_input_helpers.h" #include "third_party/blink/renderer/core/animation/effect_timing.h" -#include "third_party/blink/renderer/core/animation/keyframe_effect_options.h" #include "third_party/blink/renderer/core/animation/optional_effect_timing.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h"
diff --git a/third_party/blink/renderer/core/css/css_paint_value.cc b/third_party/blink/renderer/core/css/css_paint_value.cc index f946adf..5747f01 100644 --- a/third_party/blink/renderer/core/css/css_paint_value.cc +++ b/third_party/blink/renderer/core/css/css_paint_value.cc
@@ -21,14 +21,19 @@ namespace blink { -CSSPaintValue::CSSPaintValue(CSSCustomIdentValue* name) +CSSPaintValue::CSSPaintValue(CSSCustomIdentValue* name, + bool threaded_compositing_enabled) : CSSImageGeneratorValue(kPaintClass), name_(name), paint_image_generator_observer_(MakeGarbageCollected<Observer>(this)), off_thread_paint_state_( - RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() - ? OffThreadPaintState::kUnknown - : OffThreadPaintState::kMainThread) {} + (!threaded_compositing_enabled || + !RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled()) + ? OffThreadPaintState::kMainThread + : OffThreadPaintState::kUnknown) {} + +CSSPaintValue::CSSPaintValue(CSSCustomIdentValue* name) + : CSSPaintValue(name, Thread::CompositorThread()) {} CSSPaintValue::CSSPaintValue( CSSCustomIdentValue* name,
diff --git a/third_party/blink/renderer/core/css/css_paint_value.h b/third_party/blink/renderer/core/css/css_paint_value.h index b4c72b6..b2718aa 100644 --- a/third_party/blink/renderer/core/css/css_paint_value.h +++ b/third_party/blink/renderer/core/css/css_paint_value.h
@@ -20,6 +20,7 @@ class CORE_EXPORT CSSPaintValue : public CSSImageGeneratorValue { public: explicit CSSPaintValue(CSSCustomIdentValue* name); + CSSPaintValue(CSSCustomIdentValue* name, bool threaded_compositing_enabled); CSSPaintValue(CSSCustomIdentValue* name, Vector<scoped_refptr<CSSVariableData>>&); ~CSSPaintValue();
diff --git a/third_party/blink/renderer/core/css/css_paint_value_test.cc b/third_party/blink/renderer/core/css/css_paint_value_test.cc index 702fb41..2b4fb80 100644 --- a/third_party/blink/renderer/core/css/css_paint_value_test.cc +++ b/third_party/blink/renderer/core/css/css_paint_value_test.cc
@@ -89,7 +89,7 @@ const ComputedStyle& style = *target->Style(); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); // Mark the generator as ready - GetImage should succeed when // OffMainThreadCSSPaint is enabled. ON_CALL(*mock_generator, IsImageGeneratorReady()).WillByDefault(Return(true)); @@ -135,7 +135,7 @@ LayoutObject* target = GetLayoutObjectByElementId("target"); auto style = ComputedStyle::Create(); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); StyleGeneratedImage* style_image = MakeGarbageCollected<StyleGeneratedImage>(*paint_value); style->SetBorderImageSource(style_image); @@ -187,7 +187,7 @@ const ComputedStyle& style = *target->Style(); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); // Initially the generator is not ready, so GetImage should fail (and no paint // should happen). @@ -220,7 +220,7 @@ const ComputedStyle& style = *target->Style(); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u); paint_value->GetImage(*target, GetDocument(), style, target_size); @@ -238,7 +238,7 @@ SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u); // There is no generator, so returning a nullptr. @@ -249,7 +249,7 @@ SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u); // There is no generator, so returning a nullptr. @@ -278,7 +278,7 @@ const ComputedStyle& style = *target->Style(); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); ON_CALL(*mock_generator, IsImageGeneratorReady()).WillByDefault(Return(true)); // This PW can be composited, so we should only fall back to main once, in @@ -319,7 +319,7 @@ ASSERT_NE(style.InsideLink(), EInsideLink::kNotInsideLink); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("linkpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); EXPECT_FALSE(paint_value->GetImage(*target, GetDocument(), style, FloatSize(100, 100))); } @@ -347,14 +347,14 @@ ASSERT_NE(style.InsideLink(), EInsideLink::kNotInsideLink); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("linkpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); EXPECT_FALSE(paint_value->GetImage(*target, GetDocument(), style, FloatSize(100, 100))); } TEST_P(CSSPaintValueTest, BuildInputArgumentValuesNotCrash) { auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); - CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); + CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true); ASSERT_EQ(paint_value->GetParsedInputArgumentsForTesting(), nullptr); Vector<std::unique_ptr<CrossThreadStyleValue>> cross_thread_input_arguments;
diff --git a/third_party/blink/renderer/core/css/css_selector.cc b/third_party/blink/renderer/core/css/css_selector.cc index df7bb9aa..6b66a73 100644 --- a/third_party/blink/renderer/core/css/css_selector.cc +++ b/third_party/blink/renderer/core/css/css_selector.cc
@@ -806,11 +806,17 @@ builder.Append("::"); builder.Append(simple_selector->SerializingValue()); switch (simple_selector->GetPseudoType()) { - case kPseudoPart: - builder.Append('('); - builder.Append(simple_selector->Argument()); + case kPseudoPart: { + char separator = '('; + for (AtomicString part : *simple_selector->PartNames()) { + builder.Append(separator); + if (separator == '(') + separator = ' '; + SerializeIdentifier(part, builder); + } builder.Append(')'); break; + } default: break; } @@ -1211,4 +1217,10 @@ return (NthBValue() - count) % (-NthAValue()) == 0; } +void CSSSelector::SetPartNames( + std::unique_ptr<Vector<AtomicString>> part_names) { + CreateRareData(); + data_.rare_data_->part_names_ = std::move(part_names); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/css/css_selector.h b/third_party/blink/renderer/core/css/css_selector.h index 3e30168..3918dbe 100644 --- a/third_party/blink/renderer/core/css/css_selector.h +++ b/third_party/blink/renderer/core/css/css_selector.h
@@ -303,6 +303,9 @@ const CSSSelectorList* SelectorList() const { return has_rare_data_ ? data_.rare_data_->selector_list_.get() : nullptr; } + const Vector<AtomicString>* PartNames() const { + return has_rare_data_ ? data_.rare_data_->part_names_.get() : nullptr; + } #ifndef NDEBUG void Show() const; @@ -314,6 +317,7 @@ void SetAttribute(const QualifiedName&, AttributeMatchType); void SetArgument(const AtomicString&); void SetSelectorList(std::unique_ptr<CSSSelectorList>); + void SetPartNames(std::unique_ptr<Vector<AtomicString>>); void SetNth(int a, int b); bool MatchNth(unsigned count) const; @@ -448,6 +452,8 @@ AtomicString argument_; // Used for :contains, :lang, :nth-* std::unique_ptr<CSSSelectorList> selector_list_; // Used for :-webkit-any and :not + std::unique_ptr<Vector<AtomicString>> + part_names_; // Used for ::part() selectors. private: RareData(const AtomicString& value);
diff --git a/third_party/blink/renderer/core/css/cssom/css_matrix_component.cc b/third_party/blink/renderer/core/css/cssom/css_matrix_component.cc index d6545b6..a9e1553 100644 --- a/third_party/blink/renderer/core/css/cssom/css_matrix_component.cc +++ b/third_party/blink/renderer/core/css/cssom/css_matrix_component.cc
@@ -4,9 +4,9 @@ #include "third_party/blink/renderer/core/css/cssom/css_matrix_component.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_css_matrix_component_options.h" #include "third_party/blink/renderer/core/css/css_numeric_literal_value.h" #include "third_party/blink/renderer/core/css/css_primitive_value.h" -#include "third_party/blink/renderer/core/css/cssom/css_matrix_component_options.h" #include "third_party/blink/renderer/core/geometry/dom_matrix.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_selector.h b/third_party/blink/renderer/core/css/parser/css_parser_selector.h index 341013c..9ea94a4 100644 --- a/third_party/blink/renderer/core/css/parser/css_parser_selector.h +++ b/third_party/blink/renderer/core/css/parser/css_parser_selector.h
@@ -54,6 +54,9 @@ selector_->SetAttribute(value, match_type); } void SetArgument(const AtomicString& value) { selector_->SetArgument(value); } + void SetPartNames(std::unique_ptr<Vector<AtomicString>> part_names) { + selector_->SetPartNames(std::move(part_names)); + } void SetNth(int a, int b) { selector_->SetNth(a, b); } void SetMatch(CSSSelector::MatchType value) { selector_->SetMatch(value); } void SetRelation(CSSSelector::RelationType value) { @@ -80,6 +83,7 @@ void AdoptSelectorVector( Vector<std::unique_ptr<CSSParserSelector>>& selector_vector); void SetSelectorList(std::unique_ptr<CSSSelectorList>); + void SetAtomics(std::unique_ptr<CSSSelectorList>); bool IsHostPseudoSelector() const;
diff --git a/third_party/blink/renderer/core/css/parser/css_selector_parser.cc b/third_party/blink/renderer/core/css/parser/css_selector_parser.cc index c09b6d2d..86f1671 100644 --- a/third_party/blink/renderer/core/css/parser/css_selector_parser.cc +++ b/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
@@ -615,14 +615,24 @@ selector->AdoptSelectorVector(selector_vector); return selector; } - case CSSSelector::kPseudoState: - case CSSSelector::kPseudoPart: { + case CSSSelector::kPseudoState: { const CSSParserToken& ident = block.ConsumeIncludingWhitespace(); if (ident.GetType() != kIdentToken || !block.AtEnd()) return nullptr; selector->SetArgument(ident.Value().ToAtomicString()); return selector; } + case CSSSelector::kPseudoPart: { + Vector<AtomicString> parts; + do { + const CSSParserToken& ident = block.ConsumeIncludingWhitespace(); + if (ident.GetType() != kIdentToken) + return nullptr; + parts.push_back(ident.Value().ToAtomicString()); + } while (!block.AtEnd()); + selector->SetPartNames(std::make_unique<Vector<AtomicString>>(parts)); + return selector; + } case CSSSelector::kPseudoSlotted: { DisallowPseudoElementsScope scope(this);
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc index 14b5ab4..462ad54 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1875,15 +1875,6 @@ ApplyMatchedProperties<kLowPropertyPriority, kCheckNeedsApplyPass>( state, range, true, apply_inherited_only, needs_apply_pass); } - ApplyMatchedProperties<kLowPropertyPriority, kCheckNeedsApplyPass>( - state, match_result.UaRules(), true, apply_inherited_only, - needs_apply_pass); - - if (IsForcedColorsModeEnabled() && - state.Style()->ForcedColorAdjust() != EForcedColorAdjust::kNone) { - ApplyForcedColors<kLowPropertyPriority>( - state, match_result, apply_inherited_only, needs_apply_pass); - } if (state.Style()->HasAppearance() && !apply_inherited_only) { // Check whether the final border and background differs from the cached UA @@ -1895,6 +1886,16 @@ state.Style()->SetHasAuthorBorder(HasAuthorBorder(state)); } + ApplyMatchedProperties<kLowPropertyPriority, kCheckNeedsApplyPass>( + state, match_result.UaRules(), true, apply_inherited_only, + needs_apply_pass); + + if (IsForcedColorsModeEnabled() && + state.Style()->ForcedColorAdjust() != EForcedColorAdjust::kNone) { + ApplyForcedColors<kLowPropertyPriority>( + state, match_result, apply_inherited_only, needs_apply_pass); + } + LoadPendingResources(state); MaybeAddToMatchedPropertiesCache(state, cache_success, match_result);
diff --git a/third_party/blink/renderer/core/css/selector_checker.cc b/third_party/blink/renderer/core/css/selector_checker.cc index 3a1c1ba..184ee24 100644 --- a/third_party/blink/renderer/core/css/selector_checker.cc +++ b/third_party/blink/renderer/core/css/selector_checker.cc
@@ -1394,7 +1394,11 @@ } case CSSSelector::kPseudoPart: DCHECK(part_names_); - return part_names_->Contains(selector.Argument()); + for (const auto& part_name : *selector.PartNames()) { + if (!part_names_->Contains(part_name)) + return false; + } + return true; case CSSSelector::kPseudoPlaceholder: if (ShadowRoot* root = element.ContainingShadowRoot()) { return root->IsUserAgent() &&
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc index 8d1f32da8..5f51613 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
@@ -777,8 +777,8 @@ old_document.RemoveLockedDisplayLock(); document_->AddLockedDisplayLock(); if (!IsActivatable(DisplayLockActivationReason::kAny)) { - old_document.RemoveActivationBlockingDisplayLock(); - document_->AddActivationBlockingDisplayLock(); + old_document.DecrementDisplayLockBlockingAllActivation(); + document_->IncrementDisplayLockBlockingAllActivation(); } } } @@ -1023,9 +1023,9 @@ // Adjust activation blocking lock counts. if (old_activatable != new_activatable) { if (old_activatable) - document.AddActivationBlockingDisplayLock(); + document.IncrementDisplayLockBlockingAllActivation(); else - document.RemoveActivationBlockingDisplayLock(); + document.DecrementDisplayLockBlockingAllActivation(); } }
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc b/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc index 8552d79..1e6afb0 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc
@@ -683,7 +683,7 @@ EXPECT_FALSE(element->GetDisplayLockContext()->ShouldPaint( DisplayLockLifecycleTarget::kChildren)); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); EXPECT_FALSE(element->NeedsStyleRecalc()); EXPECT_FALSE(element->ChildNeedsStyleRecalc()); @@ -769,7 +769,7 @@ EXPECT_FALSE(element->GetDisplayLockContext()->ShouldPaint( DisplayLockLifecycleTarget::kChildren)); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); EXPECT_TRUE(ReattachWasBlocked(element->GetDisplayLockContext())); // Note that we didn't create a layout object for inner, since the layout tree @@ -821,7 +821,7 @@ ASSERT_TRUE(GetDocument().getElementById("textfield")->IsMouseFocusable()); ASSERT_TRUE(GetDocument().getElementById("textfield")->IsFocusable()); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); auto* element = GetDocument().getElementById("container"); LockElement(*element, false); @@ -834,7 +834,7 @@ EXPECT_FALSE(element->GetDisplayLockContext()->ShouldPaint( DisplayLockLifecycleTarget::kChildren)); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); // The input should not be focusable now. EXPECT_FALSE( @@ -859,7 +859,7 @@ UpdateAllLifecyclePhasesForTest(); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_TRUE(GetDocument().getElementById("textfield")->IsKeyboardFocusable()); EXPECT_TRUE(GetDocument().getElementById("textfield")->IsMouseFocusable()); EXPECT_TRUE(GetDocument().getElementById("textfield")->IsFocusable()); @@ -906,7 +906,7 @@ LockElement(*container, false, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); EXPECT_FALSE( host->DisplayLockPreventsActivation(DisplayLockActivationReason::kAny)); EXPECT_TRUE(container->DisplayLockPreventsActivation( @@ -921,7 +921,7 @@ CommitElement(*container, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_FALSE( host->DisplayLockPreventsActivation(DisplayLockActivationReason::kAny)); EXPECT_FALSE(container->DisplayLockPreventsActivation( @@ -932,13 +932,31 @@ UpdateAllLifecyclePhasesForTest(); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_FALSE( host->DisplayLockPreventsActivation(DisplayLockActivationReason::kAny)); EXPECT_FALSE(container->DisplayLockPreventsActivation( DisplayLockActivationReason::kAny)); EXPECT_FALSE(slotted->DisplayLockPreventsActivation( DisplayLockActivationReason::kAny)); + + SetHtmlInnerHTML(R"HTML( + <body> + <div id="nonviewport" rendersubtree="invisible skip-viewport-activation"> + </div> + </body> + )HTML"); + auto* non_viewport = GetDocument().getElementById("nonviewport"); + + EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); + + EXPECT_FALSE(non_viewport->DisplayLockPreventsActivation( + DisplayLockActivationReason::kAny)); + EXPECT_FALSE(non_viewport->DisplayLockPreventsActivation( + DisplayLockActivationReason::kFindInPage)); + EXPECT_TRUE(non_viewport->DisplayLockPreventsActivation( + DisplayLockActivationReason::kUserFocus)); } TEST_F(DisplayLockContextTest, @@ -976,7 +994,7 @@ EXPECT_FALSE(element->GetDisplayLockContext()->ShouldPaint( DisplayLockLifecycleTarget::kChildren)); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); // The input should not be focusable now. EXPECT_FALSE(text_field->IsKeyboardFocusable()); @@ -1007,7 +1025,7 @@ )HTML"); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); auto* one = GetDocument().getElementById("one"); auto* two = GetDocument().getElementById("two"); @@ -1016,37 +1034,37 @@ LockElement(*one, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); LockElement(*two, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 2); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 2); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 2); LockElement(*three, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 3); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 3); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 3); // Now commit the inner lock. CommitElement(*two); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 2); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 2); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 2); // Commit the outer lock. CommitElement(*one); // Both inner and outer locks should have committed. EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); // Commit the sibling lock. CommitElement(*three); // Both inner and outer locks should have committed. EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); } TEST_F(DisplayLockContextTest, ActivatableNotCountedAsBlocking) { @@ -1066,7 +1084,7 @@ )HTML"); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); auto* activatable = GetDocument().getElementById("activatable"); auto* non_activatable = GetDocument().getElementById("nonActivatable"); @@ -1081,14 +1099,14 @@ LockElement(*activatable, true); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_TRUE(activatable->GetDisplayLockContext()->IsActivatable( DisplayLockActivationReason::kAny)); LockElement(*non_activatable, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 2); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); EXPECT_FALSE(non_activatable->GetDisplayLockContext()->IsActivatable( DisplayLockActivationReason::kAny)); @@ -1096,7 +1114,7 @@ CommitElement(*non_activatable); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_TRUE(activatable->GetDisplayLockContext()->IsActivatable( DisplayLockActivationReason::kAny)); EXPECT_TRUE(non_activatable->GetDisplayLockContext()->IsActivatable( @@ -1118,7 +1136,7 @@ LockElement(*activatable, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); EXPECT_FALSE(activatable->GetDisplayLockContext()->IsActivatable( DisplayLockActivationReason::kAny)); @@ -1126,7 +1144,7 @@ LockElement(*activatable, true); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_TRUE(activatable->GetDisplayLockContext()->IsActivatable( DisplayLockActivationReason::kAny)); } @@ -1154,7 +1172,7 @@ )HTML"); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); auto* template_el = To<HTMLTemplateElement>(GetDocument().getElementById("template")); @@ -1165,7 +1183,7 @@ LockElement(*child, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_TRUE(child->GetDisplayLockContext()->IsLocked()); // commit() will unlock the element. @@ -1181,7 +1199,7 @@ LockElement(*document_child, false); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 1); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 1); EXPECT_TRUE(document_child->GetDisplayLockContext()->IsLocked()); container->setAttribute("style", "display: block;"); @@ -1198,7 +1216,7 @@ CommitElement(*document_child); EXPECT_FALSE(document_child->GetDisplayLockContext()->IsLocked()); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_FALSE(document_child->NeedsStyleRecalc()); EXPECT_FALSE(document_child->ChildNeedsStyleRecalc());
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc b/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc index 81ff80d1..c3355b1f 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc
@@ -34,7 +34,7 @@ return false; if (!RuntimeEnabledFeatures::DisplayLockingEnabled(&range.GetDocument()) || range.GetDocument().LockedDisplayLockCount() == - range.GetDocument().ActivationBlockingDisplayLockCount()) + range.GetDocument().DisplayLockBlockingAllActivationCount()) return false; Vector<DisplayLockContext::ScopedForcedUpdate> scoped_forced_update_list_; for (Node& node : range.Nodes()) { @@ -64,7 +64,7 @@ DCHECK(!range.IsNull()); DCHECK(!range.IsCollapsed()); if (range.GetDocument().LockedDisplayLockCount() == - range.GetDocument().ActivationBlockingDisplayLockCount()) + range.GetDocument().DisplayLockBlockingAllActivationCount()) return false; // Find-in-page matches can't span multiple block-level elements (because the // text will be broken by newlines between blocks), so first we find the @@ -86,7 +86,7 @@ return false; if (!RuntimeEnabledFeatures::DisplayLockingEnabled(&range.GetDocument()) || range.GetDocument().LockedDisplayLockCount() == - range.GetDocument().ActivationBlockingDisplayLockCount()) + range.GetDocument().DisplayLockBlockingAllActivationCount()) return false; UpdateStyleAndLayoutForRangeIfNeeded(range, DisplayLockActivationReason::kSelection); @@ -115,7 +115,7 @@ if (!RuntimeEnabledFeatures::DisplayLockingEnabled( node.GetExecutionContext()) || node.GetDocument().LockedDisplayLockCount() == - node.GetDocument().ActivationBlockingDisplayLockCount()) + node.GetDocument().DisplayLockBlockingAllActivationCount()) return elements_to_activate; for (Node& ancestor : FlatTreeTraversal::InclusiveAncestorsOf(node)) { @@ -300,7 +300,7 @@ if (!RuntimeEnabledFeatures::DisplayLockingEnabled( node.GetExecutionContext()) || node.GetDocument().LockedDisplayLockCount() == 0 || - node.GetDocument().ActivationBlockingDisplayLockCount() == 0 || + node.GetDocument().DisplayLockBlockingAllActivationCount() == 0 || !node.CanParticipateInFlatTree()) { return false; }
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_utilities_test.cc b/third_party/blink/renderer/core/display_lock/display_lock_utilities_test.cc index 154a07eb5..9b8eb83 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_utilities_test.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_utilities_test.cc
@@ -70,7 +70,7 @@ LockElement(outer, true); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 1); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); // Querying from every element gives |outer|. HeapVector<Member<Element>> result_for_outer = DisplayLockUtilities::ActivatableLockedInclusiveAncestors( @@ -105,7 +105,7 @@ // Lock innermost with activatable flag. LockElement(innermost, true); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 2); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); result_for_outer = DisplayLockUtilities::ActivatableLockedInclusiveAncestors( outer, DisplayLockActivationReason::kAny); @@ -141,7 +141,7 @@ CommitElement(innermost, false); CommitElement(outer); EXPECT_EQ(GetDocument().LockedDisplayLockCount(), 0); - EXPECT_EQ(GetDocument().ActivationBlockingDisplayLockCount(), 0); + EXPECT_EQ(GetDocument().DisplayLockBlockingAllActivationCount(), 0); EXPECT_EQ(DisplayLockUtilities::ActivatableLockedInclusiveAncestors( outer, DisplayLockActivationReason::kAny)
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index 7412d99..ea59915 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -69,6 +69,7 @@ #include "third_party/blink/renderer/bindings/core/v8/string_or_element_creation_options.h" #include "third_party/blink/renderer/bindings/core/v8/v0_custom_element_constructor_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_element_creation_options.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_element_registration_options.h" #include "third_party/blink/renderer/bindings/core/v8/window_proxy.h" #include "third_party/blink/renderer/core/accessibility/ax_context.h" #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h" @@ -110,7 +111,6 @@ #include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/core/dom/element_creation_options.h" #include "third_party/blink/renderer/core/dom/element_data_cache.h" -#include "third_party/blink/renderer/core/dom/element_registration_options.h" #include "third_party/blink/renderer/core/dom/element_traversal.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h" @@ -748,6 +748,7 @@ ukm_source_id_(ukm::UkmRecorder::GetNewSourceID()), needs_to_record_ukm_outlive_time_(false), viewport_data_(MakeGarbageCollected<ViewportData>(*this)), + is_for_external_handler_(initializer.IsForExternalHandler()), isolated_world_csp_map_( MakeGarbageCollected< HeapHashMap<int, Member<ContentSecurityPolicy>>>()) { @@ -8042,17 +8043,17 @@ num_canvases_++; } -void Document::AddActivationBlockingDisplayLock() { - ++activation_blocking_display_lock_count_; +void Document::IncrementDisplayLockBlockingAllActivation() { + ++display_lock_blocking_all_activation_count_; } -void Document::RemoveActivationBlockingDisplayLock() { - DCHECK_GT(activation_blocking_display_lock_count_, 0); - --activation_blocking_display_lock_count_; +void Document::DecrementDisplayLockBlockingAllActivation() { + DCHECK_GT(display_lock_blocking_all_activation_count_, 0); + --display_lock_blocking_all_activation_count_; } -int Document::ActivationBlockingDisplayLockCount() const { - return activation_blocking_display_lock_count_; +int Document::DisplayLockBlockingAllActivationCount() const { + return display_lock_blocking_all_activation_count_; } void Document::AddLockedDisplayLock() {
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h index eeeeee30..4f65a51 100644 --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h
@@ -484,10 +484,6 @@ } bool IsForExternalHandler() const { return is_for_external_handler_; } - void SetIsForExternalHandler() { - DCHECK(!is_for_external_handler_); - is_for_external_handler_ = true; - } // This is a DOM function. StyleSheetList& StyleSheets(); @@ -1519,9 +1515,9 @@ void ProcessJavaScriptUrl(const KURL&, ContentSecurityPolicyDisposition); // Functions to keep count of display locks in this document. - void AddActivationBlockingDisplayLock(); - void RemoveActivationBlockingDisplayLock(); - int ActivationBlockingDisplayLockCount() const; + void IncrementDisplayLockBlockingAllActivation(); + void DecrementDisplayLockBlockingAllActivation(); + int DisplayLockBlockingAllActivationCount() const; void AddLockedDisplayLock(); void RemoveLockedDisplayLock(); @@ -2084,8 +2080,8 @@ // The number of canvas elements on the document int num_canvases_ = 0; - // Number of activation blocking display locks currently in this document. - int activation_blocking_display_lock_count_ = 0; + // Number of display locks in this document that block all activation. + int display_lock_blocking_all_activation_count_ = 0; // Number of locked display locks in the document. int locked_display_lock_count_ = 0; @@ -2095,7 +2091,7 @@ // types that are handled externally. The document in this case is the // counterpart to a PluginDocument except that it contains a FrameView as // opposed to a PluginView. - bool is_for_external_handler_ = false; + bool is_for_external_handler_; #if DCHECK_IS_ON() // Allow traversal of Shadow DOM V0 traversal with dirty distribution.
diff --git a/third_party/blink/renderer/core/dom/document_init.cc b/third_party/blink/renderer/core/dom/document_init.cc index bbc427c..1d77a30 100644 --- a/third_party/blink/renderer/core/dom/document_init.cc +++ b/third_party/blink/renderer/core/dom/document_init.cc
@@ -30,13 +30,19 @@ #include "third_party/blink/renderer/core/dom/document_init.h" #include "third_party/blink/renderer/core/dom/document.h" +#include "third_party/blink/renderer/core/dom/dom_implementation.h" #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/html/custom/v0_custom_element_registration_context.h" #include "third_party/blink/renderer/core/html/html_document.h" #include "third_party/blink/renderer/core/html/html_frame_owner_element.h" #include "third_party/blink/renderer/core/html/imports/html_imports_controller.h" +#include "third_party/blink/renderer/core/html/media/html_media_element.h" #include "third_party/blink/renderer/core/loader/document_loader.h" +#include "third_party/blink/renderer/core/page/page.h" +#include "third_party/blink/renderer/core/page/plugin_data.h" +#include "third_party/blink/renderer/platform/network/mime/content_type.h" +#include "third_party/blink/renderer/platform/network/mime/mime_type_registry.h" #include "third_party/blink/renderer/platform/network/network_utils.h" namespace blink { @@ -148,6 +154,83 @@ return document_loader_ ? document_loader_->GetFrame() : nullptr; } +DocumentInit& DocumentInit::WithTypeFrom(const String& type) { + mime_type_ = type; + + if (GetFrame() && GetFrame()->InViewSourceMode()) { + type_ = Type::kViewSource; + return *this; + } + + // Plugins cannot take HTML and XHTML from us, and we don't even need to + // initialize the plugin database for those. + if (type == "text/html") { + type_ = Type::kHTML; + return *this; + } + if (type == "application/xhtml+xml") { + type_ = Type::kXHTML; + return *this; + } + // multipart/x-mixed-replace is only supported for images. + if (MIMETypeRegistry::IsSupportedImageResourceMIMEType(type) || + type == "multipart/x-mixed-replace") { + type_ = Type::kImage; + return *this; + } + if (HTMLMediaElement::GetSupportsType(ContentType(type))) { + type_ = Type::kMedia; + return *this; + } + + PluginData* plugin_data = nullptr; + if (GetFrame() && GetFrame()->GetPage() && + GetFrame()->Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) { + // If the document is being created for the main frame, + // frame()->tree().top()->securityContext() returns nullptr. + // For that reason, the origin must be retrieved directly from url(). + if (GetFrame()->IsMainFrame()) { + scoped_refptr<const SecurityOrigin> origin = + SecurityOrigin::Create(Url()); + plugin_data = GetFrame()->GetPage()->GetPluginData(origin.get()); + } else { + auto* top_security_origin = + GetFrame()->Tree().Top().GetSecurityContext()->GetSecurityOrigin(); + plugin_data = GetFrame()->GetPage()->GetPluginData(top_security_origin); + } + } + + // Everything else except text/plain can be overridden by plugins. + // Disallowing plugins to use text/plain prevents plugins from hijacking a + // fundamental type that the browser is expected to handle, and also serves as + // an optimization to prevent loading the plugin database in the common case. + if (type != "text/plain" && plugin_data && + plugin_data->SupportsMimeType(type)) { + // Plugins handled by MimeHandlerView do not create a PluginDocument. They + // are rendered inside cross-process frames and the notion of a PluginView + // (which is associated with PluginDocument) is irrelevant here. + if (plugin_data->IsExternalPluginMimeType(type)) { + type_ = Type::kHTML; + is_for_external_handler_ = true; + } else { + type_ = Type::kPlugin; + plugin_background_color_ = + plugin_data->PluginBackgroundColorForMimeType(type); + } + return *this; + } + + if (DOMImplementation::IsTextMIMEType(type)) + type_ = Type::kText; + else if (type == "image/svg+xml") + type_ = Type::kSVG; + else if (DOMImplementation::IsXMLMIMEType(type)) + type_ = Type::kXML; + else + type_ = Type::kHTML; + return *this; +} + DocumentInit& DocumentInit::WithContextDocument(Document* context_document) { DCHECK(!context_document_); context_document_ = context_document;
diff --git a/third_party/blink/renderer/core/dom/document_init.h b/third_party/blink/renderer/core/dom/document_init.h index 8f9fa791..f40c93d 100644 --- a/third_party/blink/renderer/core/dom/document_init.h +++ b/third_party/blink/renderer/core/dom/document_init.h
@@ -37,6 +37,7 @@ #include "third_party/blink/renderer/core/execution_context/security_context.h" #include "third_party/blink/renderer/core/frame/sandbox_flags.h" #include "third_party/blink/renderer/core/html/custom/v0_custom_element_registration_context.h" +#include "third_party/blink/renderer/platform/graphics/color.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" @@ -70,6 +71,19 @@ DocumentInit(const DocumentInit&); ~DocumentInit(); + enum class Type { + kHTML, + kXHTML, + kImage, + kPlugin, + kMedia, + kSVG, + kXML, + kViewSource, + kText, + kUnspecified + }; + HTMLImportsController* ImportsController() const { return imports_controller_; } @@ -88,6 +102,12 @@ DocumentInit& WithDocumentLoader(DocumentLoader*); LocalFrame* GetFrame() const; + DocumentInit& WithTypeFrom(const String& type); + Type GetType() const { return type_; } + const String& GetMimeType() const { return mime_type_; } + bool IsForExternalHandler() const { return is_for_external_handler_; } + Color GetPluginBackgroundColor() const { return plugin_background_color_; } + // Used by the DOMImplementation and DOMParser to pass their parent Document // so that the created Document will return the Document when the // ContextDocument() method is called. @@ -160,6 +180,9 @@ // of its owning Document. DocumentLoader* MasterDocumentLoader() const; + Type type_ = Type::kUnspecified; + String mime_type_; + Member<DocumentLoader> document_loader_; Member<Document> parent_document_; @@ -223,6 +246,9 @@ base::Optional<FramePolicy> frame_policy_ = base::nullopt; DocumentPolicy::FeatureState document_policy_; + + bool is_for_external_handler_ = false; + Color plugin_background_color_; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/dom/dom_implementation.cc b/third_party/blink/renderer/core/dom/dom_implementation.cc index dedb18bc..edff0948 100644 --- a/third_party/blink/renderer/core/dom/dom_implementation.cc +++ b/third_party/blink/renderer/core/dom/dom_implementation.cc
@@ -42,14 +42,11 @@ #include "third_party/blink/renderer/core/html/html_title_element.h" #include "third_party/blink/renderer/core/html/html_view_source_document.h" #include "third_party/blink/renderer/core/html/image_document.h" -#include "third_party/blink/renderer/core/html/media/html_media_element.h" #include "third_party/blink/renderer/core/html/media/media_document.h" #include "third_party/blink/renderer/core/html/plugin_document.h" #include "third_party/blink/renderer/core/html/text_document.h" #include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/loader/frame_loader.h" -#include "third_party/blink/renderer/core/page/page.h" -#include "third_party/blink/renderer/core/page/plugin_data.h" #include "third_party/blink/renderer/core/svg_names.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/graphics/image.h" @@ -207,80 +204,42 @@ return d; } -Document* DOMImplementation::createDocument(const String& type, - const DocumentInit& init, - bool in_view_source_mode) { - if (in_view_source_mode) - return MakeGarbageCollected<HTMLViewSourceDocument>(init, type); - - // Plugins cannot take HTML and XHTML from us, and we don't even need to - // initialize the plugin database for those. - if (type == "text/html") - return MakeGarbageCollected<HTMLDocument>(init); - if (type == "application/xhtml+xml") - return XMLDocument::CreateXHTML(init); - // multipart/x-mixed-replace is only supported for images. - if (MIMETypeRegistry::IsSupportedImageResourceMIMEType(type) || - type == "multipart/x-mixed-replace") { - return MakeGarbageCollected<ImageDocument>(init); - } - if (HTMLMediaElement::GetSupportsType(ContentType(type))) - return MakeGarbageCollected<MediaDocument>(init); - - PluginData* plugin_data = nullptr; - if (init.GetFrame() && init.GetFrame()->GetPage() && - init.GetFrame()->Loader().AllowPlugins(kNotAboutToInstantiatePlugin)) { - // If the document is being created for the main frame, - // init.frame()->tree().top()->securityContext() returns nullptr. - // For that reason, the origin must be retrieved directly from init.url(). - if (init.GetFrame()->IsMainFrame()) { - scoped_refptr<const SecurityOrigin> origin = - SecurityOrigin::Create(init.Url()); - plugin_data = init.GetFrame()->GetPage()->GetPluginData(origin.get()); - } else { - plugin_data = - init.GetFrame()->GetPage()->GetPluginData(init.GetFrame() - ->Tree() - .Top() - .GetSecurityContext() - ->GetSecurityOrigin()); +Document* DOMImplementation::createDocument(const DocumentInit& init) { + switch (init.GetType()) { + case DocumentInit::Type::kHTML: + return MakeGarbageCollected<HTMLDocument>(init); + case DocumentInit::Type::kXHTML: + return XMLDocument::CreateXHTML(init); + case DocumentInit::Type::kImage: + return MakeGarbageCollected<ImageDocument>(init); + case DocumentInit::Type::kPlugin: { + Document* document = MakeGarbageCollected<PluginDocument>(init); + // TODO(crbug.com/1029822): Final sandbox flags are calculated during + // document construction, so we have to construct a PluginDocument then + // replace it with a SinkDocument when plugins are sanboxed. If we move + // final sandbox flag calcuation earlier, we could construct the + // SinkDocument directly. + if (document->IsSandboxed(WebSandboxFlags::kPlugins)) + document = MakeGarbageCollected<SinkDocument>(init); + return document; } + case DocumentInit::Type::kMedia: + return MakeGarbageCollected<MediaDocument>(init); + case DocumentInit::Type::kSVG: + return XMLDocument::CreateSVG(init); + case DocumentInit::Type::kXML: + return MakeGarbageCollected<XMLDocument>(init); + case DocumentInit::Type::kViewSource: + return MakeGarbageCollected<HTMLViewSourceDocument>(init); + case DocumentInit::Type::kText: + return MakeGarbageCollected<TextDocument>(init); + case DocumentInit::Type::kUnspecified: + FALLTHROUGH; + default: + break; } - - // Everything else except text/plain can be overridden by plugins. - // Disallowing plugins to use text/plain prevents plugins from hijacking a - // fundamental type that the browser is expected to handle, and also serves as - // an optimization to prevent loading the plugin database in the common case. - if (type != "text/plain" && plugin_data && - plugin_data->SupportsMimeType(type)) { - // Plugins handled by MimeHandlerView do not create a PluginDocument. They - // are rendered inside cross-process frames and the notion of a PluginView - // (which is associated with PluginDocument) is irrelevant here. - if (plugin_data->IsExternalPluginMimeType(type)) { - auto* html_document = MakeGarbageCollected<HTMLDocument>(init); - html_document->SetIsForExternalHandler(); - return html_document; - } - - Document* document = MakeGarbageCollected<PluginDocument>( - init, plugin_data->PluginBackgroundColorForMimeType(type)); - // TODO(crbug.com/1029822): Final sandbox flags are calculated during - // document construction, so we have to construct a PluginDocument then - // replace it with a SinkDocument when plugins are sanboxed. If we move - // final sandbox flag calcuation earlier, we could construct the - // SinkDocument directly. - if (document->IsSandboxed(WebSandboxFlags::kPlugins)) - document = MakeGarbageCollected<SinkDocument>(init); - return document; - } - if (IsTextMIMEType(type)) - return MakeGarbageCollected<TextDocument>(init); - if (type == "image/svg+xml") - return XMLDocument::CreateSVG(init); - if (IsXMLMIMEType(type)) - return MakeGarbageCollected<XMLDocument>(init); - - return MakeGarbageCollected<HTMLDocument>(init); + NOTREACHED(); + return nullptr; } void DOMImplementation::Trace(Visitor* visitor) {
diff --git a/third_party/blink/renderer/core/dom/dom_implementation.h b/third_party/blink/renderer/core/dom/dom_implementation.h index 25e6d63e..72599ffa 100644 --- a/third_party/blink/renderer/core/dom/dom_implementation.h +++ b/third_party/blink/renderer/core/dom/dom_implementation.h
@@ -56,9 +56,7 @@ Document* createHTMLDocument(const String& title = String()); // Other methods (not part of DOM) - static Document* createDocument(const String& mime_type, - const DocumentInit&, - bool in_view_source_mode); + static Document* createDocument(const DocumentInit&); static bool IsXMLMIMEType(const String&); static bool IsTextMIMEType(const String&);
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index d6b4a04..7215ddb 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -4360,7 +4360,7 @@ bool Element::ActivateDisplayLockIfNeeded(DisplayLockActivationReason reason) { if (!RuntimeEnabledFeatures::DisplayLockingEnabled(GetExecutionContext()) || GetDocument().LockedDisplayLockCount() == - GetDocument().ActivationBlockingDisplayLockCount()) + GetDocument().DisplayLockBlockingAllActivationCount()) return false; const_cast<Element*>(this)->UpdateDistributionForFlatTreeTraversal(); @@ -4398,7 +4398,7 @@ if (!RuntimeEnabledFeatures::DisplayLockingEnabled(GetExecutionContext())) return false; - if (GetDocument().ActivationBlockingDisplayLockCount() == 0) + if (GetDocument().LockedDisplayLockCount() == 0) return false; const_cast<Element*>(this)->UpdateDistributionForFlatTreeTraversal(); @@ -5237,7 +5237,7 @@ DCHECK(!To<FirstLetterPseudoElement>(element)->RemainingTextLayoutObject()); DCHECK(text_node_changed); scoped_refptr<ComputedStyle> pseudo_style = element->StyleForLayoutObject(); - if (PseudoElementLayoutObjectIsNeeded(pseudo_style.get())) + if (PseudoElementLayoutObjectIsNeeded(pseudo_style.get(), this)) element->SetComputedStyle(std::move(pseudo_style)); else GetElementRareData()->SetPseudoElement(kPseudoIdFirstLetter, nullptr); @@ -5253,7 +5253,7 @@ element->RecalcStyle(change); if (element->NeedsReattachLayoutTree() && - !PseudoElementLayoutObjectIsNeeded(element->GetComputedStyle())) { + !PseudoElementLayoutObjectIsNeeded(element->GetComputedStyle(), this)) { GetElementRareData()->SetPseudoElement(kPseudoIdFirstLetter, nullptr); GetDocument().GetStyleEngine().PseudoElementRemoved(*this); } @@ -5276,7 +5276,7 @@ element->RecalcStyle(change.ForPseudoElement()); if (!element->NeedsReattachLayoutTree()) return; - if (PseudoElementLayoutObjectIsNeeded(element->GetComputedStyle())) + if (PseudoElementLayoutObjectIsNeeded(element->GetComputedStyle(), this)) return; } GetElementRareData()->SetPseudoElement(pseudo_id, nullptr); @@ -5298,7 +5298,7 @@ scoped_refptr<ComputedStyle> pseudo_style = pseudo_element->StyleForLayoutObject(); - if (!PseudoElementLayoutObjectIsNeeded(pseudo_style.get())) { + if (!PseudoElementLayoutObjectIsNeeded(pseudo_style.get(), this)) { GetElementRareData()->SetPseudoElement(pseudo_id, nullptr); return nullptr; } @@ -5407,6 +5407,8 @@ return false; if (pseudo_id == kPseudoIdFirstLetter && IsSVGElement()) return false; + if (pseudo_id == kPseudoIdMarker && IsA<HTMLFieldSetElement>(this)) + return false; if (const ComputedStyle* style = GetComputedStyle()) return style->CanGeneratePseudoElement(pseudo_id); return false;
diff --git a/third_party/blink/renderer/core/dom/global_event_handlers.h b/third_party/blink/renderer/core/dom/global_event_handlers.h index e18c394..c92b4ed1 100644 --- a/third_party/blink/renderer/core/dom/global_event_handlers.h +++ b/third_party/blink/renderer/core/dom/global_event_handlers.h
@@ -127,6 +127,14 @@ DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(touchstart, kTouchstart) DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(volumechange, kVolumechange) DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(waiting, kWaiting) + DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(webkitanimationend, + kWebkitAnimationEnd) + DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(webkitanimationiteration, + kWebkitAnimationIteration) + DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(webkitanimationstart, + kWebkitAnimationStart) + DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(webkittransitionend, + kWebkitTransitionEnd) DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(wheel, kWheel) };
diff --git a/third_party/blink/renderer/core/dom/global_event_handlers.idl b/third_party/blink/renderer/core/dom/global_event_handlers.idl index d4480cf..044660f 100644 --- a/third_party/blink/renderer/core/dom/global_event_handlers.idl +++ b/third_party/blink/renderer/core/dom/global_event_handlers.idl
@@ -98,6 +98,10 @@ attribute EventHandler ontoggle; attribute EventHandler onvolumechange; attribute EventHandler onwaiting; + attribute EventHandler onwebkitanimationend; + attribute EventHandler onwebkitanimationiteration; + attribute EventHandler onwebkitanimationstart; + attribute EventHandler onwebkittransitionend; attribute EventHandler onwheel; // auxclick
diff --git a/third_party/blink/renderer/core/dom/pseudo_element.cc b/third_party/blink/renderer/core/dom/pseudo_element.cc index b22d8465..8dcd7c6 100644 --- a/third_party/blink/renderer/core/dom/pseudo_element.cc +++ b/third_party/blink/renderer/core/dom/pseudo_element.cc
@@ -35,6 +35,7 @@ #include "third_party/blink/renderer/core/layout/generated_children.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/layout/layout_quote.h" +#include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/style/computed_style.h" #include "third_party/blink/renderer/core/style/content_data.h" @@ -176,12 +177,25 @@ DCHECK(CanHaveGeneratedChildren(*layout_object->Parent())); const ComputedStyle& style = layout_object->StyleRef(); - if (style.StyleType() != kPseudoIdBefore && - style.StyleType() != kPseudoIdAfter && - style.StyleType() != kPseudoIdMarker) - return; - DCHECK(style.GetContentData()); + switch (style.StyleType()) { + case kPseudoIdMarker: { + LayoutObject* parent = layout_object->Parent(); + if (parent && parent->IsLayoutNGListItem()) { + ToLayoutNGListItem(layout_object->Parent()) + ->UpdateMarkerContentIfNeeded(); + } + if (!style.GetContentData()) + return; + break; + } + case kPseudoIdBefore: + case kPseudoIdAfter: + break; + default: + return; + } + DCHECK(style.GetContentData()); for (const ContentData* content = style.GetContentData(); content; content = content->Next()) { LegacyLayout legacy = context.force_legacy_layout ? LegacyLayout::kForce @@ -200,7 +214,7 @@ } bool PseudoElement::LayoutObjectIsNeeded(const ComputedStyle& style) const { - return PseudoElementLayoutObjectIsNeeded(&style); + return PseudoElementLayoutObjectIsNeeded(&style, this->parentElement()); } bool PseudoElement::CanGeneratePseudoElement(PseudoId pseudo_id) const { @@ -220,15 +234,32 @@ return ParentOrShadowHostNode(); } -bool PseudoElementLayoutObjectIsNeeded(const ComputedStyle* style) { - if (!style) +bool PseudoElementLayoutObjectIsNeeded(const ComputedStyle* pseudo_style, + const Element* originating_element) { + if (!pseudo_style) return false; - if (style->Display() == EDisplay::kNone) + if (pseudo_style->Display() == EDisplay::kNone) return false; - if (style->StyleType() == kPseudoIdFirstLetter || - style->StyleType() == kPseudoIdBackdrop) - return true; - return style->GetContentData(); + switch (pseudo_style->StyleType()) { + case kPseudoIdFirstLetter: + case kPseudoIdBackdrop: + return true; + case kPseudoIdBefore: + case kPseudoIdAfter: + return pseudo_style->GetContentData(); + case kPseudoIdMarker: { + if (pseudo_style->GetContentData()) + return true; + const ComputedStyle* parent_style = + originating_element->GetComputedStyle(); + return parent_style && + (parent_style->ListStyleType() != EListStyleType::kNone || + parent_style->GeneratesMarkerImage()); + } + default: + NOTREACHED(); + return false; + } } } // namespace blink
diff --git a/third_party/blink/renderer/core/dom/pseudo_element.h b/third_party/blink/renderer/core/dom/pseudo_element.h index 40ff558..e5fbcc3b 100644 --- a/third_party/blink/renderer/core/dom/pseudo_element.h +++ b/third_party/blink/renderer/core/dom/pseudo_element.h
@@ -78,7 +78,8 @@ const QualifiedName& PseudoElementTagName(PseudoId); -bool PseudoElementLayoutObjectIsNeeded(const ComputedStyle*); +bool PseudoElementLayoutObjectIsNeeded(const ComputedStyle* pseudo_style, + const Element* originating_element); template <> struct DowncastTraits<PseudoElement> {
diff --git a/third_party/blink/renderer/core/editing/finder/find_buffer.cc b/third_party/blink/renderer/core/editing/finder/find_buffer.cc index c4fc40d7..4b92715 100644 --- a/third_party/blink/renderer/core/editing/finder/find_buffer.cc +++ b/third_party/blink/renderer/core/editing/finder/find_buffer.cc
@@ -283,7 +283,7 @@ start_node.GetExecutionContext())) return; if (start_node.GetDocument().LockedDisplayLockCount() == - start_node.GetDocument().ActivationBlockingDisplayLockCount()) + start_node.GetDocument().DisplayLockBlockingAllActivationCount()) return; Node* node = &start_node;
diff --git a/third_party/blink/renderer/core/editing/ime/text_format_update_event.cc b/third_party/blink/renderer/core/editing/ime/text_format_update_event.cc index 8152313..2a5696c 100644 --- a/third_party/blink/renderer/core/editing/ime/text_format_update_event.cc +++ b/third_party/blink/renderer/core/editing/ime/text_format_update_event.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/core/editing/ime/text_format_update_event.h" -#include "third_party/blink/renderer/core/editing/ime/text_format_update_event_init.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_text_format_update_event_init.h" #include "third_party/blink/renderer/core/event_interface_names.h" #include "third_party/blink/renderer/core/event_type_names.h"
diff --git a/third_party/blink/renderer/core/events/input_event.h b/third_party/blink/renderer/core/events/input_event.h index e432d634..8465a75 100644 --- a/third_party/blink/renderer/core/events/input_event.h +++ b/third_party/blink/renderer/core/events/input_event.h
@@ -5,10 +5,10 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_INPUT_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_INPUT_EVENT_H_ +#include "third_party/blink/renderer/bindings/core/v8/v8_input_event_init.h" #include "third_party/blink/renderer/core/clipboard/data_transfer.h" #include "third_party/blink/renderer/core/dom/range.h" #include "third_party/blink/renderer/core/dom/static_range.h" -#include "third_party/blink/renderer/core/events/input_event_init.h" #include "third_party/blink/renderer/core/events/ui_event.h" namespace blink {
diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_party/blink/renderer/core/events/pointer_event.h index b8b7bfe..59049bc 100644 --- a/third_party/blink/renderer/core/events/pointer_event.h +++ b/third_party/blink/renderer/core/events/pointer_event.h
@@ -5,8 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_POINTER_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_POINTER_EVENT_H_ +#include "third_party/blink/renderer/bindings/core/v8/v8_pointer_event_init.h" #include "third_party/blink/renderer/core/events/mouse_event.h" -#include "third_party/blink/renderer/core/events/pointer_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/core/events/pop_state_event.h b/third_party/blink/renderer/core/events/pop_state_event.h index 05390ec..f98d53b 100644 --- a/third_party/blink/renderer/core/events/pop_state_event.h +++ b/third_party/blink/renderer/core/events/pop_state_event.h
@@ -27,8 +27,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_POP_STATE_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_POP_STATE_EVENT_H_ +#include "third_party/blink/renderer/bindings/core/v8/v8_pop_state_event_init.h" #include "third_party/blink/renderer/core/dom/events/event.h" -#include "third_party/blink/renderer/core/events/pop_state_event_init.h" #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h" #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h" #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/events/ui_event.h b/third_party/blink/renderer/core/events/ui_event.h index 26bb1daa..e821dd8ec 100644 --- a/third_party/blink/renderer/core/events/ui_event.h +++ b/third_party/blink/renderer/core/events/ui_event.h
@@ -24,9 +24,9 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_UI_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_UI_EVENT_H_ +#include "third_party/blink/renderer/bindings/core/v8/v8_ui_event_init.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/events/event.h" -#include "third_party/blink/renderer/core/events/ui_event_init.h" #include "third_party/blink/renderer/core/frame/dom_window.h" namespace blink {
diff --git a/third_party/blink/renderer/core/fetch/body.cc b/third_party/blink/renderer/core/fetch/body.cc index 5653e7d78..1f1a8ee 100644 --- a/third_party/blink/renderer/core/fetch/body.cc +++ b/third_party/blink/renderer/core/fetch/body.cc
@@ -351,12 +351,13 @@ } ReadableStream* Body::body() { - auto* execution_context = GetExecutionContext(); - if (execution_context->IsServiceWorkerGlobalScope()) { - execution_context->CountUse(WebFeature::kFetchBodyStreamInServiceWorker); - } else { - execution_context->CountUse( - WebFeature::kFetchBodyStreamOutsideServiceWorker); + if (auto* execution_context = GetExecutionContext()) { + if (execution_context->IsServiceWorkerGlobalScope()) { + execution_context->CountUse(WebFeature::kFetchBodyStreamInServiceWorker); + } else { + execution_context->CountUse( + WebFeature::kFetchBodyStreamOutsideServiceWorker); + } } if (!BodyBuffer())
diff --git a/third_party/blink/renderer/core/fetch/fetch_response_data.cc b/third_party/blink/renderer/core/fetch/fetch_response_data.cc index 0392e702..b322308 100644 --- a/third_party/blink/renderer/core/fetch/fetch_response_data.cc +++ b/third_party/blink/renderer/core/fetch/fetch_response_data.cc
@@ -53,6 +53,12 @@ ConvertToBlink(std::move(csp->source_list))); } +blink::ContentSecurityPolicyHeaderPtr ConvertToBlink( + ContentSecurityPolicyHeaderPtr header) { + return blink::ContentSecurityPolicyHeader::New( + String::FromUTF8(header->header_value), header->type, header->source); +} + blink::ContentSecurityPolicyPtr ConvertToBlink(ContentSecurityPolicyPtr csp) { WTF::Vector<blink::CSPDirectivePtr> directives; for (auto& directive : csp->directives) @@ -62,9 +68,9 @@ for (auto& endpoint : csp->report_endpoints) report_endpoints.push_back(String::FromUTF8(endpoint)); - return blink::ContentSecurityPolicy::New(std::move(directives), csp->type, - csp->source, csp->use_reporting_api, - std::move(report_endpoints)); + return blink::ContentSecurityPolicy::New( + std::move(directives), ConvertToBlink(std::move(csp->header)), + csp->use_reporting_api, std::move(report_endpoints)); } WTF::Vector<blink::ContentSecurityPolicyPtr> ConvertToBlink(
diff --git a/third_party/blink/renderer/core/fetch/fetch_response_data_test.cc b/third_party/blink/renderer/core/fetch/fetch_response_data_test.cc index 2eeb44709..af072b5b 100644 --- a/third_party/blink/renderer/core/fetch/fetch_response_data_test.cc +++ b/third_party/blink/renderer/core/fetch/fetch_response_data_test.cc
@@ -280,8 +280,10 @@ auto& csp = fetch_api_response->content_security_policy; EXPECT_EQ(csp.size(), 2U); - EXPECT_EQ(csp[0]->type, network::mojom::ContentSecurityPolicyType::kEnforce); - EXPECT_EQ(csp[1]->type, network::mojom::ContentSecurityPolicyType::kReport); + EXPECT_EQ(csp[0]->header->type, + network::mojom::ContentSecurityPolicyType::kEnforce); + EXPECT_EQ(csp[1]->header->type, + network::mojom::ContentSecurityPolicyType::kReport); } } // namespace blink
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc index e9ee781..e2450ef 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -244,8 +244,7 @@ return trusted_types_.Get(); } -Document* LocalDOMWindow::CreateDocument(const String& mime_type, - const DocumentInit& init, +Document* LocalDOMWindow::CreateDocument(const DocumentInit& init, bool force_xhtml) { Document* document = nullptr; if (force_xhtml) { @@ -253,9 +252,7 @@ // XSLTProcessor::createDocumentFromSource(). document = MakeGarbageCollected<Document>(init); } else { - document = DOMImplementation::createDocument( - mime_type, init, - init.GetFrame() ? init.GetFrame()->InViewSourceMode() : false); + document = DOMImplementation::createDocument(init); } return document; @@ -266,14 +263,13 @@ return blink::ToLocalDOMWindow(script_state->GetContext()); } -Document* LocalDOMWindow::InstallNewDocument(const String& mime_type, - const DocumentInit& init, +Document* LocalDOMWindow::InstallNewDocument(const DocumentInit& init, bool force_xhtml) { DCHECK_EQ(init.GetFrame(), GetFrame()); ClearDocument(); - document_ = CreateDocument(mime_type, init, force_xhtml); + document_ = CreateDocument(init, force_xhtml); document_->Initialize(); if (!GetFrame())
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.h b/third_party/blink/renderer/core/frame/local_dom_window.h index 91dd27d..c2643b91 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.h +++ b/third_party/blink/renderer/core/frame/local_dom_window.h
@@ -96,9 +96,7 @@ virtual void DidRemoveAllEventListeners(LocalDOMWindow*) = 0; }; - static Document* CreateDocument(const String& mime_type, - const DocumentInit&, - bool force_xhtml); + static Document* CreateDocument(const DocumentInit&, bool force_xhtml); static LocalDOMWindow* From(const ScriptState*); @@ -109,9 +107,7 @@ void Trace(blink::Visitor*) override; - Document* InstallNewDocument(const String& mime_type, - const DocumentInit&, - bool force_xhtml); + Document* InstallNewDocument(const DocumentInit&, bool force_xhtml); // EventTarget overrides: ExecutionContext* GetExecutionContext() const override; @@ -248,12 +244,6 @@ DEFINE_ATTRIBUTE_EVENT_LISTENER(search, kSearch) - DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitanimationstart, kWebkitAnimationStart) - DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitanimationiteration, - kWebkitAnimationIteration) - DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitanimationend, kWebkitAnimationEnd) - DEFINE_ATTRIBUTE_EVENT_LISTENER(webkittransitionend, kWebkitTransitionEnd) - DEFINE_ATTRIBUTE_EVENT_LISTENER(orientationchange, kOrientationchange) void RegisterEventListenerObserver(EventListenerObserver*);
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index 58f9b20..5ad4c0fa 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -1386,8 +1386,9 @@ GetDocument()->Shutdown(); DomWindow()->InstallNewDocument( - mime_type, - DocumentInit::Create().WithDocumentLoader(loader_.GetDocumentLoader()), + DocumentInit::Create() + .WithDocumentLoader(loader_.GetDocumentLoader()) + .WithTypeFrom(mime_type), false); loader_.StateMachine()->AdvanceTo( FrameLoaderStateMachine::kCommittedFirstRealLoad);
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc index 30ec33b..354c81a 100644 --- a/third_party/blink/renderer/core/frame/remote_frame.cc +++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -10,6 +10,7 @@ #include "third_party/blink/public/platform/interface_registry.h" #include "third_party/blink/renderer/bindings/core/v8/window_proxy.h" #include "third_party/blink/renderer/bindings/core/v8/window_proxy_manager.h" +#include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame_client.h" #include "third_party/blink/renderer/core/frame/remote_dom_window.h" @@ -298,6 +299,17 @@ Fullscreen::RequestType::kPrefixedForCrossProcessDescendant); } +void RemoteFrame::AddReplicatedContentSecurityPolicies( + WTF::Vector<network::mojom::blink::ContentSecurityPolicyHeaderPtr> + headers) { + for (auto& header : headers) { + GetSecurityContext()->GetContentSecurityPolicy()->AddPolicyFromHeaderValue( + header->header_value, + static_cast<ContentSecurityPolicyHeaderType>(header->type), + static_cast<ContentSecurityPolicyHeaderSource>(header->source)); + } +} + void RemoteFrame::ResetReplicatedContentSecurityPolicy() { security_context_.ResetReplicatedContentSecurityPolicy(); }
diff --git a/third_party/blink/renderer/core/frame/remote_frame.h b/third_party/blink/renderer/core/frame/remote_frame.h index 2551ee36..072a473 100644 --- a/third_party/blink/renderer/core/frame/remote_frame.h +++ b/third_party/blink/renderer/core/frame/remote_frame.h
@@ -91,6 +91,9 @@ // blink::mojom::RemoteFrame overrides: void WillEnterFullscreen() override; + void AddReplicatedContentSecurityPolicies( + WTF::Vector<network::mojom::blink::ContentSecurityPolicyHeaderPtr> + headers) override; void ResetReplicatedContentSecurityPolicy() override; void EnforceInsecureNavigationsSet(const WTF::Vector<uint32_t>& set) override; void SetReplicatedOrigin(
diff --git a/third_party/blink/renderer/core/frame/window.idl b/third_party/blink/renderer/core/frame/window.idl index dfe1bbfc..ef5f134 100644 --- a/third_party/blink/renderer/core/frame/window.idl +++ b/third_party/blink/renderer/core/frame/window.idl
@@ -201,12 +201,6 @@ // Event handler attributes attribute EventHandler onsearch; - // TODO(crbug.com/999895): Move to global_event_handlers.idl - attribute EventHandler onwebkitanimationend; - attribute EventHandler onwebkitanimationiteration; - attribute EventHandler onwebkitanimationstart; - attribute EventHandler onwebkittransitionend; - // https://w3c.github.io/webappsec-secure-contexts/#monkey-patching-global-object readonly attribute boolean isSecureContext;
diff --git a/third_party/blink/renderer/core/html/forms/html_text_area_element.cc b/third_party/blink/renderer/core/html/forms/html_text_area_element.cc index 78a93fe7..cb4cce7 100644 --- a/third_party/blink/renderer/core/html/forms/html_text_area_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_text_area_element.cc
@@ -445,6 +445,10 @@ DispatchFormControlChangeEvent(); break; + case TextFieldEventBehavior::kDispatchInputEvent: + DispatchInputEvent(); + break; + case TextFieldEventBehavior::kDispatchInputAndChangeEvent: DispatchInputEvent(); DispatchFormControlChangeEvent();
diff --git a/third_party/blink/renderer/core/html/forms/input_type.cc b/third_party/blink/renderer/core/html/forms/input_type.cc index 8a47c143..b04fc712 100644 --- a/third_party/blink/renderer/core/html/forms/input_type.cc +++ b/third_party/blink/renderer/core/html/forms/input_type.cc
@@ -602,6 +602,9 @@ case TextFieldEventBehavior::kDispatchChangeEvent: GetElement().DispatchFormControlChangeEvent(); break; + case TextFieldEventBehavior::kDispatchInputEvent: + GetElement().DispatchInputEvent(); + break; case TextFieldEventBehavior::kDispatchInputAndChangeEvent: GetElement().DispatchInputEvent(); GetElement().DispatchFormControlChangeEvent();
diff --git a/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.cc b/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.cc index 4e2cada7..76e9862 100644 --- a/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.cc +++ b/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.cc
@@ -280,8 +280,7 @@ void MultipleFieldsTemporalInputTypeView::PickerIndicatorChooseValue( const String& value) { if (GetElement().IsValidValue(value)) { - GetElement().setValue(value, - TextFieldEventBehavior::kDispatchInputAndChangeEvent); + GetElement().setValue(value, TextFieldEventBehavior::kDispatchInputEvent); return; } @@ -298,7 +297,6 @@ if (date.ParseDate(value, 0, end) && end == value.length()) edit->SetOnlyYearMonthDay(date); } - GetElement().DispatchFormControlChangeEvent(); } void MultipleFieldsTemporalInputTypeView::PickerIndicatorChooseValue( @@ -306,11 +304,10 @@ DCHECK(std::isfinite(value) || std::isnan(value)); if (std::isnan(value)) { GetElement().setValue(g_empty_string, - TextFieldEventBehavior::kDispatchInputAndChangeEvent); + TextFieldEventBehavior::kDispatchInputEvent); } else { - GetElement().setValueAsNumber( - value, ASSERT_NO_EXCEPTION, - TextFieldEventBehavior::kDispatchInputAndChangeEvent); + GetElement().setValueAsNumber(value, ASSERT_NO_EXCEPTION, + TextFieldEventBehavior::kDispatchInputEvent); } } @@ -336,6 +333,10 @@ return GetElement().SetupDateTimeChooserParameters(parameters); } +void MultipleFieldsTemporalInputTypeView::DidEndChooser() { + GetElement().EnqueueChangeEvent(); +} + MultipleFieldsTemporalInputTypeView::MultipleFieldsTemporalInputTypeView( HTMLInputElement& element, BaseTemporalInputType& input_type)
diff --git a/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.h b/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.h index 7ec1c40..19fa8a05 100644 --- a/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.h +++ b/third_party/blink/renderer/core/html/forms/multiple_fields_temporal_input_type_view.h
@@ -84,6 +84,7 @@ void PickerIndicatorChooseValue(double) final; Element& PickerOwnerElement() const final; bool SetupDateTimeChooserParameters(DateTimeChooserParameters&) final; + void DidEndChooser() final; // ClearButtonElement::ClearButtonOwner functions. void FocusAndSelectClearButtonOwner() override;
diff --git a/third_party/blink/renderer/core/html/forms/picker_indicator_element.cc b/third_party/blink/renderer/core/html/forms/picker_indicator_element.cc index 2164db8..fbd9c49 100644 --- a/third_party/blink/renderer/core/html/forms/picker_indicator_element.cc +++ b/third_party/blink/renderer/core/html/forms/picker_indicator_element.cc
@@ -110,6 +110,7 @@ void PickerIndicatorElement::DidEndChooser() { chooser_.Clear(); + picker_indicator_owner_->DidEndChooser(); } void PickerIndicatorElement::OpenPopup() {
diff --git a/third_party/blink/renderer/core/html/forms/picker_indicator_element.h b/third_party/blink/renderer/core/html/forms/picker_indicator_element.h index dd0e9a2..9835eed 100644 --- a/third_party/blink/renderer/core/html/forms/picker_indicator_element.h +++ b/third_party/blink/renderer/core/html/forms/picker_indicator_element.h
@@ -55,6 +55,7 @@ virtual void PickerIndicatorChooseValue(double) = 0; virtual Element& PickerOwnerElement() const = 0; virtual bool SetupDateTimeChooserParameters(DateTimeChooserParameters&) = 0; + virtual void DidEndChooser() = 0; }; PickerIndicatorElement(Document&, PickerIndicatorOwner&);
diff --git a/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js b/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js index d89a990..101d611fb 100644 --- a/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js +++ b/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js
@@ -2950,6 +2950,7 @@ this.element.style.maxWidth = maxWidth + 'px'; this.element.addEventListener('click', this.onClick, false); + this.element.addEventListener('keydown', this.onKeyDown, false); } MonthPopupButton.prototype = Object.create(View.prototype); @@ -2993,6 +2994,20 @@ }; /** + * @param {?Event} event + */ +MonthPopupButton.prototype.onKeyDown = function(event) { + if (event.key === 'Enter') { + // Prevent an Enter keypress on the month selector from submitting the + // popup. The click handler will also run for a keypress even though this + // event is suppressed, so the month popup will still open from the + // Enter key. + event.stopPropagation(); + event.preventDefault(); + } +}; + +/** * @constructor * @extends View */ @@ -3017,6 +3032,7 @@ */ this._timer = null; this.element.addEventListener('click', this.onClick, false); + this.element.addEventListener('keydown', this.onKeyDown, false); this.element.addEventListener('mousedown', this.onMouseDown, false); this.element.addEventListener('touchstart', this.onTouchStart, false); }; @@ -3049,6 +3065,20 @@ /** * @param {?Event} event */ +CalendarNavigationButton.prototype.onKeyDown = function(event) { + if (event.key === 'Enter') { + // Prevent an Enter keypress on the previous/next month and Today buttons + // from submitting the popup. The click handler will also run for a + // keypress even though this event is suppressed, so the action for the + // button will still be triggered from the Enter key. + event.stopPropagation(); + event.preventDefault(); + } +}; + +/** + * @param {?Event} event + */ CalendarNavigationButton.prototype.onTouchStart = function(event) { if (this._timer !== null) return; @@ -3149,6 +3179,7 @@ */ this._todayButton = new CalendarNavigationButton(); this._todayButton.attachTo(this); + this._todayButton.isTodayButton = true; this._todayButton.on( CalendarNavigationButton.EventTypeButtonClick, this.onNavigationButtonClick); @@ -3646,6 +3677,7 @@ * @const */ var todayButton = new CalendarNavigationButton(); + todayButton.isTodayButton = true; todayButton.attachTo(this); todayButton.on( CalendarNavigationButton.EventTypeButtonClick, this.onTodayButtonClick); @@ -4065,9 +4097,23 @@ Month.createFromDay(initialSelection.middleDay()), CalendarPicker.NavigationBehavior.None); this.setSelection(initialSelection); - } else + } else { this.setCurrentMonth( Month.createFromToday(), CalendarPicker.NavigationBehavior.None); + if (global.params.isFormControlsRefreshEnabled && + this.type == 'datetime-local') { + // When used with datetime-local, ensure that today's date is selected to start with + // so that if the user only edits the time, they can still submit the popup without + // also needing to edit the calendar view. + this.setSelection(Day.createFromToday()); + } + } + + /** + * @type {?DateType} + * @protected + */ + this._initialSelection = this._selection; } CalendarPicker.prototype = Object.create(View.prototype); @@ -4088,6 +4134,10 @@ window.removeEventListener('resize', this.onWindowResize, false); }; +CalendarPicker.prototype.resetToInitialValue = function() { + this.setSelection(this._initialSelection); +}; + /** * @param {!YearListView} sender */ @@ -4289,6 +4339,11 @@ return; if (this._selection && this._selection.equals(dayOrWeekOrMonth)) return; + if (this._selection && !dayOrWeekOrMonth) { + this._selection = null; + this._setHighlight(null); + return; + } var firstDayInSelection = dayOrWeekOrMonth.firstDay(); var lastDayInSelection = dayOrWeekOrMonth.lastDay(); var candidateCurrentMonth = Month.createFromDay(firstDayInSelection); @@ -4526,8 +4581,14 @@ var offset = 0; switch (key) { case 'Escape': - window.pagePopupController.closePopup(); - eventHandled = true; + // The datetime-local control handles submission/cancellation at + // the top level, so if we're in a datetime-local let event bubble + // up instead of handling it here and closing the popup. + if (!(global.params.isFormControlsRefreshEnabled && + this.type == 'datetime-local')) { + window.pagePopupController.closePopup(); + eventHandled = true; + } break; case 'm': case 'M':
diff --git a/third_party/blink/renderer/core/html/forms/resources/datetimelocal_picker.js b/third_party/blink/renderer/core/html/forms/resources/datetimelocal_picker.js index 64f219fc..2e77866a 100644 --- a/third_party/blink/renderer/core/html/forms/resources/datetimelocal_picker.js +++ b/third_party/blink/renderer/core/html/forms/resources/datetimelocal_picker.js
@@ -19,10 +19,9 @@ /** * DateTimeLocalPicker: Custom element providing a datetime-local picker implementation. - * DateTimeLocalPicker contains 3 parts: + * DateTimeLocalPicker contains 2 parts: * - date picker * - time picker - * - submission controls */ class DateTimeLocalPicker extends HTMLElement { constructor(config) { @@ -34,34 +33,43 @@ this.timePicker_ = new TimePicker(config); this.append(this.datePicker_.element, this.timePicker_); - this.submissionControls_ = new SubmissionControls( - this.onSubmitButtonClick_, this.onCancelButtonClick_); - this.append(this.submissionControls_); + this.hadValidValueWhenOpened_ = + (config.currentValue !== '') && (this.datePicker_.selection() != null); + this.initialSelectedValue_ = this.selectedValue; + this.addEventListener('keydown', this.onKeyDown_); + this.addEventListener('click', this.onClick_); window.addEventListener('resize', this.onWindowResize_, {once: true}); }; - onSubmitButtonClick_ = () => { - const selectedValue = this.datePicker_.getSelectedValue() + 'T' + - this.timePicker_.selectedValue; - window.setTimeout(function() { - window.pagePopupController.setValueAndClosePopup(0, selectedValue); - }, 100); - }; - - onCancelButtonClick_ = () => { - window.pagePopupController.closePopup(); - }; - onKeyDown_ = (event) => { switch (event.key) { case 'Enter': - this.submissionControls_.submitButton.click(); + window.pagePopupController.setValueAndClosePopup(0, this.selectedValue); break; case 'Escape': - this.submissionControls_.cancelButton.click(); + if (this.selectedValue === this.initialSelectedValue_) { + window.pagePopupController.closePopup(); + } else { + this.datePicker_.resetToInitialValue(); + this.timePicker_.resetToInitialValue(); + window.pagePopupController.setValue( + this.hadValidValueWhenOpened_ ? this.initialSelectedValue_ : ''); + } break; + case 'ArrowUp': + case 'ArrowDown': + if (this.hasSelectedDate) { + window.pagePopupController.setValue(this.selectedValue); + } + break; + } + }; + + onClick_ = (event) => { + if (this.hasSelectedDate) { + window.pagePopupController.setValue(this.selectedValue); } }; @@ -69,6 +77,19 @@ this.datePicker_.calendarTableView.element.focus(); }; + // This will be false if neither the initial value of the + // control nor today's date are within a valid date range defined + // by the 'step', 'min', and 'max' attributes of the control. + get hasSelectedDate() { + return (this.datePicker_.selection() != null); + } + + get selectedValue() { + return this.hasSelectedDate ? (this.datePicker_.getSelectedValue() + 'T' + + this.timePicker_.selectedValue) : + ''; + } + get height() { return DateTimeLocalPicker.Height; } @@ -77,10 +98,6 @@ return this.datePicker_.width() + this.timePicker_.width; } - get submissionControls() { - return this.submissionControls_; - } - get datePicker() { return this.datePicker_; } @@ -90,5 +107,5 @@ } } DateTimeLocalPicker.ClassName = 'datetimelocal-picker'; -DateTimeLocalPicker.Height = 320; +DateTimeLocalPicker.Height = 280; window.customElements.define('datetimelocal-picker', DateTimeLocalPicker);
diff --git a/third_party/blink/renderer/core/html/forms/resources/time_picker.css b/third_party/blink/renderer/core/html/forms/resources/time_picker.css index cc2c67a..6384a08 100644 --- a/third_party/blink/renderer/core/html/forms/resources/time_picker.css +++ b/third_party/blink/renderer/core/html/forms/resources/time_picker.css
@@ -12,7 +12,7 @@ border: 1px solid transparent; display: flex; flex-direction: column; - height: 298px; + height: 260px; } .time-columns { @@ -65,41 +65,6 @@ border-color: #101010; } -.submission-controls { - align-items: center; - border-top: 1px solid #CECECE; - bottom: 0px; - display: flex; - flex-direction: row; - height: 40px; - position: absolute; - width: 100%; -} - -#submission-controls-padding { - height: 100%; - width: 84%; -} - -.submission-button { - background-color: #FFFFFF; - border: 2px solid transparent; - border-radius: 2px; - height: 32px; - margin: 4px; - padding: 8px; - width: 32px; -} - -.submission-button:hover { - background-color: rgba(0, 117, 255, 0.3); -} - -.submission-button:focus { - border-color: #101010; - outline: none; -} - @media (forced-colors: active) { .time-cell { background-color: Window; @@ -120,22 +85,4 @@ .time-column:focus .time-cell.selected { border-color: WindowText; } - - .submission-button { - background-color: Window; - forced-color-adjust: none; - } - - .submission-button:hover { - background-color: Window; - border-color: Highlight; - } - - .submission-button:focus { - border-color: WindowText; - } - - .submission-button path { - fill: WindowText; - } }
diff --git a/third_party/blink/renderer/core/html/forms/resources/time_picker.js b/third_party/blink/renderer/core/html/forms/resources/time_picker.js index 8959e6b..c6d3223 100644 --- a/third_party/blink/renderer/core/html/forms/resources/time_picker.js +++ b/third_party/blink/renderer/core/html/forms/resources/time_picker.js
@@ -210,9 +210,6 @@ /** * TimePicker: Custom element providing a time picker implementation. - * TimePicker contains 2 parts: - * - column container - * - submission controls */ class TimePicker extends HTMLElement { constructor(config) { @@ -226,10 +223,8 @@ if (config.mode == 'time') { // TimePicker doesn't handle the submission when used for non-time types. - this.submissionControls_ = new SubmissionControls( - this.onSubmitButtonClick_, this.onCancelButtonClick_); - this.append(this.submissionControls_); this.addEventListener('keydown', this.onKeyDown_); + this.addEventListener('click', this.onClick_); } window.addEventListener('resize', this.onWindowResize_, {once: true}); @@ -237,24 +232,14 @@ initializeFromConfig_ = (config) => { const initialSelection = parseDateTimeString(config.currentValue, 'time'); - this.selectedTime_ = + this.initialSelectedTime_ = initialSelection ? initialSelection : Time.currentTime(); + this.hadValidValueWhenOpened_ = (initialSelection != null); this.hasSecond_ = config.hasSecond; this.hasMillisecond_ = config.hasMillisecond; this.hasAMPM_ = config.hasAMPM; }; - onSubmitButtonClick_ = () => { - const selectedValue = this.selectedValue; - window.setTimeout(function() { - window.pagePopupController.setValueAndClosePopup(0, selectedValue); - }, 100); - }; - - onCancelButtonClick_ = () => { - window.pagePopupController.closePopup(); - }; - onWindowResize_ = (event) => { // Scroll columns to the second half to allow scrolling up. this.timeColumns_.scrollColumnsToMiddle(); @@ -264,21 +249,48 @@ onKeyDown_ = (event) => { switch (event.key) { case 'Enter': - this.submissionControls_.submitButton.click(); + window.pagePopupController.setValueAndClosePopup(0, this.selectedValue); break; case 'Escape': - this.submissionControls_.cancelButton.click(); + if (this.selectedValue === + this.initialSelectedTime.toString( + this.hasSecond, this.hasMillisecond)) { + window.pagePopupController.closePopup(); + } else { + this.resetToInitialValue(); + window.pagePopupController.setValue( + this.hadValidValueWhenOpened ? this.selectedValue : ''); + } + break; + case 'ArrowUp': + case 'ArrowDown': + window.pagePopupController.setValue(this.selectedValue); + event.stopPropagation(); + event.preventDefault(); break; } }; + onClick_ = (event) => { + window.pagePopupController.setValue(this.selectedValue); + }; + + resetToInitialValue = () => { + this.timeColumns_.resetToInitialValues(); + this.timeColumns_.scrollColumnsToMiddle(); + } + get selectedValue() { return this.timeColumns_.selectedValue().toString( this.hasSecond, this.hasMillisecond); } - get selectedTime() { - return this.selectedTime_; + get initialSelectedTime() { + return this.initialSelectedTime_; + } + + get hadValidValueWhenOpened() { + return this.hadValidValueWhenOpened_; } get hasSecond() { @@ -304,13 +316,9 @@ get timeColumns() { return this.timeColumns_; } - - get submissionControls() { - return this.submissionControls_; - } } TimePicker.ClassName = 'time-picker'; -TimePicker.Height = 300; +TimePicker.Height = 260; TimePicker.ColumnWidth = 56; TimePicker.BorderWidth = 1; window.customElements.define('time-picker', TimePicker); @@ -379,6 +387,13 @@ return new Time(hour, minute, second, millisecond); }; + resetToInitialValues = + () => { + Array.prototype.forEach.call(this.children, (column) => { + column.resetToInitialValue(); + }); + } + scrollColumnsToMiddle = () => { this.hourColumn_.scrollTop = this.hourColumn_.scrollHeight / 2; this.minuteColumn_.scrollTop = this.minuteColumn_.scrollHeight / 2; @@ -417,7 +432,7 @@ createAndInitializeCells_ = (timePicker) => { const totalCells = Time.numberOfValues(this.columnType_, timePicker.hasAMPM); - let currentTime = timePicker.selectedTime.clone(); + let currentTime = timePicker.initialSelectedTime.clone(); let cells = []; let duplicateCells = []; // In order to support a continuous looping navigation for up/down arrows, @@ -444,7 +459,7 @@ cells.push(timeCell); } - if (timePicker.selectedTime.isAM()) { + if (timePicker.initialSelectedTime.isAM()) { this.append(cells[Label.AM], cells[Label.PM]); this.selectedTimeCell = cells[Label.AM]; } else { @@ -465,7 +480,6 @@ * which has no next, we are moving to the first cell from the duplicated list */ onKeyDown_ = (event) => { - let eventHandled = false; switch (event.key) { case 'ArrowUp': const previousTimeCell = this.selectedTimeCell.previousSibling; @@ -478,7 +492,6 @@ this.selectedTimeCell = this.middleTimeCell.previousSibling; this.selectedTimeCell.scrollIntoView(); } - eventHandled = true; break; case 'ArrowDown': const nextTimeCell = this.selectedTimeCell.nextSibling; @@ -491,7 +504,6 @@ this.selectedTimeCell = this.middleTimeCell; this.selectedTimeCell.scrollIntoView(false); } - eventHandled = true; break; case 'ArrowLeft': const previousTimeColumn = this.previousSibling; @@ -506,11 +518,6 @@ } break; } - - if (eventHandled) { - event.stopPropagation(); - event.preventDefault(); - } }; get selectedTimeCell() { @@ -525,6 +532,14 @@ this.selectedTimeCell_.classList.add('selected'); } + resetToInitialValue = () => { + if (this.columnType_ == TimeColumnType.AMPM) { + this.selectedTimeCell = this.firstChild; + } else { + this.selectedTimeCell = this.middleTimeCell; + } + }; + get middleTimeCell() { return this.middleTimeCell_; } @@ -550,61 +565,3 @@ } TimeCell.ClassName = 'time-cell'; window.customElements.define('time-cell', TimeCell, {extends: 'li'}); - -/** - * SubmissionControls: Provides functionality to submit or discard a change. - */ -class SubmissionControls extends HTMLElement { - constructor(submitCallback, cancelCallback) { - super(); - - const padding = document.createElement('span'); - padding.setAttribute('id', 'submission-controls-padding'); - this.append(padding); - - this.className = SubmissionControls.ClassName; - - this.submitButton_ = new SubmissionButton( - submitCallback, - '<svg width="14" height="10" viewBox="0 0 14 10" fill="none" ' + - 'xmlns="http://www.w3.org/2000/svg"><path d="M13.3516 ' + - '1.35156L5 9.71094L0.648438 5.35156L1.35156 4.64844L5 ' + - '8.28906L12.6484 0.648438L13.3516 1.35156Z" fill="black"/></svg>'); - this.cancelButton_ = new SubmissionButton( - cancelCallback, - '<svg width="14" height="14" viewBox="0 0 14 14" fill="none" ' + - 'xmlns="http://www.w3.org/2000/svg"><path d="M7.71094 7L13.1016 ' + - '12.3984L12.3984 13.1016L7 7.71094L1.60156 13.1016L0.898438 ' + - '12.3984L6.28906 7L0.898438 1.60156L1.60156 0.898438L7 ' + - '6.28906L12.3984 0.898438L13.1016 1.60156L7.71094 7Z" ' + - 'fill="black"/></svg>'); - this.append(this.submitButton_, this.cancelButton_); - } - - get submitButton() { - return this.submitButton_; - } - - get cancelButton() { - return this.cancelButton_; - } -} -SubmissionControls.ClassName = 'submission-controls'; -window.customElements.define('submission-controls', SubmissionControls); - -/** - * SubmissionButton: Button with a custom look that can be clicked for - * a submission action. - */ -class SubmissionButton extends HTMLButtonElement { - constructor(clickCallback, htmlString) { - super(); - - this.className = SubmissionButton.ClassName; - this.innerHTML = htmlString; - this.addEventListener('click', clickCallback); - } -} -SubmissionButton.ClassName = 'submission-button'; -window.customElements.define( - 'submission-button', SubmissionButton, {extends: 'button'});
diff --git a/third_party/blink/renderer/core/html/forms/text_control_element.h b/third_party/blink/renderer/core/html/forms/text_control_element.h index 47c266d0..fbee0ac 100644 --- a/third_party/blink/renderer/core/html/forms/text_control_element.h +++ b/third_party/blink/renderer/core/html/forms/text_control_element.h
@@ -45,6 +45,7 @@ enum class TextFieldEventBehavior { kDispatchNoEvent, kDispatchChangeEvent, + kDispatchInputEvent, kDispatchInputAndChangeEvent };
diff --git a/third_party/blink/renderer/core/html/forms/text_field_input_type.cc b/third_party/blink/renderer/core/html/forms/text_field_input_type.cc index 5953d45..43a626f 100644 --- a/third_party/blink/renderer/core/html/forms/text_field_input_type.cc +++ b/third_party/blink/renderer/core/html/forms/text_field_input_type.cc
@@ -177,11 +177,14 @@ GetElement().DispatchFormControlChangeEvent(); break; - case TextFieldEventBehavior::kDispatchInputAndChangeEvent: { + case TextFieldEventBehavior::kDispatchInputEvent: + GetElement().DispatchInputEvent(); + break; + + case TextFieldEventBehavior::kDispatchInputAndChangeEvent: GetElement().DispatchInputEvent(); GetElement().DispatchFormControlChangeEvent(); break; - } case TextFieldEventBehavior::kDispatchNoEvent: break;
diff --git a/third_party/blink/renderer/core/html/html_marquee_element.cc b/third_party/blink/renderer/core/html/html_marquee_element.cc index 2de092a..1d765c59 100644 --- a/third_party/blink/renderer/core/html/html_marquee_element.cc +++ b/third_party/blink/renderer/core/html/html_marquee_element.cc
@@ -25,10 +25,10 @@ #include <cstdlib> #include "third_party/blink/renderer/bindings/core/v8/v8_html_marquee_element.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_keyframe_effect_options.h" #include "third_party/blink/renderer/core/animation/document_timeline.h" #include "third_party/blink/renderer/core/animation/keyframe_effect.h" #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h" -#include "third_party/blink/renderer/core/animation/keyframe_effect_options.h" #include "third_party/blink/renderer/core/animation/optional_effect_timing.h" #include "third_party/blink/renderer/core/animation/string_keyframe.h" #include "third_party/blink/renderer/core/animation/timing_input.h"
diff --git a/third_party/blink/renderer/core/html/html_view_source_document.cc b/third_party/blink/renderer/core/html/html_view_source_document.cc index 1cf2992..c737b7b 100644 --- a/third_party/blink/renderer/core/html/html_view_source_document.cc +++ b/third_party/blink/renderer/core/html/html_view_source_document.cc
@@ -42,9 +42,9 @@ namespace blink { -HTMLViewSourceDocument::HTMLViewSourceDocument(const DocumentInit& initializer, - const String& mime_type) - : HTMLDocument(initializer, kViewSourceDocumentClass), type_(mime_type) { +HTMLViewSourceDocument::HTMLViewSourceDocument(const DocumentInit& initializer) + : HTMLDocument(initializer, kViewSourceDocumentClass), + type_(initializer.GetMimeType()) { SetIsViewSource(true); // FIXME: Why do view-source pages need to load in quirks mode?
diff --git a/third_party/blink/renderer/core/html/html_view_source_document.h b/third_party/blink/renderer/core/html/html_view_source_document.h index 5d79b2f..87bf8b5 100644 --- a/third_party/blink/renderer/core/html/html_view_source_document.h +++ b/third_party/blink/renderer/core/html/html_view_source_document.h
@@ -36,7 +36,7 @@ class CORE_EXPORT HTMLViewSourceDocument final : public HTMLDocument { public: - HTMLViewSourceDocument(const DocumentInit&, const String& mime_type); + HTMLViewSourceDocument(const DocumentInit&); void AddSource(const String&, HTMLToken&);
diff --git a/third_party/blink/renderer/core/html/image_document_test.cc b/third_party/blink/renderer/core/html/image_document_test.cc index 4e41609..0faa1a5c 100644 --- a/third_party/blink/renderer/core/html/image_document_test.cc +++ b/third_party/blink/renderer/core/html/image_document_test.cc
@@ -110,9 +110,11 @@ LocalFrame& frame = dummy_page_holder_->GetFrame(); frame.GetDocument()->Shutdown(); - DocumentInit init = DocumentInit::Create().WithDocumentLoader( - frame.Loader().GetDocumentLoader()); - frame.DomWindow()->InstallNewDocument("image/jpeg", init, false); + DocumentInit init = + DocumentInit::Create() + .WithDocumentLoader(frame.Loader().GetDocumentLoader()) + .WithTypeFrom("image/jpeg"); + frame.DomWindow()->InstallNewDocument(init, false); frame.GetDocument()->SetURL(KURL("http://www.example.com/image.jpg")); }
diff --git a/third_party/blink/renderer/core/html/parser/html_view_source_parser_test.cc b/third_party/blink/renderer/core/html/parser/html_view_source_parser_test.cc index 2e98f7e..3bd2151 100644 --- a/third_party/blink/renderer/core/html/parser/html_view_source_parser_test.cc +++ b/third_party/blink/renderer/core/html/parser/html_view_source_parser_test.cc
@@ -17,7 +17,7 @@ TEST(HTMLViewSourceParserTest, DetachThenFinish_ShouldNotCrash) { String mime_type("text/html"); auto* document = MakeGarbageCollected<HTMLViewSourceDocument>( - DocumentInit::Create(), mime_type); + DocumentInit::Create().WithTypeFrom(mime_type)); auto* parser = MakeGarbageCollected<HTMLViewSourceParser>(*document, mime_type); // A client may detach the parser from the document.
diff --git a/third_party/blink/renderer/core/html/plugin_document.cc b/third_party/blink/renderer/core/html/plugin_document.cc index e223d52..00456d7 100644 --- a/third_party/blink/renderer/core/html/plugin_document.cc +++ b/third_party/blink/renderer/core/html/plugin_document.cc
@@ -180,10 +180,9 @@ return To<PluginDocument>(GetDocument())->GetPluginView(); } -PluginDocument::PluginDocument(const DocumentInit& initializer, - Color background_color) +PluginDocument::PluginDocument(const DocumentInit& initializer) : HTMLDocument(initializer, kPluginDocumentClass), - background_color_(background_color) { + background_color_(initializer.GetPluginBackgroundColor()) { SetCompatibilityMode(kQuirksMode); LockCompatibilityMode(); if (GetScheduler()) {
diff --git a/third_party/blink/renderer/core/html/plugin_document.h b/third_party/blink/renderer/core/html/plugin_document.h index c37db67..d2faa0e3 100644 --- a/third_party/blink/renderer/core/html/plugin_document.h +++ b/third_party/blink/renderer/core/html/plugin_document.h
@@ -36,7 +36,7 @@ class CORE_EXPORT PluginDocument final : public HTMLDocument { public: - PluginDocument(const DocumentInit&, Color background_color); + PluginDocument(const DocumentInit&); void SetPluginNode(HTMLPlugInElement* plugin_node) { plugin_node_ = plugin_node;
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc index 86d95475..f515fcc4 100644 --- a/third_party/blink/renderer/core/input/event_handler.cc +++ b/third_party/blink/renderer/core/input/event_handler.cc
@@ -843,9 +843,12 @@ mouse_event_manager_->SetCapturesDragging(false); } - // Scrollbars should get events anyway, even disabled controls might be - // scrollable. - if (PassMousePressEventToScrollbar(mev)) + // If the scrollbar manipulation was already handled on the compositor thread, + // don't pass on the event to the scrollbar. + if (mouse_event.GetModifiers() & + WebInputEvent::Modifiers:: + kScrollbarManipulationHandledOnCompositorThread || + PassMousePressEventToScrollbar(mev)) event_result = WebInputEventResult::kHandledSystem; if (event_result == WebInputEventResult::kNotHandled) {
diff --git a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.cc b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.cc index 8b12bc7..7f71bd1 100644 --- a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.cc +++ b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.cc
@@ -7,7 +7,6 @@ #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h" #include "third_party/blink/renderer/core/layout/ng/custom/custom_intrinsic_sizes.h" #include "third_party/blink/renderer/core/layout/ng/custom/custom_layout_child.h" -#include "third_party/blink/renderer/core/layout/ng/custom/custom_layout_constraints_options.h" #include "third_party/blink/renderer/core/layout/ng/custom/custom_layout_fragment.h" #include "third_party/blink/renderer/core/layout/ng/ng_block_node.h" #include "third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h"
diff --git a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h index 853177d..7aacc7f 100644 --- a/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h +++ b/third_party/blink/renderer/core/layout/ng/custom/custom_layout_work_task.h
@@ -5,7 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_CUSTOM_CUSTOM_LAYOUT_WORK_TASK_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_CUSTOM_CUSTOM_LAYOUT_WORK_TASK_H_ -#include "third_party/blink/renderer/core/layout/ng/custom/custom_layout_constraints_options.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_custom_layout_constraints_options.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc index ee04d1c..d917ed4b 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc
@@ -451,7 +451,7 @@ NGInlineCursor cursor = SetupCursor("<ul><li id=root>abc</li></ul>"); Vector<String> list = ToDebugStringList(cursor); EXPECT_THAT(list, - ElementsAre("LayoutNGListMarker (anonymous)", "#linebox", "abc")); + ElementsAre("LayoutNGListMarker ::marker", "#linebox", "abc")); } TEST_P(NGInlineCursorTest, NextWithSoftHyphens) {
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.cc b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.cc index 5cdeb8d..626ba03e2 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.cc +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.cc
@@ -5,20 +5,12 @@ #include "third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h" #include "third_party/blink/renderer/core/layout/layout_text.h" -#include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h" namespace blink { LayoutNGInsideListMarker::LayoutNGInsideListMarker(Element* element) : LayoutInline(element) {} -LayoutNGInsideListMarker* LayoutNGInsideListMarker::CreateAnonymous( - Document* document) { - LayoutNGInsideListMarker* object = new LayoutNGInsideListMarker(nullptr); - object->SetDocumentForAnonymous(document); - return object; -} - bool LayoutNGInsideListMarker::IsOfType(LayoutObjectType type) const { return type == kLayoutObjectNGInsideListMarker || LayoutInline::IsOfType(type);
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h index 0ce5f75..826079b6 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
@@ -10,20 +10,17 @@ namespace blink { -class Document; - // A LayoutObject subclass for inside-positioned list markers in LayoutNG. class CORE_EXPORT LayoutNGInsideListMarker final : public LayoutInline { public: explicit LayoutNGInsideListMarker(Element*); - static LayoutNGInsideListMarker* CreateAnonymous(Document*); const char* GetName() const override { return "LayoutNGInsideListMarker"; } #if DCHECK_IS_ON() void AddChild(LayoutObject* new_child, LayoutObject* before_child) override { - // Anonymous list marker should have at most one child. - DCHECK(GetNode() || !FirstChild()); + // List markers with 'content: normal' should have at most one child. + DCHECK(StyleRef().GetContentData() || !FirstChild()); LayoutInline::AddChild(new_child, before_child); } #endif
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc index e45c6a2..db7b5f4b 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc
@@ -8,7 +8,6 @@ #include "third_party/blink/renderer/core/layout/layout_inline.h" #include "third_party/blink/renderer/core/layout/layout_list_marker.h" #include "third_party/blink/renderer/core/layout/list_marker_text.h" -#include "third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h" #include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h" #include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" @@ -29,12 +28,6 @@ return type == kLayoutObjectNGListItem || LayoutNGBlockFlow::IsOfType(type); } -void LayoutNGListItem::WillBeDestroyed() { - DestroyMarker(); - - LayoutNGBlockFlow::WillBeDestroyed(); -} - void LayoutNGListItem::InsertedIntoTree() { LayoutNGBlockFlow::InsertedIntoTree(); @@ -51,7 +44,8 @@ const ComputedStyle* old_style) { LayoutNGBlockFlow::StyleDidChange(diff, old_style); - UpdateMarker(); + if (Marker()) + UpdateMarkerContentIfNeeded(); if (old_style && (old_style->ListStyleType() != StyleRef().ListStyleType() || (StyleRef().ListStyleType() == EListStyleType::kString && @@ -67,8 +61,8 @@ return; is_marker_text_updated_ = false; - if (marker_) { - marker_->SetNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation( + if (LayoutObject* marker = Marker()) { + marker->SetNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation( layout_invalidation_reason::kListStyleTypeChange); } } @@ -77,23 +71,27 @@ if (marker_type_ == kOrdinalValue && is_marker_text_updated_) { is_marker_text_updated_ = false; - // |marker_| can be a nullptr, for example, in the case of :after list item - // elements. - if (marker_) { - marker_->SetNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation( + // |Marker()| can be a nullptr, for example, in the case of ::after list + // item elements. + if (LayoutObject* marker = Marker()) { + marker->SetNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation( layout_invalidation_reason::kListValueChange); } } } void LayoutNGListItem::SubtreeDidChange() { - if (!marker_) + LayoutObject* marker = Marker(); + if (!marker) return; - // Make sure outside marker is the direct child of ListItem. - if (!IsInside() && marker_->Parent() != this) { - marker_->Remove(); - AddChild(marker_, FirstChild()); + // Make sure an outside marker is a direct child of the list item (not nested + // inside an anonymous box), and that a marker originated by a ::before or + // ::after precedes the generated contents. + if ((!IsInside() && marker->Parent() != this) || + (IsPseudoElement() && marker != FirstChild())) { + marker->Remove(); + AddChild(marker, FirstChild()); } UpdateMarkerContentIfNeeded(); @@ -110,14 +108,6 @@ (IsA<HTMLLIElement>(GetNode()) && !StyleRef().IsInsideListElement()); } -// Destroy the list marker objects if exists. -void LayoutNGListItem::DestroyMarker() { - if (marker_) { - marker_->Destroy(); - marker_ = nullptr; - } -} - void LayoutNGListItem::UpdateMarkerText(LayoutText* text) { DCHECK(text); StringBuilder marker_text_builder; @@ -127,78 +117,23 @@ } void LayoutNGListItem::UpdateMarkerText() { - DCHECK(marker_); - UpdateMarkerText(ToLayoutText(marker_->SlowFirstChild())); -} - -void LayoutNGListItem::UpdateMarker() { - const ComputedStyle& style = StyleRef(); - if (style.ListStyleType() == EListStyleType::kNone && !IsMarkerImage()) { - DestroyMarker(); - marker_type_ = kStatic; - is_marker_text_updated_ = true; - return; - } - - // Create a marker box if it does not exist yet. - Element* list_item = To<Element>(GetNode()); - const ComputedStyle* cached_marker_style = - list_item->CachedStyleForPseudoElement(kPseudoIdMarker); - if (cached_marker_style && cached_marker_style->GetContentData()) { - // Don't create an anonymous layout for the marker, it will be generated - // by the ::marker pseudo-element. - DestroyMarker(); - marker_type_ = kStatic; - is_marker_text_updated_ = true; - return; - } - if (IsInside()) { - if (marker_ && !marker_->IsLayoutInline()) - DestroyMarker(); - if (!marker_) - marker_ = LayoutNGInsideListMarker::CreateAnonymous(&GetDocument()); - } else { - if (marker_ && !marker_->IsLayoutBlockFlow()) - DestroyMarker(); - if (!marker_) - marker_ = LayoutNGListMarker::CreateAnonymous(&GetDocument()); - } - if (cached_marker_style) - marker_->SetStyle(cached_marker_style); - else - marker_->SetStyle(list_item->StyleForPseudoElement(kPseudoIdMarker)); - - UpdateMarkerContentIfNeeded(); - - LayoutObject* first_child = FirstChild(); - if (first_child != marker_) { - marker_->Remove(); - AddChild(marker_, FirstChild()); - } + DCHECK(Marker()); + UpdateMarkerText(ToLayoutText(Marker()->SlowFirstChild())); } LayoutNGListItem* LayoutNGListItem::FromMarker(const LayoutObject& marker) { DCHECK(marker.IsLayoutNGListMarkerIncludingInside()); - for (LayoutObject* parent = marker.Parent(); parent; - parent = parent->Parent()) { - if (parent->IsLayoutNGListItem()) { -#if DCHECK_IS_ON() - LayoutObject* parent_marker = ToLayoutNGListItem(parent)->Marker(); - if (parent_marker) { - DCHECK(!marker.GetNode()); - DCHECK_EQ(ToLayoutNGListItem(parent)->Marker(), &marker); - } else { - DCHECK(marker.GetNode()->IsMarkerPseudoElement()); - DCHECK_EQ(marker.GetNode()->parentElement()->GetLayoutBox(), parent); - } -#endif - return ToLayoutNGListItem(parent); - } - // These DCHECKs are not critical but to ensure we cover all cases we know. - DCHECK(parent->IsAnonymous()); - DCHECK(parent->IsLayoutBlockFlow() || parent->IsLayoutFlowThread()); + DCHECK(marker.GetNode()); + DCHECK(marker.GetNode()->IsMarkerPseudoElement()); + DCHECK(marker.GetNode()->parentNode()); + DCHECK(marker.GetNode()->parentNode()->GetLayoutObject()); + LayoutObject* parent = marker.GetNode()->parentNode()->GetLayoutObject(); + if (!parent->IsLayoutNGListItem()) { + // Shouldn't have generated the marker + NOTREACHED(); + return nullptr; } - return nullptr; + return ToLayoutNGListItem(parent); } LayoutNGListItem* LayoutNGListItem::FromMarkerOrMarkerContent( @@ -333,12 +268,16 @@ } void LayoutNGListItem::UpdateMarkerContentIfNeeded() { - DCHECK(marker_); + LayoutObject* marker = Marker(); + DCHECK(marker); - LayoutObject* child = marker_->SlowFirstChild(); + LayoutObject* child = marker->SlowFirstChild(); // There should be at most one child. DCHECK(!child || !child->SlowFirstChild()); - if (IsMarkerImage()) { + if (marker->StyleRef().GetContentData()) { + marker_type_ = kStatic; + is_marker_text_updated_ = true; + } else if (IsMarkerImage()) { StyleImage* list_style_image = StyleRef().ListStyleImage(); if (child) { // If the url of `list-style-image` changed, create a new LayoutImage. @@ -353,15 +292,18 @@ LayoutNGListMarkerImage* image = LayoutNGListMarkerImage::CreateAnonymous(&GetDocument()); scoped_refptr<ComputedStyle> image_style = - ComputedStyle::CreateAnonymousStyleWithDisplay(marker_->StyleRef(), + ComputedStyle::CreateAnonymousStyleWithDisplay(marker->StyleRef(), EDisplay::kInline); image->SetStyle(image_style); image->SetImageResource( MakeGarbageCollected<LayoutImageResourceStyleImage>( list_style_image)); image->SetIsGeneratedContent(); - marker_->AddChild(image); + marker->AddChild(image); } + } else if (StyleRef().ListStyleType() == EListStyleType::kNone) { + marker_type_ = kStatic; + is_marker_text_updated_ = true; } else { // Create a LayoutText in it. LayoutText* text = nullptr; @@ -370,7 +312,7 @@ // full layout due by style difference. See http://crbug.com/980399 scoped_refptr<ComputedStyle> text_style = ComputedStyle::CreateAnonymousStyleWithDisplay( - marker_->StyleRef(), marker_->StyleRef().Display()); + marker->StyleRef(), marker->StyleRef().Display()); if (child) { if (child->IsText()) { text = ToLayoutText(child); @@ -383,7 +325,7 @@ if (!child) { text = LayoutText::CreateEmptyAnonymous(GetDocument(), text_style, LegacyLayout::kAuto); - marker_->AddChild(text); + marker->AddChild(text); is_marker_text_updated_ = false; } } @@ -392,8 +334,8 @@ LayoutObject* LayoutNGListItem::SymbolMarkerLayoutText() const { if (marker_type_ != kSymbolValue) return nullptr; - DCHECK(marker_); - return marker_->SlowFirstChild(); + DCHECK(Marker()); + return Marker()->SlowFirstChild(); } const LayoutObject* LayoutNGListItem::FindSymbolMarkerLayoutText(
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h index eadcf335..489ccb9 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h
@@ -6,6 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_LAYOUT_NG_LIST_ITEM_H_ #include "third_party/blink/renderer/core/core_export.h" +#include "third_party/blink/renderer/core/dom/pseudo_element.h" #include "third_party/blink/renderer/core/html/list_item_ordinal.h" #include "third_party/blink/renderer/core/layout/ng/layout_ng_block_flow.h" @@ -25,11 +26,16 @@ // Marker text with suffix, e.g. "1. ", for use in accessibility. static String TextAlternative(const LayoutObject& marker); - LayoutObject* Marker() const { return marker_; } + LayoutObject* Marker() const { + Element* list_item = To<Element>(GetNode()); + if (PseudoElement* marker = list_item->GetPseudoElement(kPseudoIdMarker)) + return marker->GetLayoutObject(); + return nullptr; + } bool IsMarkerImage() const { return StyleRef().GeneratesMarkerImage(); } void UpdateMarkerTextIfNeeded() { - if (marker_ && !is_marker_text_updated_ && !IsMarkerImage()) + if (Marker() && !is_marker_text_updated_ && !IsMarkerImage()) UpdateMarkerText(); } void UpdateMarkerContentIfNeeded(); @@ -49,7 +55,6 @@ private: bool IsOfType(LayoutObjectType) const override; - void WillBeDestroyed() override; void InsertedIntoTree() override; void WillBeRemovedFromTree() override; void StyleDidChange(StyleDifference, const ComputedStyle* old_style) override; @@ -62,13 +67,10 @@ MarkerType MarkerText(StringBuilder*, MarkerTextFormat) const; void UpdateMarkerText(); void UpdateMarkerText(LayoutText*); - void UpdateMarker(); - void DestroyMarker(); void ListStyleTypeChanged(); ListItemOrdinal ordinal_; - LayoutObject* marker_ = nullptr; unsigned marker_type_ : 2; // MarkerType unsigned is_marker_text_updated_ : 1;
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.cc b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.cc index a477149..62632da7 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.cc +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.cc
@@ -12,12 +12,6 @@ LayoutNGListMarker::LayoutNGListMarker(Element* element) : LayoutNGBlockFlowMixin<LayoutBlockFlow>(element) {} -LayoutNGListMarker* LayoutNGListMarker::CreateAnonymous(Document* document) { - LayoutNGListMarker* object = new LayoutNGListMarker(nullptr); - object->SetDocumentForAnonymous(document); - return object; -} - bool LayoutNGListMarker::IsOfType(LayoutObjectType type) const { return type == kLayoutObjectNGListMarker || LayoutNGMixin<LayoutBlockFlow>::IsOfType(type);
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h index d317122..485cba6 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h
@@ -11,14 +11,11 @@ namespace blink { -class Document; - // A LayoutObject subclass for outside-positioned list markers in LayoutNG. class CORE_EXPORT LayoutNGListMarker final : public LayoutNGBlockFlowMixin<LayoutBlockFlow> { public: explicit LayoutNGListMarker(Element*); - static LayoutNGListMarker* CreateAnonymous(Document*); void WillCollectInlines() override;
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.cc b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.cc index 65a6f55..03dd581ea 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.cc +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.cc
@@ -3,7 +3,9 @@ // found in the LICENSE file. #include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker_image.h" + #include "third_party/blink/renderer/core/layout/intrinsic_sizing_info.h" +#include "third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h" #include "third_party/blink/renderer/core/svg/graphics/svg_image.h" namespace blink { @@ -25,16 +27,13 @@ Node* LayoutNGListMarkerImage::NodeForHitTest() const { // In LayoutNG tree, image list marker is structured like this: // <li> (LayoutListItem) - // <anonymous block> (LayoutNGListMarker or LayoutNGInsideListMarker) + // ::marker (LayoutNGListMarker or LayoutNGInsideListMarker) // <anonymous img> (LayoutNGListMarkerImage) // Hit testing should return the list-item node. DCHECK(!GetNode()); - for (const LayoutObject* parent = Parent(); parent; - parent = parent->Parent()) { - if (Node* node = parent->GetNode()) - return node; - } - return nullptr; + const LayoutNGListItem* list_item = + LayoutNGListItem::FromMarkerOrMarkerContent(*this); + return list_item ? list_item->GetNode() : nullptr; } // Because ImageResource() is always LayoutImageResourceStyleImage. So we could
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index 8e575c7..aa7640b1 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -1467,6 +1467,7 @@ DocumentInit::Create() .WithDocumentLoader(this) .WithURL(url) + .WithTypeFrom(mime_type) .WithOwnerDocument(owner_document) .WithInitiatorOrigin(initiator_origin) .WithOriginToCommit(origin_to_commit_) @@ -1520,8 +1521,7 @@ if (!loading_url_as_javascript_) WillCommitNavigation(); - Document* document = - frame_->DomWindow()->InstallNewDocument(mime_type, init, false); + Document* document = frame_->DomWindow()->InstallNewDocument(init, false); // Clear the user activation state. // TODO(crbug.com/736415): Clear this bit unconditionally for all frames.
diff --git a/third_party/blink/renderer/core/mojo/mojo.cc b/third_party/blink/renderer/core/mojo/mojo.cc index 50a2e1b78..7031c214 100644 --- a/third_party/blink/renderer/core/mojo/mojo.cc +++ b/third_party/blink/renderer/core/mojo/mojo.cc
@@ -11,10 +11,10 @@ #include "services/service_manager/public/cpp/interface_provider.h" #include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_mojo_create_data_pipe_options.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame_client.h" -#include "third_party/blink/renderer/core/mojo/mojo_create_data_pipe_options.h" #include "third_party/blink/renderer/core/mojo/mojo_create_data_pipe_result.h" #include "third_party/blink/renderer/core/mojo/mojo_create_message_pipe_result.h" #include "third_party/blink/renderer/core/mojo/mojo_create_shared_buffer_result.h"
diff --git a/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc b/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc index 6e62802..e86f795 100644 --- a/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc +++ b/third_party/blink/renderer/core/paint/text_paint_timing_detector_test.cc
@@ -240,6 +240,23 @@ Persistent<MockPaintTimingCallbackManager> child_frame_mock_callback_manager_; }; +// Helper class to run the same test code with and without LayoutNG +class ParameterizedTextPaintTimingDetectorTest + : public ::testing::WithParamInterface<bool>, + private ScopedLayoutNGForTest, + public TextPaintTimingDetectorTest { + public: + ParameterizedTextPaintTimingDetectorTest() + : ScopedLayoutNGForTest(GetParam()) {} + + protected: + bool LayoutNGEnabled() const { return GetParam(); } +}; + +INSTANTIATE_TEST_SUITE_P(All, + ParameterizedTextPaintTimingDetectorTest, + testing::Bool()); + TEST_F(TextPaintTimingDetectorTest, LargestTextPaint_NoText) { SetBodyInnerHTML(R"HTML( )HTML"); @@ -622,7 +639,7 @@ DOMNodeIds::ExistingIdForNode(element)); } -TEST_F(TextPaintTimingDetectorTest, CapturingListMarkers) { +TEST_P(ParameterizedTextPaintTimingDetectorTest, CapturingListMarkers) { SetBodyInnerHTML(R"HTML( <ul> <li>List item</li> @@ -633,7 +650,7 @@ )HTML"); UpdateAllLifecyclePhasesAndSimulateSwapTime(); - EXPECT_EQ(CountVisibleTexts(), 2u); + EXPECT_EQ(CountVisibleTexts(), LayoutNGEnabled() ? 3u : 2u); } TEST_F(TextPaintTimingDetectorTest, CaptureSVGText) {
diff --git a/third_party/blink/renderer/core/paint/theme_painter_default.cc b/third_party/blink/renderer/core/paint/theme_painter_default.cc index e0d0904..9da24a1c 100644 --- a/third_party/blink/renderer/core/paint/theme_painter_default.cc +++ b/third_party/blink/renderer/core/paint/theme_painter_default.cc
@@ -234,6 +234,8 @@ Color background_color = style.VisitedDependentColor(GetCSSPropertyBackgroundColor()); extra_params.text_field.background_color = background_color.Rgb(); + extra_params.text_field.auto_complete_active = + DynamicTo<HTMLFormControlElement>(node)->IsAutofilled(); Platform::Current()->ThemeEngine()->Paint( canvas, WebThemeEngine::kPartTextField, GetWebThemeState(node),
diff --git a/third_party/blink/renderer/core/script/BUILD.gn b/third_party/blink/renderer/core/script/BUILD.gn index c4d1640..494cfc46 100644 --- a/third_party/blink/renderer/core/script/BUILD.gn +++ b/third_party/blink/renderer/core/script/BUILD.gn
@@ -69,9 +69,7 @@ "xml_parser_script_runner_host.h", ] - deps = [ - "//third_party/blink/public:resources", - ] + deps = [ "//third_party/blink/public:resources" ] jumbo_excluded_sources = [ "modulator.cc" ] # https://crbug.com/716395 } @@ -85,14 +83,10 @@ "resources/layered_api/elements/virtual-scroller/visibility-manager.mjs", ] - outputs = [ - "{{source_gen_dir}}/{{source_file_part}}", - ] + outputs = [ "{{source_gen_dir}}/{{source_file_part}}" ] } group("js_files_for_web_tests") { testonly = true - data_deps = [ - ":layered_apis_elements_virtual_scroller_js", - ] + data_deps = [ ":layered_apis_elements_virtual_scroller_js" ] }
diff --git a/third_party/blink/renderer/core/style/computed_style.cc b/third_party/blink/renderer/core/style/computed_style.cc index 4066d9d..7664d482 100644 --- a/third_party/blink/renderer/core/style/computed_style.cc +++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -299,6 +299,10 @@ if (new_style.HasAnyPseudoElementStyles() || old_style.HasAnyPseudoElementStyles()) return Difference::kPseudoElementStyle; + if (old_style.Display() != new_style.Display() && + (new_style.Display() == EDisplay::kListItem || + old_style.Display() == EDisplay::kListItem)) + return Difference::kPseudoElementStyle; return Difference::kNonInherited; }
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h index 92fcc53..6b0eecd 100644 --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -2524,14 +2524,14 @@ InterpolationQuality GetInterpolationQuality() const; bool CanGeneratePseudoElement(PseudoId pseudo) const { - if (!HasPseudoElementStyle(pseudo)) - return false; if (Display() == EDisplay::kNone) return false; if (IsEnsuredInDisplayNone()) return false; if (pseudo == kPseudoIdMarker) return Display() == EDisplay::kListItem; + if (!HasPseudoElementStyle(pseudo)) + return false; if (Display() != EDisplay::kContents) return true; // For display: contents elements, we still need to generate ::before and
diff --git a/third_party/blink/renderer/core/timing/window_performance_test.cc b/third_party/blink/renderer/core/timing/window_performance_test.cc index 4535974..b51cd34f 100644 --- a/third_party/blink/renderer/core/timing/window_performance_test.cc +++ b/third_party/blink/renderer/core/timing/window_performance_test.cc
@@ -148,11 +148,13 @@ EXPECT_TRUE(ObservingLongTasks()); // Simulate navigation commit. - DocumentInit init = DocumentInit::Create().WithDocumentLoader( - GetFrame()->Loader().GetDocumentLoader()); + DocumentInit init = + DocumentInit::Create() + .WithDocumentLoader(GetFrame()->Loader().GetDocumentLoader()) + .WithTypeFrom("text/html"); GetDocument()->Shutdown(); GetFrame()->SetDOMWindow(MakeGarbageCollected<LocalDOMWindow>(*GetFrame())); - GetFrame()->DomWindow()->InstallNewDocument(AtomicString(), init, false); + GetFrame()->DomWindow()->InstallNewDocument(init, false); // m_performance is still alive, and should not crash when notified. SimulateDidProcessLongTask(); @@ -181,8 +183,10 @@ // Simulate changing the document while keeping the window. page_holder->GetDocument().Shutdown(); page_holder->GetFrame().DomWindow()->InstallNewDocument( - AtomicString(), - DocumentInit::Create().WithDocumentLoader(document_loader), false); + DocumentInit::Create() + .WithDocumentLoader(document_loader) + .WithTypeFrom("text/html"), + false); EXPECT_EQ(perf, DOMWindowPerformance::performance( *page_holder->GetFrame().DomWindow()));
diff --git a/third_party/blink/renderer/core/xml/dom_parser.cc b/third_party/blink/renderer/core/xml/dom_parser.cc index 4308d7e..e58361b 100644 --- a/third_party/blink/renderer/core/xml/dom_parser.cc +++ b/third_party/blink/renderer/core/xml/dom_parser.cc
@@ -43,12 +43,11 @@ Document* DOMParser::parseFromStringInternal(const String& str, const String& type) { Document* doc = DOMImplementation::createDocument( - type, DocumentInit::Create() + .WithTypeFrom(type) .WithContextDocument(context_document_) .WithOwnerDocument(context_document_) - .WithContentSecurityPolicyFromContextDoc(), - false); + .WithContentSecurityPolicyFromContextDoc()); doc->SetContent(str); doc->SetMimeType(AtomicString(type)); if (context_document_) {
diff --git a/third_party/blink/renderer/core/xml/xslt_processor.cc b/third_party/blink/renderer/core/xml/xslt_processor.cc index d4864635..59fc8b5 100644 --- a/third_party/blink/renderer/core/xml/xslt_processor.cc +++ b/third_party/blink/renderer/core/xml/xslt_processor.cc
@@ -77,7 +77,8 @@ DocumentInit::Create() .WithDocumentLoader(frame ? frame->Loader().GetDocumentLoader() : nullptr) - .WithURL(url); + .WithURL(url) + .WithTypeFrom(source_mime_type); String document_source = source_string; bool force_xhtml = source_mime_type == "text/plain"; @@ -108,8 +109,7 @@ // Re-create the LocalFrameView if needed. if (has_view) frame->Client()->TransitionToCommittedForNewPage(); - result = frame->DomWindow()->InstallNewDocument(source_mime_type, init, - force_xhtml); + result = frame->DomWindow()->InstallNewDocument(init, force_xhtml); if (old_document) { DocumentXSLT::From(*result).SetTransformSourceDocument(old_document); @@ -120,8 +120,7 @@ result->InitContentSecurityPolicy(csp); } } else { - result = - LocalDOMWindow::CreateDocument(source_mime_type, init, force_xhtml); + result = LocalDOMWindow::CreateDocument(init, force_xhtml); } DocumentEncodingData data;
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc index 5a57d55..0821299 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
@@ -269,13 +269,6 @@ if (layout_object_->IsListMarker()) return ToLayoutListMarker(layout_object_)->ListItem()->GetNode(); - if (layout_object_->IsLayoutNGListMarkerIncludingInside()) { - if (LayoutNGListItem* list_item = - LayoutNGListItem::FromMarker(*layout_object_)) - return list_item->GetNode(); - return nullptr; - } - if (layout_object_->IsAnonymous() && layout_object_->ContainingBlock()) { return layout_object_->ContainingBlock()->GetNode(); } @@ -3078,15 +3071,7 @@ void AXLayoutObject::AddListMarker() { if (!CanHaveChildren() || !GetLayoutObject() || AccessibilityIsIgnored() || - !GetLayoutObject()->IsListItemIncludingNG()) { - return; - } - if (GetLayoutObject()->IsLayoutNGListItem()) { - LayoutNGListItem* list_item = ToLayoutNGListItem(GetLayoutObject()); - LayoutObject* list_marker = list_item->Marker(); - AXObject* list_marker_obj = AXObjectCache().GetOrCreate(list_marker); - if (list_marker_obj) - children_.push_back(list_marker_obj); + !GetLayoutObject()->IsListItem()) { return; } LayoutListItem* list_item = ToLayoutListItem(GetLayoutObject());
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc index 37a2263..d980f6c 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -2632,6 +2632,8 @@ for (Node* child = LayoutTreeBuilderTraversal::FirstChild(*node_); child; child = LayoutTreeBuilderTraversal::NextSibling(*child)) { + if (child->IsMarkerPseudoElement() && AccessibilityIsIgnored()) + continue; AXObject* child_obj = AXObjectCache().GetOrCreate(child); if (child_obj && !AXObjectCache().IsAriaOwned(child_obj)) AddChild(child_obj);
diff --git a/third_party/blink/renderer/modules/accessibility/ax_position.cc b/third_party/blink/renderer/modules/accessibility/ax_position.cc index 745e159..1415fd8 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_position.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_position.cc
@@ -696,13 +696,16 @@ DCHECK(container); const AXObject* child = ChildAfterTreePosition(); const AXObject* last_child = container->LastChild(); - if ((IsTextPosition() && !container->GetNode()) || + if ((IsTextPosition() && (!container->GetNode() || + container->GetNode()->IsMarkerPseudoElement())) || container->IsMockObject() || container->IsVirtualObject() || (!child && last_child && - (!last_child->GetNode() || last_child->IsMockObject() || - last_child->IsVirtualObject())) || - (child && (!child->GetNode() || child->IsMockObject() || - child->IsVirtualObject()))) { + (!last_child->GetNode() || + last_child->GetNode()->IsMarkerPseudoElement() || + last_child->IsMockObject() || last_child->IsVirtualObject())) || + (child && + (!child->GetNode() || child->GetNode()->IsMarkerPseudoElement() || + child->IsMockObject() || child->IsVirtualObject()))) { switch (adjustment_behavior) { case AXPositionAdjustmentBehavior::kMoveRight: return CreateNextPosition().AsValidDOMPosition(adjustment_behavior); @@ -713,7 +716,7 @@ // At this point, if a DOM node is associated with our container, then the // corresponding DOM position should be valid. - if (container->GetNode()) + if (container->GetNode() && !container->GetNode()->IsMarkerPseudoElement()) return *this; DCHECK(container->IsAXLayoutObject())
diff --git a/third_party/blink/renderer/modules/content_index/content_description_type_converter.cc b/third_party/blink/renderer/modules/content_index/content_description_type_converter.cc index debf6e5..cbf40e6a 100644 --- a/third_party/blink/renderer/modules/content_index/content_description_type_converter.cc +++ b/third_party/blink/renderer/modules/content_index/content_description_type_converter.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/modules/content_index/content_description_type_converter.h" #include "third_party/blink/public/mojom/content_index/content_index.mojom-blink.h" -#include "third_party/blink/renderer/modules/content_index/content_icon_definition.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_content_icon_definition.h" #include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/modules/content_index/content_description_type_converter_test.cc b/third_party/blink/renderer/modules/content_index/content_description_type_converter_test.cc index e3e3de0..9356eb08 100644 --- a/third_party/blink/renderer/modules/content_index/content_description_type_converter_test.cc +++ b/third_party/blink/renderer/modules/content_index/content_description_type_converter_test.cc
@@ -6,8 +6,8 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/mojom/content_index/content_index.mojom-blink.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_content_icon_definition.h" #include "third_party/blink/renderer/modules/content_index/content_description.h" -#include "third_party/blink/renderer/modules/content_index/content_icon_definition.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/content_index/content_index.cc b/third_party/blink/renderer/modules/content_index/content_index.cc index c0ac35d..a171d78 100644 --- a/third_party/blink/renderer/modules/content_index/content_index.cc +++ b/third_party/blink/renderer/modules/content_index/content_index.cc
@@ -8,10 +8,10 @@ #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/web_size.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_content_icon_definition.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/modules/content_index/content_description_type_converter.h" -#include "third_party/blink/renderer/modules/content_index/content_icon_definition.h" #include "third_party/blink/renderer/modules/content_index/content_index_icon_loader.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h"
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 ef45a49..ef1518a7 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
@@ -7,8 +7,8 @@ #include <utility> #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/core/dom/dom_time_stamp.h" -#include "third_party/blink/renderer/modules/cookie_store/cookie_change_event_init.h" #include "third_party/blink/renderer/modules/cookie_store/cookie_list_item.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/platform/cookie/canonical_cookie.h"
diff --git a/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.cc b/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.cc index 98eba76..64121e4 100644 --- a/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.cc +++ b/third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.cc
@@ -5,8 +5,8 @@ #include "third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event.h" #include "third_party/blink/public/platform/web_string.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_extendable_cookie_change_event_init.h" #include "third_party/blink/renderer/modules/cookie_store/cookie_list_item.h" -#include "third_party/blink/renderer/modules/cookie_store/extendable_cookie_change_event_init.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/modules/service_worker/extendable_event_init.h" #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc index e38abf5..90bc914c 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc +++ b/third_party/blink/renderer/modules/credentialmanager/credential_manager_type_converters.cc
@@ -10,6 +10,7 @@ #include "build/build_config.h" #include "third_party/blink/public/mojom/webauthn/authenticator.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/array_buffer_or_array_buffer_view.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_request_options.h" #include "third_party/blink/renderer/modules/credentialmanager/authentication_extensions_client_inputs.h" #include "third_party/blink/renderer/modules/credentialmanager/authenticator_selection_criteria.h" #include "third_party/blink/renderer/modules/credentialmanager/cable_authentication_data.h" @@ -21,7 +22,6 @@ #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_creation_options.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_descriptor.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_parameters.h" -#include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_request_options.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_rp_entity.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_user_entity.h"
diff --git a/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc b/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc index ebe7f9b..2f138959b 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc +++ b/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc
@@ -12,6 +12,7 @@ #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_request_options.h" #include "third_party/blink/renderer/core/dom/abort_signal.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" @@ -37,7 +38,6 @@ #include "third_party/blink/renderer/modules/credentialmanager/password_credential.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential.h" #include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_creation_options.h" -#include "third_party/blink/renderer/modules/credentialmanager/public_key_credential_request_options.h" #include "third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/heap/heap.h"
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet.cc b/third_party/blink/renderer/modules/csspaint/paint_worklet.cc index e3ce253..e1cdb4b 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet.cc +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet.cc
@@ -49,7 +49,10 @@ Supplement<LocalDOMWindow>(*frame->DomWindow()), pending_generator_registry_( MakeGarbageCollected<PaintWorkletPendingGeneratorRegistry>()), - worklet_id_(NextId()) {} + worklet_id_(NextId()), + is_paint_off_thread_( + RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() && + Thread::CompositorThread()) {} PaintWorklet::~PaintWorklet() = default; @@ -58,6 +61,10 @@ pending_generator_registry_->AddPendingGenerator(name, generator); } +void PaintWorklet::ResetIsPaintOffThreadForTesting() { + is_paint_off_thread_ = RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled(); +} + // We start with a random global scope when a new frame starts. Then within this // frame, we switch to the other global scope after certain amount of paint // calls (rand(kMaxPaintCountToSwitch)). @@ -169,10 +176,9 @@ // regiserered from RegisterCSSPaintDefinition and one extra definition from // RegisterMainThreadDocumentPaintDefinition if OffMainThreadCSSPaintEnabled // is true. - unsigned required_registered_count = - RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() - ? kNumGlobalScopesPerThread + 1 - : kNumGlobalScopesPerThread; + unsigned required_registered_count = is_paint_off_thread_ + ? kNumGlobalScopesPerThread + 1 + : kNumGlobalScopesPerThread; if (existing_document_definition->GetRegisteredDefinitionCount() == required_registered_count) pending_generator_registry_->NotifyGeneratorReady(name); @@ -229,7 +235,7 @@ bool PaintWorklet::NeedsToCreateGlobalScope() { wtf_size_t num_scopes_needed = kNumGlobalScopesPerThread; // If we are running off main thread, we will need twice as many global scopes - if (RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled()) + if (is_paint_off_thread_) num_scopes_needed *= 2; return GetNumberOfGlobalScopes() < num_scopes_needed; } @@ -241,7 +247,7 @@ // scopes from the beginning of the vector. If this code is changed to put // the main thread global scopes at the end, then SelectNewGlobalScope must // also be changed. - if (!RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() || + if (!is_paint_off_thread_ || GetNumberOfGlobalScopes() < kNumGlobalScopesPerThread) { return MakeGarbageCollected<PaintWorkletGlobalScopeProxy>( To<Document>(GetExecutionContext())->GetFrame(), ModuleResponsesMap(),
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet.h b/third_party/blink/renderer/modules/csspaint/paint_worklet.h index dd0ef31..3b8b0fa 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet.h +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet.h
@@ -89,6 +89,8 @@ proxy_client_ = proxy_client; } + void ResetIsPaintOffThreadForTesting(); + protected: // Since paint worklet has more than one global scope, we MUST override this // function and provide our own selection logic. @@ -140,6 +142,12 @@ // to ensure that all global scopes get the same proxy client. Member<PaintWorkletProxyClient> proxy_client_; + // When running layout test, paint worklet has to be on the main thread + // because "enable-threaded-compositing" is off by default. However, some unit + // tests may be testing the functionality of the APIs when the paint worklet + // is off the main thread. + bool is_paint_off_thread_; + DISALLOW_COPY_AND_ASSIGN(PaintWorklet); };
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_test.cc b/third_party/blink/renderer/modules/csspaint/paint_worklet_test.cc index 4d6f3ad9..34cd9c08 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet_test.cc +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_test.cc
@@ -26,7 +26,9 @@ namespace blink { class TestPaintWorklet : public PaintWorklet { public: - explicit TestPaintWorklet(LocalFrame* frame) : PaintWorklet(frame) {} + explicit TestPaintWorklet(LocalFrame* frame) : PaintWorklet(frame) { + ResetIsPaintOffThreadForTesting(); + } void SetPaintsToSwitch(int num) { paints_to_switch_ = num; } @@ -158,8 +160,14 @@ EXPECT_TRUE(generator); EXPECT_EQ(generator->GetRegisteredDefinitionCountForTesting(), 1u); DocumentPaintDefinition* definition; - EXPECT_FALSE(generator->GetValidDocumentDefinitionForTesting(definition)); - EXPECT_FALSE(definition); + // Please refer to CSSPaintImageGeneratorImpl::GetValidDocumentDefinition for + // the logic. + if (RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled()) { + EXPECT_TRUE(generator->GetValidDocumentDefinitionForTesting(definition)); + } else { + EXPECT_FALSE(generator->GetValidDocumentDefinitionForTesting(definition)); + EXPECT_FALSE(definition); + } } // In this test, we set a list of "paints_to_switch" numbers, and in each frame, @@ -225,6 +233,7 @@ TEST_P(MainOrOffThreadPaintWorkletTest, ConsistentGlobalScopeOnMainThread) { PaintWorklet* paint_worklet_to_test = PaintWorklet::From(*GetFrame().GetDocument()->domWindow()); + paint_worklet_to_test->ResetIsPaintOffThreadForTesting(); MockObserver* observer = MakeGarbageCollected<MockObserver>(); CSSPaintImageGeneratorImpl* generator_foo = @@ -296,6 +305,7 @@ TEST_P(MainOrOffThreadPaintWorkletTest, AllGlobalScopesMustBeCreated) { PaintWorklet* paint_worklet_to_test = MakeGarbageCollected<PaintWorklet>(&GetFrame()); + paint_worklet_to_test->ResetIsPaintOffThreadForTesting(); EXPECT_TRUE(paint_worklet_to_test->GetGlobalScopesForTesting().IsEmpty()); @@ -323,6 +333,7 @@ ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true); PaintWorklet* paint_worklet_to_test = PaintWorklet::From(*GetFrame().GetDocument()->domWindow()); + paint_worklet_to_test->ResetIsPaintOffThreadForTesting(); MockObserver* observer = MakeGarbageCollected<MockObserver>(); CSSPaintImageGeneratorImpl* generator_foo = @@ -492,6 +503,7 @@ ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true); PaintWorklet* paint_worklet_to_test = PaintWorklet::From(*GetFrame().GetDocument()->domWindow()); + paint_worklet_to_test->ResetIsPaintOffThreadForTesting(); MockObserver* observer = MakeGarbageCollected<MockObserver>(); CSSPaintImageGeneratorImpl* generator =
diff --git a/third_party/blink/renderer/modules/device_orientation/device_motion_event_rotation_rate.cc b/third_party/blink/renderer/modules/device_orientation/device_motion_event_rotation_rate.cc index 4ce1039..ee6b0078 100644 --- a/third_party/blink/renderer/modules/device_orientation/device_motion_event_rotation_rate.cc +++ b/third_party/blink/renderer/modules/device_orientation/device_motion_event_rotation_rate.cc
@@ -24,7 +24,7 @@ */ #include "third_party/blink/renderer/modules/device_orientation/device_motion_event_rotation_rate.h" -#include "third_party/blink/renderer/modules/device_orientation/device_motion_event_rotation_rate_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_device_motion_event_rotation_rate_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/encoding/text_decoder.h b/third_party/blink/renderer/modules/encoding/text_decoder.h index f4637fb2..0e285ee 100644 --- a/third_party/blink/renderer/modules/encoding/text_decoder.h +++ b/third_party/blink/renderer/modules/encoding/text_decoder.h
@@ -33,8 +33,8 @@ #include <memory> #include "third_party/blink/renderer/bindings/core/v8/array_buffer_or_array_buffer_view.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_text_decoder_options.h" #include "third_party/blink/renderer/modules/encoding/text_decode_options.h" -#include "third_party/blink/renderer/modules/encoding/text_decoder_options.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/wtf/text/text_codec.h"
diff --git a/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc b/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc index 6b516a6..716c221 100644 --- a/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc +++ b/third_party/blink/renderer/modules/encoding/text_decoder_stream.cc
@@ -10,11 +10,11 @@ #include "third_party/blink/renderer/bindings/core/v8/array_buffer_or_array_buffer_view.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_text_decoder_options.h" #include "third_party/blink/renderer/core/streams/transform_stream_default_controller.h" #include "third_party/blink/renderer/core/streams/transform_stream_transformer.h" #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h" #include "third_party/blink/renderer/modules/encoding/encoding.h" -#include "third_party/blink/renderer/modules/encoding/text_decoder_options.h" #include "third_party/blink/renderer/platform/bindings/exception_messages.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/to_v8.h"
diff --git a/third_party/blink/renderer/modules/eventsource/event_source.cc b/third_party/blink/renderer/modules/eventsource/event_source.cc index 631acfc..dfe7dc56 100644 --- a/third_party/blink/renderer/modules/eventsource/event_source.cc +++ b/third_party/blink/renderer/modules/eventsource/event_source.cc
@@ -38,6 +38,7 @@ #include "third_party/blink/renderer/bindings/core/v8/script_controller.h" #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h" #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_event_source_init.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/events/message_event.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -47,7 +48,6 @@ #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/loader/threadable_loader.h" #include "third_party/blink/renderer/core/probe/core_probes.h" -#include "third_party/blink/renderer/modules/eventsource/event_source_init.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_error.h"
diff --git a/third_party/blink/renderer/modules/exported/BUILD.gn b/third_party/blink/renderer/modules/exported/BUILD.gn index bcd3ab5..fda918c 100644 --- a/third_party/blink/renderer/modules/exported/BUILD.gn +++ b/third_party/blink/renderer/modules/exported/BUILD.gn
@@ -17,9 +17,7 @@ defines = [ "BLINK_MODULES_IMPLEMENTATION=1" ] - deps = [ - "//ui/accessibility:ax_enums_mojo_blink", - ] + deps = [ "//ui/accessibility:ax_enums_mojo_blink" ] } static_library("test_support") { @@ -33,9 +31,7 @@ "//v8", ] - sources = [ - "web_testing_support.cc", - ] + sources = [ "web_testing_support.cc" ] configs += [ "//third_party/blink/renderer:config",
diff --git a/third_party/blink/renderer/modules/filesystem/directory_entry.cc b/third_party/blink/renderer/modules/filesystem/directory_entry.cc index a9d874c..b7f0ceb5 100644 --- a/third_party/blink/renderer/modules/filesystem/directory_entry.cc +++ b/third_party/blink/renderer/modules/filesystem/directory_entry.cc
@@ -30,11 +30,11 @@ #include "third_party/blink/renderer/modules/filesystem/directory_entry.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_flags.h" #include "third_party/blink/renderer/core/fileapi/file_error.h" #include "third_party/blink/renderer/modules/filesystem/async_callback_helper.h" #include "third_party/blink/renderer/modules/filesystem/directory_reader.h" #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h" -#include "third_party/blink/renderer/modules/filesystem/file_system_flags.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc b/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc index 63ca135..48b9788 100644 --- a/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc +++ b/third_party/blink/renderer/modules/filesystem/directory_entry_sync.cc
@@ -30,10 +30,10 @@ #include "third_party/blink/renderer/modules/filesystem/directory_entry_sync.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_flags.h" #include "third_party/blink/renderer/modules/filesystem/directory_reader_sync.h" #include "third_party/blink/renderer/modules/filesystem/entry.h" #include "third_party/blink/renderer/modules/filesystem/file_entry_sync.h" -#include "third_party/blink/renderer/modules/filesystem/file_system_flags.h" #include "third_party/blink/renderer/modules/filesystem/sync_callback_helper.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h index f6be95c7..4cbd4d5 100644 --- a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h +++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
@@ -32,9 +32,9 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DOM_FILE_SYSTEM_BASE_H_ #include "third_party/blink/public/mojom/filesystem/file_system.mojom-blink-forward.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_flags.h" #include "third_party/blink/renderer/core/fileapi/file_error.h" #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h" -#include "third_party/blink/renderer/modules/filesystem/file_system_flags.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_button_event.h b/third_party/blink/renderer/modules/gamepad/gamepad_button_event.h index 60efaf6..106abcc 100644 --- a/third_party/blink/renderer/modules/gamepad/gamepad_button_event.h +++ b/third_party/blink/renderer/modules/gamepad/gamepad_button_event.h
@@ -5,9 +5,9 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_GAMEPAD_GAMEPAD_BUTTON_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_GAMEPAD_GAMEPAD_BUTTON_EVENT_H_ +#include "third_party/blink/renderer/bindings/modules/v8/v8_gamepad_button_event_init.h" #include "third_party/blink/renderer/modules/gamepad/gamepad.h" #include "third_party/blink/renderer/modules/gamepad/gamepad_button.h" -#include "third_party/blink/renderer/modules/gamepad/gamepad_button_event_init.h" #include "third_party/blink/renderer/modules/gamepad/gamepad_event.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/imagecapture/image_capture.h b/third_party/blink/renderer/modules/imagecapture/image_capture.h index 34e4577..5efdfe9 100644 --- a/third_party/blink/renderer/modules/imagecapture/image_capture.h +++ b/third_party/blink/renderer/modules/imagecapture/image_capture.h
@@ -10,10 +10,10 @@ #include "mojo/public/cpp/bindings/remote.h" #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_photo_settings.h" #include "third_party/blink/renderer/core/dom/events/event_target.h" #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h" #include "third_party/blink/renderer/modules/event_target_modules.h" -#include "third_party/blink/renderer/modules/imagecapture/photo_settings.h" #include "third_party/blink/renderer/modules/mediastream/media_track_capabilities.h" #include "third_party/blink/renderer/modules/mediastream/media_track_constraint_set.h" #include "third_party/blink/renderer/modules/mediastream/media_track_settings.h"
diff --git a/third_party/blink/renderer/modules/media/BUILD.gn b/third_party/blink/renderer/modules/media/BUILD.gn index eba7d9e6..3de62ab 100644 --- a/third_party/blink/renderer/modules/media/BUILD.gn +++ b/third_party/blink/renderer/modules/media/BUILD.gn
@@ -6,7 +6,5 @@ import("//third_party/blink/renderer/modules/modules.gni") blink_modules_sources("media") { - sources = [ - "webmediaplayer_util.cc", - ] + sources = [ "webmediaplayer_util.cc" ] }
diff --git a/third_party/blink/renderer/modules/media_capabilities/media_capabilities.cc b/third_party/blink/renderer/modules/media_capabilities/media_capabilities.cc index ff6abd7..70e8ed3 100644 --- a/third_party/blink/renderer/modules/media_capabilities/media_capabilities.cc +++ b/third_party/blink/renderer/modules/media_capabilities/media_capabilities.cc
@@ -20,6 +20,7 @@ #include "third_party/blink/public/platform/web_encrypted_media_request.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_media_configuration.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -36,7 +37,6 @@ #include "third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info.h" #include "third_party/blink/renderer/modules/media_capabilities/media_capabilities_info.h" #include "third_party/blink/renderer/modules/media_capabilities/media_capabilities_key_system_configuration.h" -#include "third_party/blink/renderer/modules/media_capabilities/media_configuration.h" #include "third_party/blink/renderer/modules/media_capabilities/media_decoding_configuration.h" #include "third_party/blink/renderer/modules/media_capabilities/media_encoding_configuration.h" #include "third_party/blink/renderer/modules/mediarecorder/media_recorder_handler.h"
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc index 2e66e99..4a0f4ae5 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc
@@ -5,8 +5,8 @@ #include "third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.h" #include "third_party/blink/public/common/input/web_pointer_properties.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_pointer_event_init.h" #include "third_party/blink/renderer/core/events/pointer_event.h" -#include "third_party/blink/renderer/core/events/pointer_event_init.h" #include "third_party/blink/renderer/core/events/touch_event.h" #include "third_party/blink/renderer/core/events/touch_event_init.h" #include "third_party/blink/renderer/core/html/media/html_video_element.h"
diff --git a/third_party/blink/renderer/modules/mediarecorder/blob_event.cc b/third_party/blink/renderer/modules/mediarecorder/blob_event.cc index 5429d39..d680c66 100644 --- a/third_party/blink/renderer/modules/mediarecorder/blob_event.cc +++ b/third_party/blink/renderer/modules/mediarecorder/blob_event.cc
@@ -6,7 +6,7 @@ #include <cmath> -#include "third_party/blink/renderer/modules/mediarecorder/blob_event_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_blob_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc index b4563f7e..1ac1befe 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.cc
@@ -11,7 +11,6 @@ #include "base/bind_helpers.h" #include "base/logging.h" #include "third_party/blink/public/platform/interface_registry.h" -#include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/modules/mediastream/user_media_processor.h" @@ -42,15 +41,13 @@ MediaStreamDevices video_devices; }; -MediaStreamDeviceObserver::MediaStreamDeviceObserver(WebLocalFrame* frame) { +MediaStreamDeviceObserver::MediaStreamDeviceObserver(LocalFrame* frame) { // There is no frame on unit tests. - if (!frame) - return; - static_cast<LocalFrame*>(WebFrame::ToCoreFrame(*frame)) - ->GetInterfaceRegistry() - ->AddInterface(WTF::BindRepeating( - &MediaStreamDeviceObserver::BindMediaStreamDeviceObserverReceiver, - WTF::Unretained(this))); + if (frame) { + frame->GetInterfaceRegistry()->AddInterface(WTF::BindRepeating( + &MediaStreamDeviceObserver::BindMediaStreamDeviceObserverReceiver, + WTF::Unretained(this))); + } } MediaStreamDeviceObserver::~MediaStreamDeviceObserver() {}
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.h b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.h index cf44776..3e844ab 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.h +++ b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer.h
@@ -23,15 +23,15 @@ #include "third_party/blink/renderer/modules/modules_export.h" namespace blink { +class LocalFrame; class UserMediaProcessor; -class WebLocalFrame; // This class implements a Mojo object that receives device stopped // notifications and forwards them to UserMediaProcessor. class MODULES_EXPORT MediaStreamDeviceObserver : public mojom::blink::MediaStreamDeviceObserver { public: - explicit MediaStreamDeviceObserver(WebLocalFrame* frame); + explicit MediaStreamDeviceObserver(LocalFrame* frame); ~MediaStreamDeviceObserver() override;
diff --git a/third_party/blink/renderer/modules/mediastream/web_media_stream_device_observer.cc b/third_party/blink/renderer/modules/mediastream/web_media_stream_device_observer.cc index 27ba74b..8a3105e 100644 --- a/third_party/blink/renderer/modules/mediastream/web_media_stream_device_observer.cc +++ b/third_party/blink/renderer/modules/mediastream/web_media_stream_device_observer.cc
@@ -5,12 +5,18 @@ #include "third_party/blink/public/web/modules/mediastream/web_media_stream_device_observer.h" #include "third_party/blink/public/web/web_local_frame.h" +#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_device_observer.h" namespace blink { -WebMediaStreamDeviceObserver::WebMediaStreamDeviceObserver(WebLocalFrame* frame) - : observer_(std::make_unique<MediaStreamDeviceObserver>(frame)) {} +WebMediaStreamDeviceObserver::WebMediaStreamDeviceObserver( + WebLocalFrame* frame) { + auto* local_frame = + frame ? static_cast<LocalFrame*>(WebFrame::ToCoreFrame(*frame)) : nullptr; + observer_ = std::make_unique<MediaStreamDeviceObserver>(local_frame); +} + WebMediaStreamDeviceObserver::~WebMediaStreamDeviceObserver() = default; MediaStreamDevices WebMediaStreamDeviceObserver::GetNonScreenCaptureDevices() {
diff --git a/third_party/blink/renderer/modules/modules_idl_files.gni b/third_party/blink/renderer/modules/modules_idl_files.gni index b990fb3..f2dfeeb 100644 --- a/third_party/blink/renderer/modules/modules_idl_files.gni +++ b/third_party/blink/renderer/modules/modules_idl_files.gni
@@ -408,7 +408,6 @@ "webgl/ext_shader_texture_lod.idl", "webgl/ext_srgb.idl", "webgl/ext_texture_filter_anisotropic.idl", - "webgl/ext_texture_norm_16.idl", "webgl/khr_parallel_shader_compile.idl", "webgl/oes_element_index_uint.idl", "webgl/oes_fbo_render_mipmap.idl",
diff --git a/third_party/blink/renderer/modules/native_file_system/native_file_system_directory_handle.cc b/third_party/blink/renderer/modules/native_file_system/native_file_system_directory_handle.cc index 308dfd3..6865a8b 100644 --- a/third_party/blink/renderer/modules/native_file_system/native_file_system_directory_handle.cc +++ b/third_party/blink/renderer/modules/native_file_system/native_file_system_directory_handle.cc
@@ -11,10 +11,10 @@ #include "third_party/blink/public/mojom/native_file_system/native_file_system_manager.mojom-blink.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_get_directory_options.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" #include "third_party/blink/renderer/core/fileapi/file_error.h" -#include "third_party/blink/renderer/modules/native_file_system/file_system_get_directory_options.h" #include "third_party/blink/renderer/modules/native_file_system/file_system_get_file_options.h" #include "third_party/blink/renderer/modules/native_file_system/file_system_remove_options.h" #include "third_party/blink/renderer/modules/native_file_system/native_file_system_directory_iterator.h"
diff --git a/third_party/blink/renderer/modules/native_file_system/native_file_system_file_handle.cc b/third_party/blink/renderer/modules/native_file_system/native_file_system_file_handle.cc index cf52462..c003cb1f 100644 --- a/third_party/blink/renderer/modules/native_file_system/native_file_system_file_handle.cc +++ b/third_party/blink/renderer/modules/native_file_system/native_file_system_file_handle.cc
@@ -8,10 +8,10 @@ #include "third_party/blink/public/mojom/native_file_system/native_file_system_file_writer.mojom-blink.h" #include "third_party/blink/public/mojom/native_file_system/native_file_system_transfer_token.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_create_writer_options.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/fileapi/file.h" #include "third_party/blink/renderer/core/fileapi/file_error.h" -#include "third_party/blink/renderer/modules/native_file_system/file_system_create_writer_options.h" #include "third_party/blink/renderer/modules/native_file_system/native_file_system_error.h" #include "third_party/blink/renderer/modules/native_file_system/native_file_system_writable_file_stream.h" #include "third_party/blink/renderer/modules/native_file_system/native_file_system_writer.h"
diff --git a/third_party/blink/renderer/modules/notifications/notification_event.cc b/third_party/blink/renderer/modules/notifications/notification_event.cc index d41d96a..ff9fe67 100644 --- a/third_party/blink/renderer/modules/notifications/notification_event.cc +++ b/third_party/blink/renderer/modules/notifications/notification_event.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/notifications/notification_event.h" -#include "third_party/blink/renderer/modules/notifications/notification_event_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_notification_event_init.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/can_make_payment_event.h b/third_party/blink/renderer/modules/payments/can_make_payment_event.h index 32a0ffaa..73c7d5b 100644 --- a/third_party/blink/renderer/modules/payments/can_make_payment_event.h +++ b/third_party/blink/renderer/modules/payments/can_make_payment_event.h
@@ -7,9 +7,9 @@ #include "base/macros.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_can_make_payment_event_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_modifier.h" #include "third_party/blink/renderer/modules/event_modules.h" -#include "third_party/blink/renderer/modules/payments/can_make_payment_event_init.h" -#include "third_party/blink/renderer/modules/payments/payment_details_modifier.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" #include "third_party/blink/renderer/modules/service_worker/extendable_event.h" #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc index 620081a..f8c3a2f 100644 --- a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc +++ b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc
@@ -6,14 +6,13 @@ #include "third_party/blink/public/mojom/payments/payment_app.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/to_v8_for_core.h" -#include "third_party/blink/renderer/modules/payments/can_make_payment_event_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_modifier.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_shipping_option.h" #include "third_party/blink/renderer/modules/payments/payment_currency_amount.h" -#include "third_party/blink/renderer/modules/payments/payment_details_modifier.h" #include "third_party/blink/renderer/modules/payments/payment_item.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" #include "third_party/blink/renderer/modules/payments/payment_request_event_init.h" -#include "third_party/blink/renderer/modules/payments/payment_shipping_option.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h index c9d4999e..e3264887 100644 --- a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h +++ b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h
@@ -6,7 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_PAYMENT_EVENT_DATA_CONVERSION_H_ #include "third_party/blink/public/mojom/payments/payment_app.mojom-blink-forward.h" -#include "third_party/blink/renderer/modules/payments/can_make_payment_event_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_can_make_payment_event_init.h" #include "third_party/blink/renderer/modules/payments/payment_request_event_init.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc b/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc index 035de937..fe7accf 100644 --- a/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc +++ b/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc
@@ -10,10 +10,10 @@ #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_shipping_option.h" #include "third_party/blink/renderer/modules/payments/payment_currency_amount.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" -#include "third_party/blink/renderer/modules/payments/payment_shipping_option.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_method_change_event.h b/third_party/blink/renderer/modules/payments/payment_method_change_event.h index 162ce1e3..993446a 100644 --- a/third_party/blink/renderer/modules/payments/payment_method_change_event.h +++ b/third_party/blink/renderer/modules/payments/payment_method_change_event.h
@@ -7,8 +7,8 @@ #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_method_change_event_init.h" #include "third_party/blink/renderer/modules/modules_export.h" -#include "third_party/blink/renderer/modules/payments/payment_method_change_event_init.h" #include "third_party/blink/renderer/modules/payments/payment_request_update_event.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc index 7b97aa53..ae6497f 100644 --- a/third_party/blink/renderer/modules/payments/payment_request.cc +++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -21,7 +21,9 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_string_resource.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_android_pay_method_data.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_basic_card_request.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_modifier.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_update.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_shipping_option.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/dom/events/event.h" @@ -36,7 +38,6 @@ #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/modules/event_target_modules_names.h" #include "third_party/blink/renderer/modules/payments/address_errors.h" -#include "third_party/blink/renderer/modules/payments/android_pay_method_data.h" #include "third_party/blink/renderer/modules/payments/android_pay_tokenization.h" #include "third_party/blink/renderer/modules/payments/basic_card_helper.h" #include "third_party/blink/renderer/modules/payments/basic_card_request.h" @@ -44,13 +45,11 @@ #include "third_party/blink/renderer/modules/payments/payer_errors.h" #include "third_party/blink/renderer/modules/payments/payment_address.h" #include "third_party/blink/renderer/modules/payments/payment_details_init.h" -#include "third_party/blink/renderer/modules/payments/payment_details_modifier.h" #include "third_party/blink/renderer/modules/payments/payment_details_update.h" #include "third_party/blink/renderer/modules/payments/payment_item.h" #include "third_party/blink/renderer/modules/payments/payment_method_change_event.h" #include "third_party/blink/renderer/modules/payments/payment_request_update_event.h" #include "third_party/blink/renderer/modules/payments/payment_response.h" -#include "third_party/blink/renderer/modules/payments/payment_shipping_option.h" #include "third_party/blink/renderer/modules/payments/payment_validation_errors.h" #include "third_party/blink/renderer/modules/payments/payments_validators.h" #include "third_party/blink/renderer/modules/payments/update_payment_details_function.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request.h b/third_party/blink/renderer/modules/payments/payment_request.h index d24c4ad..b0234c6 100644 --- a/third_party/blink/renderer/modules/payments/payment_request.h +++ b/third_party/blink/renderer/modules/payments/payment_request.h
@@ -14,11 +14,11 @@ #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" #include "third_party/blink/renderer/core/dom/events/event_target.h" #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" #include "third_party/blink/renderer/modules/payments/payment_request_delegate.h" #include "third_party/blink/renderer/modules/payments/payment_state_resolver.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request_details_test.cc b/third_party/blink/renderer/modules/payments/payment_request_details_test.cc index 1516417..095abc6f 100644 --- a/third_party/blink/renderer/modules/payments/payment_request_details_test.cc +++ b/third_party/blink/renderer/modules/payments/payment_request_details_test.cc
@@ -7,9 +7,9 @@ #include <ostream> // NOLINT #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/modules/payments/payment_details_init.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" #include "third_party/blink/renderer/modules/payments/payment_test_helper.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request_event.cc b/third_party/blink/renderer/modules/payments/payment_request_event.cc index b69b8c1e..c04488b1 100644 --- a/third_party/blink/renderer/modules/payments/payment_request_event.cc +++ b/third_party/blink/renderer/modules/payments/payment_request_event.cc
@@ -10,18 +10,18 @@ #include "third_party/blink/public/platform/interface_provider.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_modifier.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_shipping_option.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_location.h" #include "third_party/blink/renderer/modules/payments/address_errors.h" #include "third_party/blink/renderer/modules/payments/payment_address_init_type_converter.h" #include "third_party/blink/renderer/modules/payments/payment_currency_amount.h" -#include "third_party/blink/renderer/modules/payments/payment_details_modifier.h" #include "third_party/blink/renderer/modules/payments/payment_item.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" #include "third_party/blink/renderer/modules/payments/payment_request_details_update.h" -#include "third_party/blink/renderer/modules/payments/payment_shipping_option.h" #include "third_party/blink/renderer/modules/payments/payments_validators.h" #include "third_party/blink/renderer/modules/service_worker/respond_with_observer.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc b/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc index 5fcc26a4..b8a1adcc 100644 --- a/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc +++ b/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc
@@ -13,7 +13,6 @@ #include "third_party/blink/renderer/modules/payments/payment_address.h" #include "third_party/blink/renderer/modules/payments/payment_address_init.h" #include "third_party/blink/renderer/modules/payments/payment_address_init_type_converter.h" -#include "third_party/blink/renderer/modules/payments/payment_handler_response.h" #include "third_party/blink/renderer/modules/payments/payment_handler_utils.h" #include "third_party/blink/renderer/modules/payments/payments_validators.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_request_update_event.h b/third_party/blink/renderer/modules/payments/payment_request_update_event.h index f3e5e046..b8bc2d6 100644 --- a/third_party/blink/renderer/modules/payments/payment_request_update_event.h +++ b/third_party/blink/renderer/modules/payments/payment_request_update_event.h
@@ -6,9 +6,9 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_PAYMENT_REQUEST_UPDATE_EVENT_H_ #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_request_update_event_init.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/modules/modules_export.h" -#include "third_party/blink/renderer/modules/payments/payment_request_update_event_init.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/timer.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_test_helper.cc b/third_party/blink/renderer/modules/payments/payment_test_helper.cc index 7f87585..8945dd51 100644 --- a/third_party/blink/renderer/modules/payments/payment_test_helper.cc +++ b/third_party/blink/renderer/modules/payments/payment_test_helper.cc
@@ -4,9 +4,9 @@ #include "third_party/blink/renderer/modules/payments/payment_test_helper.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_details_modifier.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/modules/payments/payment_currency_amount.h" -#include "third_party/blink/renderer/modules/payments/payment_details_modifier.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
diff --git a/third_party/blink/renderer/modules/payments/payment_test_helper.h b/third_party/blink/renderer/modules/payments/payment_test_helper.h index 50477fd..171c7a5 100644 --- a/third_party/blink/renderer/modules/payments/payment_test_helper.h +++ b/third_party/blink/renderer/modules/payments/payment_test_helper.h
@@ -10,10 +10,10 @@ #include "third_party/blink/renderer/bindings/core/v8/script_function.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" #include "third_party/blink/renderer/bindings/core/v8/v8_dom_exception.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_shipping_option.h" #include "third_party/blink/renderer/modules/payments/payment_details_init.h" #include "third_party/blink/renderer/modules/payments/payment_details_update.h" #include "third_party/blink/renderer/modules/payments/payment_item.h" -#include "third_party/blink/renderer/modules/payments/payment_shipping_option.h" #include "third_party/blink/renderer/platform/heap/heap_allocator.h" #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/modules/payments/skip_to_gpay_utils.cc b/third_party/blink/renderer/modules/payments/skip_to_gpay_utils.cc index 1a7f142..e3d526e7 100644 --- a/third_party/blink/renderer/modules/payments/skip_to_gpay_utils.cc +++ b/third_party/blink/renderer/modules/payments/skip_to_gpay_utils.cc
@@ -5,8 +5,8 @@ #include "third_party/blink/renderer/modules/payments/skip_to_gpay_utils.h" #include "base/logging.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" #include "third_party/blink/renderer/modules/payments/payment_method_data.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/json/json_parser.h" #include "third_party/blink/renderer/platform/json/json_values.h"
diff --git a/third_party/blink/renderer/modules/payments/skip_to_gpay_utils_test.cc b/third_party/blink/renderer/modules/payments/skip_to_gpay_utils_test.cc index 0d56ae8..0de3ffc 100644 --- a/third_party/blink/renderer/modules/payments/skip_to_gpay_utils_test.cc +++ b/third_party/blink/renderer/modules/payments/skip_to_gpay_utils_test.cc
@@ -8,7 +8,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/renderer/modules/payments/payment_options.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_payment_options.h" namespace blink { namespace {
diff --git a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc index e0c68ef..badabfd 100644 --- a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc +++ b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.cc
@@ -248,7 +248,8 @@ bool MockRTCPeerConnectionHandlerPlatform::Initialize( const webrtc::PeerConnectionInterface::RTCConfiguration&, - const MediaConstraints&) { + const MediaConstraints&, + WebLocalFrame*) { return true; }
diff --git a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h index ad149e04..136a956d 100644 --- a/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h +++ b/third_party/blink/renderer/modules/peerconnection/mock_rtc_peer_connection_handler_platform.h
@@ -27,7 +27,8 @@ ~MockRTCPeerConnectionHandlerPlatform() override; bool Initialize(const webrtc::PeerConnectionInterface::RTCConfiguration&, - const MediaConstraints&) override; + const MediaConstraints&, + WebLocalFrame*) override; Vector<std::unique_ptr<RTCRtpTransceiverPlatform>> CreateOffer( RTCSessionDescriptionRequest*,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel_event.h b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel_event.h index e6efc56..9b0fed3 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_data_channel_event.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_data_channel_event.h
@@ -25,9 +25,9 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_RTC_DATA_CHANNEL_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_RTC_DATA_CHANNEL_EVENT_H_ +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_data_channel_event_init.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_data_channel.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_data_channel_event_init.h" #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_error.h b/third_party/blink/renderer/modules/peerconnection/rtc_error.h index f29f021..5dda5403 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_error.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_error.h
@@ -6,8 +6,8 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_RTC_ERROR_H_ #include "base/optional.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_error_init.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_error_init.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/webrtc/api/rtc_error.h"
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 fc71a2c..1a93887 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -763,14 +763,9 @@ return; } - // TODO(crbug.com/787254): Can the frame be associated when - // calling RtcPeerConnectionHandler::Initialize()? - auto* web_local_frame = + auto* web_frame = static_cast<WebLocalFrame*>(WebFrame::FromFrame(document->GetFrame())); - if (web_local_frame) - peer_handler_->AssociateWithFrame(web_local_frame); - - if (!peer_handler_->Initialize(configuration, constraints)) { + if (!peer_handler_->Initialize(configuration, constraints, web_frame)) { closed_ = true; stopped_ = true; exception_state.ThrowDOMException(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc index 3cf4be9..b734010 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc
@@ -1082,18 +1082,14 @@ num_data_channels_created_); } -void RTCPeerConnectionHandler::AssociateWithFrame(blink::WebLocalFrame* frame) { - DCHECK(task_runner_->RunsTasksInCurrentSequence()); - DCHECK(frame); - frame_ = frame; -} - bool RTCPeerConnectionHandler::Initialize( const webrtc::PeerConnectionInterface::RTCConfiguration& server_configuration, - const MediaConstraints& options) { + const MediaConstraints& options, + WebLocalFrame* frame) { DCHECK(task_runner_->RunsTasksInCurrentSequence()); - DCHECK(frame_); + DCHECK(frame); + frame_ = frame; CHECK(!initialize_called_); initialize_called_ = true;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h index 2557dec..55143431 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.h
@@ -93,8 +93,6 @@ scoped_refptr<base::SingleThreadTaskRunner> task_runner); ~RTCPeerConnectionHandler() override; - void AssociateWithFrame(blink::WebLocalFrame* frame) override; - // Initialize method only used for unit test. bool InitializeForTest( const webrtc::PeerConnectionInterface::RTCConfiguration& @@ -105,7 +103,8 @@ // RTCPeerConnectionHandlerPlatform implementation bool Initialize(const webrtc::PeerConnectionInterface::RTCConfiguration& server_configuration, - const MediaConstraints& options) override; + const MediaConstraints& options, + WebLocalFrame* web_frame) override; Vector<std::unique_ptr<RTCRtpTransceiverPlatform>> CreateOffer( RTCSessionDescriptionRequest* request,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.cc b/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.cc index f6eaaba..0aead4e 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.cc
@@ -3,8 +3,8 @@ // found in the LICENSE file. #include "third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_quic_stream_event_init.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_quic_stream.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_quic_stream_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc index 65e6a7f..11997fd 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
@@ -6,6 +6,7 @@ #include "third_party/blink/public/platform/web_media_stream.h" #include "third_party/blink/public/platform/web_media_stream_track.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtp_header_extension_parameters.h" #include "third_party/blink/renderer/core/loader/document_loader.h" #include "third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h" @@ -15,7 +16,6 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_codec_parameters.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_decoding_parameters.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_capability.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_parameters.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h" #include "third_party/blink/renderer/modules/peerconnection/web_rtc_stats_report_callback_resolver.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc index 519f5d5..25fd1dfff 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
@@ -10,6 +10,7 @@ #include <utility> #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtp_header_extension_parameters.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_track.h" #include "third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h" @@ -21,7 +22,6 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_capabilities.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_codec_parameters.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_capability.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_header_extension_parameters.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_void_request_script_promise_resolver_impl.h" #include "third_party/blink/renderer/modules/peerconnection/web_rtc_stats_report_callback_resolver.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h index 9538b5b..37833c6a 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h
@@ -8,9 +8,9 @@ #include <memory> #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtp_send_parameters.h" #include "third_party/blink/renderer/modules/mediastream/media_stream.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_encoding_parameters.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_send_parameters.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/member.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_track_event.cc b/third_party/blink/renderer/modules/peerconnection/rtc_track_event.cc index 83aa2cb..f7b43c2 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_track_event.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_track_event.cc
@@ -4,11 +4,11 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_track_event.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_track_event_init.h" #include "third_party/blink/renderer/modules/mediastream/media_stream.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_track.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_transceiver.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_track_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/push_messaging/push_event.cc b/third_party/blink/renderer/modules/push_messaging/push_event.cc index 8353a24c..71b52bd0 100644 --- a/third_party/blink/renderer/modules/push_messaging/push_event.cc +++ b/third_party/blink/renderer/modules/push_messaging/push_event.cc
@@ -14,10 +14,28 @@ : ExtendableEvent(type, ExtendableEventInit::Create(), observer), data_(data) {} -PushEvent::PushEvent(const AtomicString& type, const PushEventInit* initializer) +PushEvent::PushEvent(const AtomicString& type, + const PushEventInit* initializer, + ExceptionState& exception_state) : ExtendableEvent(type, initializer) { - if (initializer->hasData()) + if (initializer->hasData()) { + const ArrayBufferOrArrayBufferViewOrUSVString& message_data = + initializer->data(); + if (message_data.IsArrayBuffer() || message_data.IsArrayBufferView()) { + DOMArrayBuffer* buffer = + message_data.IsArrayBufferView() + ? message_data.GetAsArrayBufferView().View()->buffer() + : message_data.GetAsArrayBuffer(); + if (!base::CheckedNumeric<uint32_t>(buffer->ByteLengthAsSizeT()) + .IsValid()) { + exception_state.ThrowRangeError( + "The provided ArrayBuffer exceeds the maximum supported size " + "(4294967295)"); + return; + } + } data_ = PushMessageData::Create(initializer->data()); + } } PushEvent::~PushEvent() = default;
diff --git a/third_party/blink/renderer/modules/push_messaging/push_event.h b/third_party/blink/renderer/modules/push_messaging/push_event.h index 296a1db..b5f93a4 100644 --- a/third_party/blink/renderer/modules/push_messaging/push_event.h +++ b/third_party/blink/renderer/modules/push_messaging/push_event.h
@@ -27,14 +27,17 @@ return MakeGarbageCollected<PushEvent>(type, data, observer); } static PushEvent* Create(const AtomicString& type, - const PushEventInit* initializer) { - return MakeGarbageCollected<PushEvent>(type, initializer); + const PushEventInit* initializer, + ExceptionState& exception_state) { + return MakeGarbageCollected<PushEvent>(type, initializer, exception_state); } PushEvent(const AtomicString& type, PushMessageData* data, WaitUntilObserver* observer); - PushEvent(const AtomicString& type, const PushEventInit* initializer); + PushEvent(const AtomicString& type, + const PushEventInit* initializer, + ExceptionState& exception_state); ~PushEvent() override; // ExtendableEvent interface.
diff --git a/third_party/blink/renderer/modules/push_messaging/push_event.idl b/third_party/blink/renderer/modules/push_messaging/push_event.idl index 692ddb2..f472ab1 100644 --- a/third_party/blink/renderer/modules/push_messaging/push_event.idl +++ b/third_party/blink/renderer/modules/push_messaging/push_event.idl
@@ -8,6 +8,6 @@ Exposed=ServiceWorker, RuntimeEnabled=PushMessaging ] interface PushEvent : ExtendableEvent { - constructor(DOMString type, optional PushEventInit eventInitDict); + [RaisesException] constructor(DOMString type, optional PushEventInit eventInitDict); readonly attribute PushMessageData? data; };
diff --git a/third_party/blink/renderer/modules/push_messaging/push_message_data.cc b/third_party/blink/renderer/modules/push_messaging/push_message_data.cc index 42c9a0e..f841beb2 100644 --- a/third_party/blink/renderer/modules/push_messaging/push_message_data.cc +++ b/third_party/blink/renderer/modules/push_messaging/push_message_data.cc
@@ -40,7 +40,7 @@ return MakeGarbageCollected<PushMessageData>( static_cast<const char*>(buffer->Data()), - buffer->DeprecatedByteLengthAsUnsigned()); + base::checked_cast<wtf_size_t>(buffer->ByteLengthAsSizeT())); } if (message_data.IsUSVString()) {
diff --git a/third_party/blink/renderer/modules/quota/deprecated_storage_quota.cc b/third_party/blink/renderer/modules/quota/deprecated_storage_quota.cc index b0f3b0a7..fbbfa1a 100644 --- a/third_party/blink/renderer/modules/quota/deprecated_storage_quota.cc +++ b/third_party/blink/renderer/modules/quota/deprecated_storage_quota.cc
@@ -35,6 +35,7 @@ #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_storage_error_callback.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_storage_estimate.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_storage_quota_callback.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_storage_usage_callback.h" #include "third_party/blink/renderer/core/dom/document.h" @@ -42,7 +43,6 @@ #include "third_party/blink/renderer/core/frame/web_feature.h" #include "third_party/blink/renderer/modules/quota/dom_error.h" #include "third_party/blink/renderer/modules/quota/quota_utils.h" -#include "third_party/blink/renderer/modules/quota/storage_estimate.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h"
diff --git a/third_party/blink/renderer/modules/quota/storage_manager.cc b/third_party/blink/renderer/modules/quota/storage_manager.cc index 23c7b7654..9fdd94c 100644 --- a/third_party/blink/renderer/modules/quota/storage_manager.cc +++ b/third_party/blink/renderer/modules/quota/storage_manager.cc
@@ -17,7 +17,6 @@ #include "third_party/blink/renderer/core/frame/web_feature.h" #include "third_party/blink/renderer/modules/permissions/permission_utils.h" #include "third_party/blink/renderer/modules/quota/quota_utils.h" -#include "third_party/blink/renderer/modules/quota/storage_estimate.h" #include "third_party/blink/renderer/modules/quota/storage_usage_details.h" #include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
diff --git a/third_party/blink/renderer/modules/sensor/sensor_error_event.h b/third_party/blink/renderer/modules/sensor/sensor_error_event.h index bd376c2..be8f43df 100644 --- a/third_party/blink/renderer/modules/sensor/sensor_error_event.h +++ b/third_party/blink/renderer/modules/sensor/sensor_error_event.h
@@ -5,9 +5,9 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SENSOR_SENSOR_ERROR_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_SENSOR_SENSOR_ERROR_EVENT_H_ +#include "third_party/blink/renderer/bindings/modules/v8/v8_sensor_error_event_init.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/modules/event_modules.h" -#include "third_party/blink/renderer/modules/sensor/sensor_error_event_init.h" #include "third_party/blink/renderer/platform/heap/handle.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_container.h b/third_party/blink/renderer/modules/service_worker/service_worker_container.h index 8c8f3251..2dc3e85 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_container.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_container.h
@@ -38,12 +38,12 @@ #include "third_party/blink/public/platform/modules/service_worker/web_service_worker_provider_client.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_property.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_registration_options.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/events/event_target.h" #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/service_worker/message_from_service_worker.h" -#include "third_party/blink/renderer/modules/service_worker/registration_options.h" #include "third_party/blink/renderer/modules/service_worker/service_worker.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_registration.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc index aa72458..49ad96d7 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -49,6 +49,7 @@ #include "third_party/blink/renderer/bindings/core/v8/source_location.h" #include "third_party/blink/renderer/bindings/core/v8/string_or_trusted_script_url.h" #include "third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_notification_event_init.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/fetch/global_fetch.h" @@ -78,7 +79,6 @@ #include "third_party/blink/renderer/modules/event_target_modules.h" #include "third_party/blink/renderer/modules/notifications/notification.h" #include "third_party/blink/renderer/modules/notifications/notification_event.h" -#include "third_party/blink/renderer/modules/notifications/notification_event_init.h" #include "third_party/blink/renderer/modules/payments/abort_payment_event.h" #include "third_party/blink/renderer/modules/payments/abort_payment_respond_with_observer.h" #include "third_party/blink/renderer/modules/payments/can_make_payment_event.h"
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_registration.cc b/third_party/blink/renderer/modules/service_worker/service_worker_registration.cc index d22d85d..f27357dc 100644 --- a/third_party/blink/renderer/modules/service_worker/service_worker_registration.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_registration.cc
@@ -11,11 +11,11 @@ #include "mojo/public/cpp/bindings/pending_associated_remote.h" #include "third_party/blink/public/mojom/loader/fetch_client_settings_object.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_navigation_preload_state.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/modules/event_target_modules.h" -#include "third_party/blink/renderer/modules/service_worker/navigation_preload_state.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_container.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_error.h" #include "third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h"
diff --git a/third_party/blink/renderer/modules/shapedetection/barcode_detector.cc b/third_party/blink/renderer/modules/shapedetection/barcode_detector.cc index 3c0f3c8..69ac1e9 100644 --- a/third_party/blink/renderer/modules/shapedetection/barcode_detector.cc +++ b/third_party/blink/renderer/modules/shapedetection/barcode_detector.cc
@@ -6,13 +6,13 @@ #include <utility> +#include "third_party/blink/renderer/bindings/modules/v8/v8_barcode_detector_options.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/geometry/dom_rect.h" #include "third_party/blink/renderer/core/html/canvas/canvas_image_source.h" #include "third_party/blink/renderer/core/workers/worker_thread.h" #include "third_party/blink/renderer/modules/imagecapture/point_2d.h" -#include "third_party/blink/renderer/modules/shapedetection/barcode_detector_options.h" #include "third_party/blink/renderer/modules/shapedetection/barcode_detector_statics.h" #include "third_party/blink/renderer/modules/shapedetection/detected_barcode.h" #include "third_party/blink/renderer/platform/heap/heap.h"
diff --git a/third_party/blink/renderer/modules/shapedetection/face_detector.cc b/third_party/blink/renderer/modules/shapedetection/face_detector.cc index 82b3d00..8ba0e46 100644 --- a/third_party/blink/renderer/modules/shapedetection/face_detector.cc +++ b/third_party/blink/renderer/modules/shapedetection/face_detector.cc
@@ -9,6 +9,7 @@ #include "services/shape_detection/public/mojom/facedetection_provider.mojom-blink.h" #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_face_detector_options.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/geometry/dom_rect.h" @@ -16,7 +17,6 @@ #include "third_party/blink/renderer/core/workers/worker_thread.h" #include "third_party/blink/renderer/modules/imagecapture/point_2d.h" #include "third_party/blink/renderer/modules/shapedetection/detected_face.h" -#include "third_party/blink/renderer/modules/shapedetection/face_detector_options.h" #include "third_party/blink/renderer/modules/shapedetection/landmark.h" #include "third_party/blink/renderer/modules/shapedetection/shape_detection_type_converter.h" #include "third_party/blink/renderer/platform/heap/heap.h"
diff --git a/third_party/blink/renderer/modules/speech/speech_recognition_error_event.h b/third_party/blink/renderer/modules/speech/speech_recognition_error_event.h index a8f68f9..d41fb2e 100644 --- a/third_party/blink/renderer/modules/speech/speech_recognition_error_event.h +++ b/third_party/blink/renderer/modules/speech/speech_recognition_error_event.h
@@ -27,9 +27,9 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_SPEECH_SPEECH_RECOGNITION_ERROR_EVENT_H_ #include "third_party/blink/public/mojom/speech/speech_recognition_error_code.mojom-blink-forward.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_speech_recognition_error_event_init.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/modules/modules_export.h" -#include "third_party/blink/renderer/modules/speech/speech_recognition_error_event_init.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/storage/storage_event.cc b/third_party/blink/renderer/modules/storage/storage_event.cc index d0f475c..b2e82b7 100644 --- a/third_party/blink/renderer/modules/storage/storage_event.cc +++ b/third_party/blink/renderer/modules/storage/storage_event.cc
@@ -25,9 +25,9 @@ #include "third_party/blink/renderer/modules/storage/storage_event.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_storage_event_init.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/modules/storage/storage_area.h" -#include "third_party/blink/renderer/modules/storage/storage_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/audio_node.cc b/third_party/blink/renderer/modules/webaudio/audio_node.cc index 15496ff..b19f9cdf 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_node.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_node.cc
@@ -25,9 +25,9 @@ #include "third_party/blink/renderer/modules/webaudio/audio_node.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_node_options.h" #include "third_party/blink/renderer/modules/webaudio/audio_graph_tracer.h" #include "third_party/blink/renderer/modules/webaudio/audio_node_input.h" -#include "third_party/blink/renderer/modules/webaudio/audio_node_options.h" #include "third_party/blink/renderer/modules/webaudio/audio_node_output.h" #include "third_party/blink/renderer/modules/webaudio/audio_node_wiring.h" #include "third_party/blink/renderer/modules/webaudio/audio_param.h"
diff --git a/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.cc b/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.cc index 3dbf04f..c76bb18c 100644 --- a/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.cc +++ b/third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.cc
@@ -25,10 +25,10 @@ #include "third_party/blink/renderer/modules/webaudio/media_stream_audio_destination_node.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_audio_node_options.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_utils.h" #include "third_party/blink/renderer/modules/webaudio/audio_context.h" #include "third_party/blink/renderer/modules/webaudio/audio_node_input.h" -#include "third_party/blink/renderer/modules/webaudio/audio_node_options.h" #include "third_party/blink/renderer/modules/webaudio/base_audio_context.h" #include "third_party/blink/renderer/platform/bindings/exception_messages.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h"
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.h b/third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.h index f897a79..6496b0c 100644 --- a/third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.h +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.h
@@ -27,9 +27,9 @@ #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBAUDIO_OFFLINE_AUDIO_COMPLETION_EVENT_H_ #include "base/memory/scoped_refptr.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_offline_audio_completion_event_init.h" #include "third_party/blink/renderer/modules/event_modules.h" #include "third_party/blink/renderer/modules/webaudio/audio_buffer.h" -#include "third_party/blink/renderer/modules/webaudio/offline_audio_completion_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc index 95e6542..12bd89f 100644 --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
@@ -26,13 +26,13 @@ #include "third_party/blink/renderer/modules/webaudio/offline_audio_context.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_offline_audio_context_options.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/modules/webaudio/audio_listener.h" #include "third_party/blink/renderer/modules/webaudio/deferred_task_handler.h" #include "third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.h" -#include "third_party/blink/renderer/modules/webaudio/offline_audio_context_options.h" #include "third_party/blink/renderer/modules/webaudio/offline_audio_destination_node.h" #include "third_party/blink/renderer/platform/audio/audio_utilities.h" #include "third_party/blink/renderer/platform/bindings/exception_messages.h"
diff --git a/third_party/blink/renderer/modules/webaudio/stereo_panner_node.cc b/third_party/blink/renderer/modules/webaudio/stereo_panner_node.cc index ab31a3d..ea36b12 100644 --- a/third_party/blink/renderer/modules/webaudio/stereo_panner_node.cc +++ b/third_party/blink/renderer/modules/webaudio/stereo_panner_node.cc
@@ -4,11 +4,11 @@ #include "third_party/blink/renderer/modules/webaudio/stereo_panner_node.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_stereo_panner_options.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/modules/webaudio/audio_node_input.h" #include "third_party/blink/renderer/modules/webaudio/audio_node_output.h" #include "third_party/blink/renderer/modules/webaudio/base_audio_context.h" -#include "third_party/blink/renderer/modules/webaudio/stereo_panner_options.h" #include "third_party/blink/renderer/platform/audio/stereo_panner.h" #include "third_party/blink/renderer/platform/bindings/exception_messages.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h"
diff --git a/third_party/blink/renderer/modules/webgl/BUILD.gn b/third_party/blink/renderer/modules/webgl/BUILD.gn index f4a0e88..4b54f05 100644 --- a/third_party/blink/renderer/modules/webgl/BUILD.gn +++ b/third_party/blink/renderer/modules/webgl/BUILD.gn
@@ -28,8 +28,6 @@ "ext_srgb.h", "ext_texture_filter_anisotropic.cc", "ext_texture_filter_anisotropic.h", - "ext_texture_norm_16.cc", - "ext_texture_norm_16.h", "gl_string_query.h", "khr_parallel_shader_compile.cc", "khr_parallel_shader_compile.h",
diff --git a/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.cc b/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.cc deleted file mode 100644 index 5fc71e9a..0000000 --- a/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.cc +++ /dev/null
@@ -1,30 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "third_party/blink/renderer/modules/webgl/ext_texture_norm_16.h" - -namespace blink { - -EXTTextureNorm16::EXTTextureNorm16(WebGLRenderingContextBase* context) - : WebGLExtension(context) { - context->ExtensionsUtil()->EnsureExtensionEnabled("GL_EXT_texture_norm16"); -} - -WebGLExtensionName EXTTextureNorm16::GetName() const { - return kEXTTextureNorm16Name; -} - -EXTTextureNorm16* EXTTextureNorm16::Create(WebGLRenderingContextBase* context) { - return MakeGarbageCollected<EXTTextureNorm16>(context); -} - -bool EXTTextureNorm16::Supported(WebGLRenderingContextBase* context) { - return context->ExtensionsUtil()->SupportsExtension("GL_EXT_texture_norm16"); -} - -const char* EXTTextureNorm16::ExtensionName() { - return "EXT_texture_norm16"; -} - -} // namespace blink
diff --git a/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.h b/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.h deleted file mode 100644 index 67a4e40..0000000 --- a/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.h +++ /dev/null
@@ -1,27 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_EXT_TEXTURE_NORM_16_H_ -#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_EXT_TEXTURE_NORM_16_H_ - -#include "third_party/blink/renderer/modules/webgl/webgl_extension.h" - -namespace blink { - -class EXTTextureNorm16 final : public WebGLExtension { - DEFINE_WRAPPERTYPEINFO(); - - public: - static EXTTextureNorm16* Create(WebGLRenderingContextBase*); - static bool Supported(WebGLRenderingContextBase*); - static const char* ExtensionName(); - - explicit EXTTextureNorm16(WebGLRenderingContextBase*); - - WebGLExtensionName GetName() const override; -}; - -} // namespace blink - -#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_EXT_TEXTURE_NORM_16_H_
diff --git a/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.idl b/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.idl deleted file mode 100644 index 38158d1..0000000 --- a/third_party/blink/renderer/modules/webgl/ext_texture_norm_16.idl +++ /dev/null
@@ -1,19 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// https://www.khronos.org/registry/webgl/extensions/EXT_texture_norm16/ - -[ - NoInterfaceObject, - DoNotCheckConstants -] interface EXTTextureNorm16 { - const unsigned long R16_EXT = 0x822A; - const unsigned long RG16_EXT = 0x822C; - const unsigned long RGB16_EXT = 0x8054; - const unsigned long RGBA16_EXT = 0x805B; - const unsigned long R16_SNORM_EXT = 0x8F98; - const unsigned long RG16_SNORM_EXT = 0x8F99; - const unsigned long RGB16_SNORM_EXT = 0x8F9A; - const unsigned long RGBA16_SNORM_EXT = 0x8F9B; -};
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc index ed2ac98..3e16e97 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc +++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc
@@ -18,7 +18,6 @@ #include "third_party/blink/renderer/modules/webgl/ext_disjoint_timer_query_webgl2.h" #include "third_party/blink/renderer/modules/webgl/ext_float_blend.h" #include "third_party/blink/renderer/modules/webgl/ext_texture_filter_anisotropic.h" -#include "third_party/blink/renderer/modules/webgl/ext_texture_norm_16.h" #include "third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.h" #include "third_party/blink/renderer/modules/webgl/oes_texture_float_linear.h" #include "third_party/blink/renderer/modules/webgl/ovr_multiview_2.h" @@ -131,7 +130,6 @@ RegisterExtension<EXTFloatBlend>(ext_float_blend_); RegisterExtension<EXTTextureFilterAnisotropic>( ext_texture_filter_anisotropic_); - RegisterExtension<EXTTextureNorm16>(ext_texture_norm16_, kDraftExtension); RegisterExtension<KHRParallelShaderCompile>(khr_parallel_shader_compile_); RegisterExtension<OESTextureFloatLinear>(oes_texture_float_linear_); RegisterExtension<WebGLCompressedTextureASTC>(webgl_compressed_texture_astc_); @@ -159,7 +157,6 @@ visitor->Trace(ext_disjoint_timer_query_web_gl2_); visitor->Trace(ext_float_blend_); visitor->Trace(ext_texture_filter_anisotropic_); - visitor->Trace(ext_texture_norm16_); visitor->Trace(khr_parallel_shader_compile_); visitor->Trace(oes_texture_float_linear_); visitor->Trace(ovr_multiview2_);
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h index 1af81011..72aa8f63 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h +++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h
@@ -17,7 +17,6 @@ class EXTColorBufferFloat; class EXTFloatBlend; class EXTTextureFilterAnisotropic; -class EXTTextureNorm16; class OESTextureFloatLinear; class OVRMultiview2; class WebGLDebugRendererInfo; @@ -71,7 +70,6 @@ Member<EXTDisjointTimerQueryWebGL2> ext_disjoint_timer_query_web_gl2_; Member<EXTFloatBlend> ext_float_blend_; Member<EXTTextureFilterAnisotropic> ext_texture_filter_anisotropic_; - Member<EXTTextureNorm16> ext_texture_norm16_; Member<KHRParallelShaderCompile> khr_parallel_shader_compile_; Member<OESTextureFloatLinear> oes_texture_float_linear_; Member<OVRMultiview2> ovr_multiview2_;
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc index b4460256..22b216c 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
@@ -925,17 +925,6 @@ RenderbufferStorageHelper(target, samples, internalformat, width, height, function_name); break; - case GL_R16_EXT: - case GL_RG16_EXT: - case GL_RGBA16_EXT: - if (!ExtensionEnabled(kEXTTextureNorm16Name)) { - SynthesizeGLError(GL_INVALID_ENUM, function_name, - "EXT_texture_norm16 not enabled"); - return; - } - RenderbufferStorageHelper(target, samples, internalformat, width, height, - function_name); - break; default: SynthesizeGLError(GL_INVALID_ENUM, function_name, "invalid internalformat");
diff --git a/third_party/blink/renderer/modules/webgl/webgl_extension_name.h b/third_party/blink/renderer/modules/webgl/webgl_extension_name.h index cba33eaa..2126c6bc 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_extension_name.h +++ b/third_party/blink/renderer/modules/webgl/webgl_extension_name.h
@@ -19,9 +19,8 @@ kEXTFragDepthName, kEXTShaderTextureLODName, kEXTsRGBName, - kEXTTextureFilterAnisotropicName, - kEXTTextureNorm16Name, kKHRParallelShaderCompileName, + kEXTTextureFilterAnisotropicName, kOESElementIndexUintName, kOESFboRenderMipmapName, kOESStandardDerivativesName,
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc index 0250177..01a058bf 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -875,18 +875,6 @@ GL_DEPTH32F_STENCIL8, }; -// Exposed by EXT_texture_norm16 -static constexpr GLenum kSupportedInternalFormatsEXTTextureNorm16ES3[] = { - GL_R16_EXT, GL_RG16_EXT, GL_RGB16_EXT, - GL_RGBA16_EXT, GL_R16_SNORM_EXT, GL_RG16_SNORM_EXT, - GL_RGB16_SNORM_EXT, GL_RGBA16_SNORM_EXT}; - -static constexpr GLenum kSupportedFormatsEXTTextureNorm16ES3[] = {GL_RED, - GL_RG}; - -static constexpr GLenum kSupportedTypesEXTTextureNorm16ES3[] = { - GL_SHORT, GL_UNSIGNED_SHORT}; - // Exposed by EXT_color_buffer_float static const GLenum kSupportedInternalFormatsCopyTexImageFloatES3[] = { GL_R16F, GL_R32F, GL_RG16F, GL_RG32F, GL_RGB16F, @@ -1246,7 +1234,6 @@ is_web_gl_depth_texture_formats_types_added_ = false; is_ext_srgb_formats_types_added_ = false; is_ext_color_buffer_float_formats_added_ = false; - is_ext_texture_norm16_added_ = false; supported_internal_formats_.clear(); ADD_VALUES_TO_SET(supported_internal_formats_, kSupportedFormatsES2); @@ -7159,19 +7146,6 @@ } } -void WebGLRenderingContextBase::AddExtensionSupportedFormatsTypesWebGL2() { - if (!is_ext_texture_norm16_added_ && - ExtensionEnabled(kEXTTextureNorm16Name)) { - ADD_VALUES_TO_SET(supported_internal_formats_, - kSupportedInternalFormatsEXTTextureNorm16ES3); - ADD_VALUES_TO_SET(supported_tex_image_source_internal_formats_, - kSupportedInternalFormatsEXTTextureNorm16ES3); - ADD_VALUES_TO_SET(supported_formats_, kSupportedFormatsEXTTextureNorm16ES3); - ADD_VALUES_TO_SET(supported_types_, kSupportedTypesEXTTextureNorm16ES3); - is_ext_texture_norm16_added_ = true; - } -} - bool WebGLRenderingContextBase::ValidateTexImageSourceFormatAndType( const char* function_name, TexImageFunctionType function_type, @@ -7190,8 +7164,6 @@ if (!IsWebGL2OrHigher()) { AddExtensionSupportedFormatsTypes(); - } else { - AddExtensionSupportedFormatsTypesWebGL2(); } if (internalformat != 0 && @@ -7239,8 +7211,6 @@ if (!IsWebGL2OrHigher()) { AddExtensionSupportedFormatsTypes(); - } else { - AddExtensionSupportedFormatsTypesWebGL2(); } if (internalformat != 0 && supported_internal_formats_.find(internalformat) ==
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h index cf543c06..65b511a 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
@@ -1002,7 +1002,6 @@ bool is_web_gl_depth_texture_formats_types_added_ = false; bool is_ext_srgb_formats_types_added_ = false; bool is_ext_color_buffer_float_formats_added_ = false; - bool is_ext_texture_norm16_added_ = false; GLenumHashSet supported_internal_formats_; GLenumHashSet supported_tex_image_source_internal_formats_; @@ -1227,7 +1226,6 @@ GLenum target); void AddExtensionSupportedFormatsTypes(); - void AddExtensionSupportedFormatsTypesWebGL2(); // Helper function to check input internalformat/format/type for functions // Tex{Sub}Image taking TexImageSource source data. Generates GL error and
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_bind_group.cc b/third_party/blink/renderer/modules/webgpu/gpu_bind_group.cc index a994694d7..ca3ccbb 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_bind_group.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_bind_group.cc
@@ -4,9 +4,9 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_bind_group_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_binding.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h" #include "third_party/blink/renderer/modules/webgpu/gpu_buffer.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc index e62a454..63b2105 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc
@@ -4,8 +4,8 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_bind_group_layout_binding.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout_binding.h" #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc b/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc index 1a3ca1af..246ec62d 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.cc
@@ -7,12 +7,12 @@ #include "third_party/blink/renderer/bindings/modules/v8/double_sequence_or_gpu_color_dict.h" #include "third_party/blink/renderer/bindings/modules/v8/unsigned_long_sequence_or_gpu_extent_3d_dict.h" #include "third_party/blink/renderer/bindings/modules/v8/unsigned_long_sequence_or_gpu_origin_3d_dict.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_command_buffer_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/client_validation.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_buffer.h" #include "third_party/blink/renderer/modules/webgpu/gpu_buffer_copy_view.h" #include "third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_command_buffer_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_command_encoder_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_compute_pass_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_compute_pass_encoder.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_device.cc b/third_party/blink/renderer/modules/webgpu/gpu_device.cc index 05846cc..0088d55 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_device.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_device.cc
@@ -7,6 +7,7 @@ #include "gpu/command_buffer/client/webgpu_interface.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_uncaptured_error_event_init.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/modules/event_target_modules.h" @@ -27,7 +28,6 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_shader_module.h" #include "third_party/blink/renderer/modules/webgpu/gpu_texture.h" #include "third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event_init.h" #include "third_party/blink/renderer/platform/heap/heap.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.cc b/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.cc index 490d05b..bd3760a 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.cc
@@ -4,10 +4,10 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_pipeline_layout_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout_descriptor.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_queue.cc b/third_party/blink/renderer/modules/webgpu/gpu_queue.cc index d74c90a..b21d869 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_queue.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_queue.cc
@@ -8,15 +8,15 @@ #include "third_party/blink/renderer/bindings/modules/v8/unsigned_long_sequence_or_gpu_extent_3d_dict.h" #include "third_party/blink/renderer/bindings/modules/v8/unsigned_long_sequence_or_gpu_origin_2d_dict.h" #include "third_party/blink/renderer/bindings/modules/v8/unsigned_long_sequence_or_gpu_origin_3d_dict.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_command_buffer_descriptor.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_image_bitmap_copy_view.h" #include "third_party/blink/renderer/core/imagebitmap/image_bitmap.h" #include "third_party/blink/renderer/modules/webgpu/client_validation.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_command_buffer_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h" #include "third_party/blink/renderer/modules/webgpu/gpu_fence.h" #include "third_party/blink/renderer/modules/webgpu/gpu_fence_descriptor.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_image_bitmap_copy_view.h" #include "third_party/blink/renderer/modules/webgpu/gpu_texture.h" #include "third_party/blink/renderer/modules/webgpu/gpu_texture_copy_view.h" #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_image_bitmap_handler.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc index 2a2b75b0..8dd3a5ff 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_rasterization_state_descriptor.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_buffer_layout_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h" @@ -12,7 +13,6 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_depth_stencil_state_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h" #include "third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_rasterization_state_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_render_pipeline_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_stencil_state_face_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute_descriptor.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_sampler.cc b/third_party/blink/renderer/modules/webgpu/gpu_sampler.cc index b0d72e4d..71d1563 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_sampler.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_sampler.cc
@@ -4,9 +4,9 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_sampler.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_sampler_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_sampler_descriptor.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.cc b/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.cc index 49324779..d0bb7b7 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_swap_chain.cc
@@ -4,10 +4,10 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_swap_chain.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_swap_chain_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_canvas_context.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_swap_chain_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_texture.h" #include "third_party/blink/renderer/platform/heap/heap.h"
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_texture.cc b/third_party/blink/renderer/modules/webgpu/gpu_texture.cc index dae10ba..71366b5 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_texture.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_texture.cc
@@ -4,11 +4,11 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_texture.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_texture_descriptor.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_texture_view_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h" #include "third_party/blink/renderer/modules/webgpu/gpu_device.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_texture_descriptor.h" #include "third_party/blink/renderer/modules/webgpu/gpu_texture_view.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_texture_view_descriptor.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event.cc b/third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event.cc index 17a86ed..ca53b3d 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event.cc
@@ -4,7 +4,7 @@ #include "third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event.h" -#include "third_party/blink/renderer/modules/webgpu/gpu_uncaptured_error_event_init.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_uncaptured_error_event_init.h" namespace blink {
diff --git a/third_party/blink/renderer/modules/webshare/navigator_share.cc b/third_party/blink/renderer/modules/webshare/navigator_share.cc index cd728b16..2f48c59 100644 --- a/third_party/blink/renderer/modules/webshare/navigator_share.cc +++ b/third_party/blink/renderer/modules/webshare/navigator_share.cc
@@ -9,6 +9,7 @@ #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_share_data.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -16,7 +17,6 @@ #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/navigator.h" #include "third_party/blink/renderer/core/frame/web_feature.h" -#include "third_party/blink/renderer/modules/webshare/share_data.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h" #include "third_party/blink/renderer/platform/heap/heap.h"
diff --git a/third_party/blink/renderer/modules/webshare/navigator_share_test.cc b/third_party/blink/renderer/modules/webshare/navigator_share_test.cc index 21b224c8..ddf0b463 100644 --- a/third_party/blink/renderer/modules/webshare/navigator_share_test.cc +++ b/third_party/blink/renderer/modules/webshare/navigator_share_test.cc
@@ -9,13 +9,13 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_share_data.h" #include "third_party/blink/renderer/core/fileapi/file.h" #include "third_party/blink/renderer/core/fileapi/file_property_bag.h" #include "third_party/blink/renderer/core/frame/frame_test_helpers.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/testing/dummy_page_holder.h" -#include "third_party/blink/renderer/modules/webshare/share_data.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
diff --git a/third_party/blink/renderer/modules/xr/xr_session.cc b/third_party/blink/renderer/modules/xr/xr_session.cc index 933fbf1..cf0aa892 100644 --- a/third_party/blink/renderer/modules/xr/xr_session.cc +++ b/third_party/blink/renderer/modules/xr/xr_session.cc
@@ -15,6 +15,7 @@ #include "services/metrics/public/cpp/ukm_builders.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_xr_frame_request_callback.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_xr_hit_test_options_init.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/dom/element.h" #include "third_party/blink/renderer/core/frame/frame.h" @@ -32,7 +33,6 @@ #include "third_party/blink/renderer/modules/xr/xr_frame.h" #include "third_party/blink/renderer/modules/xr/xr_frame_provider.h" #include "third_party/blink/renderer/modules/xr/xr_hit_result.h" -#include "third_party/blink/renderer/modules/xr/xr_hit_test_options_init.h" #include "third_party/blink/renderer/modules/xr/xr_hit_test_source.h" #include "third_party/blink/renderer/modules/xr/xr_input_source_event.h" #include "third_party/blink/renderer/modules/xr/xr_input_sources_change_event.h"
diff --git a/third_party/blink/renderer/platform/bindings/v8_interface_bridge.h b/third_party/blink/renderer/platform/bindings/v8_interface_bridge.h index 4ba91b1..1a47738 100644 --- a/third_party/blink/renderer/platform/bindings/v8_interface_bridge.h +++ b/third_party/blink/renderer/platform/bindings/v8_interface_bridge.h
@@ -6,6 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_INTERFACE_BRIDGE_H_ #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" +#include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h" #include "third_party/blink/renderer/platform/bindings/wrapper_type_info.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" @@ -54,7 +55,16 @@ return ToScriptWrappable(receiver)->ToImpl<T>(); } + static bool HasInstance(v8::Isolate* isolate, v8::Local<v8::Value> value) { + return V8PerIsolateData::From(isolate)->HasInstance( + V8T::GetWrapperTypeInfo(), value); + } + // Migration adapter + static bool HasInstance(v8::Local<v8::Value> value, v8::Isolate* isolate) { + return HasInstance(isolate, value); + } + static void InstallContextDependentAdapter( v8::Local<v8::Context> context, const DOMWrapperWorld& world,
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_platform.h b/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_platform.h index 4c0a2f9..8fdc46bb 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_platform.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_peer_connection_handler_platform.h
@@ -81,8 +81,8 @@ virtual bool Initialize( const webrtc::PeerConnectionInterface::RTCConfiguration&, - const MediaConstraints&) = 0; - virtual void AssociateWithFrame(WebLocalFrame*) {} + const MediaConstraints&, + WebLocalFrame*) = 0; // Unified Plan: The list of transceivers after the createOffer() call. // Because of offerToReceive[Audio/Video] it is possible for createOffer() to
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 2cf92136..403bfa66 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -595,6 +595,7 @@ name: "DisplayLocking", origin_trial_feature_name: "DisplayLocking", status: "experimental", + implied_by: ["CSSRenderSubtree"], }, { name: "DocumentCookie", @@ -1149,6 +1150,7 @@ }, { name: "OffMainThreadCSSPaint", + status: "stable", }, { name: "OffscreenCanvasCommit",
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py index 30a099a..f2ae5a3 100755 --- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py +++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -169,6 +169,9 @@ 'base::ClampSub', 'base::MakeClampedNum', + # //base/template_util.h. + 'base::void_t', + # Debugging helpers from //base/debug are allowed everywhere. 'base::debug::.+',
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng index 1f36e0e..1094d3b 100644 --- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng +++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -71,11 +71,13 @@ crbug.com/591099 external/wpt/css/css-position/static-position/vrl-rtl-rtl.html [ Failure ] ### external/wpt/css/css-pseudo/ +crbug.com/457718 external/wpt/css/css-pseudo/marker-computed-size.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-003.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-003b.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-004.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-006.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-012.html [ Failure ] +crbug.com/457718 external/wpt/css/css-pseudo/marker-content-014.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-015.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-016.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-017.html [ Failure ]
diff --git a/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item b/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item index 2e98837..c962276 100644 --- a/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item +++ b/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item
@@ -44,7 +44,7 @@ crbug.com/982194 editing/selection/user-select/user-select-all.html [ Failure ] crbug.com/982194 editing/selection/vertical-lr-replaced-selection.html [ Failure ] crbug.com/982194 editing/shadow/compare-positions-in-nested-shadow.html [ Failure ] -crbug.com/982194 editing/text-iterator/first_letter_find_string_crash.html [ Crash ] +crbug.com/982194 editing/text-iterator/first_letter_find_string_crash.html [ Crash Pass ] crbug.com/982194 external/wpt/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm [ Pass ] crbug.com/982194 external/wpt/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm [ Pass ] crbug.com/626703 external/wpt/acid/acid3/test.html [ Pass ] @@ -86,12 +86,6 @@ crbug.com/982194 external/wpt/css/css-writig-modes/sizing-orthog-htb-in-vlr-011.xht [ Failure ] crbug.com/982194 external/wpt/css/css-writing-modes/inline-table-alignment-003.xht [ Failure ] crbug.com/982194 external/wpt/css/css-writing-modes/inline-table-alignment-005.xht [ Failure ] -crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-inline-htb-ltr.html [ Failure Pass ] -crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-inline-htb-rtl.html [ Failure Pass ] -crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-inline-vlr-ltr.html [ Failure Pass ] -crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-inline-vlr-rtl.html [ Failure Pass ] -crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-ltr.html [ Failure Pass ] -crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-rtl.html [ Failure Pass ] crbug.com/982194 external/wpt/css/cssom-view/elementsFromPoint-simple.html [ Failure ] crbug.com/982194 external/wpt/css/cssom-view/offsetTopLeft-trailing-space-inline.html [ Pass ] crbug.com/982194 external/wpt/css/csui/text-overflow-002.html [ Failure ] @@ -137,24 +131,23 @@ crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-safe-overflow-position-001.html [ Failure ] crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outde-padding-box-border-radius-001.html [ Failure ] crbug.com/982194 external/wpt/dom/ranges/Range-set.html [ Pass ] -crbug.com/982194 external/wpt/element-timing/background-image-multiple-elements.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/css-generated-text.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/element-only-when-fully-active.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/first-letter-background.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/fixed-id-identifier.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/observe-empty-attribute.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/observe-text.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/scroll-to-text.html [ Timeout ] -crbug.com/982194 external/wpt/element-timing/text-with-display-style.html [ Timeout ] +crbug.com/982194 external/wpt/element-timing/background-image-multiple-elements.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/css-generated-text.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/element-only-when-fully-active.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/first-letter-background.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/fixed-id-identifier.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/observe-empty-attribute.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/observe-text.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/scroll-to-text.html [ Pass Timeout ] +crbug.com/982194 external/wpt/element-timing/text-with-display-style.html [ Pass Timeout ] crbug.com/982194 external/wpt/feature-policy/experimental-features/lazyload/lazyload-enabled-tentative.sub.html [ Pass ] crbug.com/982194 external/wpt/feature-policy/experimental-features/lazyload/loading-frame-default-eager-disabled-tentative.sub.html [ Pass ] -crbug.com/982194 external/wpt/fetch/metadata/iframe.tentative.https.sub.html [ Pass Timeout ] crbug.com/982194 external/wpt/fetch/metadata/sec-fetch-dest/frame.tentative.https.sub.html [ Timeout ] crbug.com/982194 external/wpt/fetch/metadata/sec-fetch-dest/iframe.tentative.https.sub.html [ Timeout ] crbug.com/982194 external/wpt/fetch/metadata/sec-fetch-dest/window-open.tentative.https.sub.html [ Timeout ] crbug.com/970285 external/wpt/forced-high-contrast-colors-mode/forced-colors-mode-14.html [ Crash Failure ] crbug.com/852645 external/wpt/fullscreen/api/element-request-fullscreen-two-iframes-manual.html [ Timeout ] -crbug.com/982194 external/wpt/html/cross-origin-opener-policy/coop-sandbox.https.html [ Failure ] +crbug.com/982194 external/wpt/html/cross-origin-opener-policy/coop-sandbox.https.html [ Failure Pass ] crbug.com/982194 external/wpt/html/dom/elements/requirements-relating-to-bidirctional-algorithm-formatting-characters/dir-isolation-005c.html [ Failure ] crbug.com/982194 external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-vertical.html [ Failure ] crbug.com/736415 external/wpt/html/user-activation/activation-api-iframe.tenative.html [ Failure ] @@ -164,17 +157,15 @@ crbug.com/626703 external/wpt/infrastructure/testdriver/actions/eventOrder.html [ Timeout ] crbug.com/982194 external/wpt/intersection-observe/v2/scaled-target.html [ Failure ] crbug.com/982194 external/wpt/intersection-observer/v2/drop-shadow-filter-vertical-rl.html [ Failure ] -crbug.com/982194 external/wpt/largest-contentful-paint/larger-text.html [ Timeout ] -crbug.com/982194 external/wpt/largest-contentful-paint/observe-text.html [ Timeout ] -crbug.com/982194 external/wpt/largest-contentful-paint/text-with-display-style.html [ Timeout ] +crbug.com/982194 external/wpt/largest-contentful-paint/larger-text.html [ Pass Timeout ] +crbug.com/982194 external/wpt/largest-contentful-paint/observe-text.html [ Pass Timeout ] +crbug.com/982194 external/wpt/largest-contentful-paint/text-with-display-style.html [ Pass Timeout ] crbug.com/982194 external/wpt/pointerevents/extension/pointerevent_touch-action-pan-down-css_touch.html [ Timeout ] crbug.com/982194 external/wpt/pointerevents/extension/pointerevent_touch-action-pan-left-css_touch.html [ Timeout ] crbug.com/982194 external/wpt/pointerevents/extension/pointerevent_touch-action-pan-right-css_touch.html [ Timeout ] crbug.com/982194 external/wpt/pointerevents/extension/pointerevent_touch-action-pan-up-css_touch.html [ Timeout ] crbug.com/626703 external/wpt/screen-orientation/onchange-event.html [ Timeout ] crbug.com/626703 external/wpt/screen-orientation/orientation-reading.html [ Timeout ] -crbug.com/982194 external/wpt/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html [ Failure Pass ] -crbug.com/982194 external/wpt/uievents/click/click_event_target_siblings.html [ Pass Timeout ] crbug.com/982194 external/wpt/uievents/mouse/mouseevent_move_button-manual.html [ Timeout ] crbug.com/645988 external/wpt/uievents/order-of-events/focus-eventfocus-manual.html [ Crash Failure ] crbug.com/645988 external/wpt/uievents/order-of-events/focus-events/focus-manual.html [ Failure ] @@ -213,15 +204,10 @@ crbug.com/982194 fast/dom/Document/CaretRangeFromPoint/hittest-empty-line.html [ Failure ] crbug.com/982194 fast/dom/Document/CaretRangeFromPoint/hittest-outside-image.html [ Failure ] crbug.com/982194 fast/dom/Document/CaretRangeFromPoint/replace-element.html [ Failure ] -crbug.com/982194 fast/dom/elementsFromPoint/elementsFromPoint-inline.html [ Failure Pass ] crbug.com/982194 fast/dom/elementsFromPoint/elementsFromPoint-simple.html [ Failure ] crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html [ Failure ] -crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html [ Failure Pass ] crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-culled-inlines-between-silblings-bidi.html [ Failure ] -crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html [ Failure Pass ] crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html [ Failure ] -crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-inner-documents.html [ Failure Pass ] -crbug.com/982194 fast/dom/nodesFromRect/nodesFromRect-links-and-text.html [ Failure Pass ] crbug.com/874695 fast/events/autoscroll-iframe-no-scrolling.html [ Pass ] crbug.com/982194 fast/events/autoscroll-should-not-stop-on-keypress.html [ Failure ] crbug.com/663847 fast/events/context-no-deselect.html [ Failure ] @@ -229,7 +215,6 @@ crbug.com/346473 fast/events/drag-on-mouse-move-cancelled.html [ Failure ] crbug.com/982194 fast/events/event-on-culled-inline-with-pseudo.html [ Failure ] crbug.com/874695 fast/events/frame-detached-in-mousedown.html [ Pass ] -crbug.com/982194 fast/events/open-window-from-another-frame.html [ Pass Timeout ] crbug.com/982194 fast/events/pointerevents/mouse-node-remove.html [ Failure ] crbug.com/982194 fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Failure ] crbug.com/982194 fast/events/pointerevents/mouse-pointer-capture.html [ Failure ] @@ -244,8 +229,8 @@ crbug.com/591099 fast/events/touch/compositor-touch-hit-rects.html [ Failure ] crbug.com/982194 fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html [ Failure ] crbug.com/982194 fast/events/touch/gesture/gesture-tap-mouse-events.html [ Failure ] -crbug.com/874695 fast/forms/color/color-suggestion-picker-one-row-appearance.html [ Failure ] -crbug.com/874695 fast/forms/color/color-suggestion-picker-two-row-appearance.html [ Failure ] +crbug.com/874695 fast/forms/color/color-suggestion-picker-one-row-appearance.html [ Failure Pass ] +crbug.com/874695 fast/forms/color/color-suggestion-picker-two-row-appearance.html [ Failure Pass ] crbug.com/982194 fast/forms/label/label-selection-by-dragging.html [ Failure ] crbug.com/982194 fast/forms/label/label-selection-by-textSelection-and-click.html [ Failure ] crbug.com/874695 fast/forms/number/number-spinbutton-gets-disabled-or-readonly.html [ Pass ] @@ -280,8 +265,8 @@ crbug.com/451577 crbug.com/924308 http/tests/devtools/console/console-format-es6-2.js [ Crash Failure Pass Timeout ] crbug.com/451577 crbug.com/916975 http/tests/devtools/console/console-repeat-count.js [ Crash Failure Pass Timeout ] crbug.com/451577 http/tests/devtools/console/console-search.js [ Pass ] -crbug.com/967526 http/tests/devtools/console/console-uncaught-promise.js [ Failure Pass ] -crbug.com/982194 http/tests/devtools/coverage/decorations-after-script-formatter.js [ Timeout ] +crbug.com/967526 http/tests/devtools/console/console-uncaught-promise.js [ Pass ] +crbug.com/982194 http/tests/devtools/coverage/decorations-after-script-formatter.js [ Pass Timeout ] crbug.com/678482 http/tests/devtools/debugger/fetch-breakpoints.js [ Pass Timeout ] crbug.com/846997 http/tests/devtools/editor/text-editor-ctrl-d-1.js [ Pass Timeout ] crbug.com/850358 http/tests/devtools/editor/text-editor-enter-behaviour.js [ Pass Timeout ] @@ -291,7 +276,7 @@ crbug.com/937811 http/tests/devtools/elements/shadow/elements-panel-shadow-selection-on-refresh-2.js [ Pass Timeout ] crbug.com/937811 http/tests/devtools/elements/shadow/elements-panel-shadow-selection-on-refresh-3.js [ Pass Timeout ] crbug.com/959002 crbug.com/959042 http/tests/devtools/elements/styles-1/color-aware-property-value-edit.js [ Crash Pass Timeout ] -crbug.com/982194 http/tests/devtools/elements/styles-1/css-live-edit.js [ Timeout ] +crbug.com/982194 http/tests/devtools/elements/styles-1/css-live-edit.js [ Pass Timeout ] crbug.com/959002 crbug.com/959042 http/tests/devtools/elements/styles-1/edit-resource-referred-by-multiple-styletags.js [ Crash Pass Timeout ] crbug.com/510337 http/tests/devtools/elements/styles-1/edit-value-url-with-color.js [ Pass ] crbug.com/528419 http/tests/devtools/elements/styles-2/pseudo-elements.js [ Pass ] @@ -317,8 +302,8 @@ crbug.com/938200 http/tests/devtools/network/network-blocked-reason.js [ Timeout ] crbug.com/982194 http/tests/devtools/network/network-cookies-pane.js [ Failure ] crbug.com/679833 crbug.com/762529 http/tests/devtools/network/network-datareceived.js [ Crash Failure Timeout ] -crbug.com/759632 http/tests/devtools/network/network-datasaver-warning.js [ Failure Timeout ] -crbug.com/945629 http/tests/devtools/network/network-filters.js [ Pass Timeout ] +crbug.com/759632 http/tests/devtools/network/network-datasaver-warning.js [ Failure ] +crbug.com/945629 http/tests/devtools/network/network-filters.js [ Timeout ] crbug.com/817167 crbug.com/874695 http/tests/devtools/oopif/oopif-cookies-refresh.js [ Crash Failure Pass Timeout ] crbug.com/818076 http/tests/devtools/oopif/oopif-elements-navigate-in.js [ Pass ] crbug.com/874695 http/tests/devtools/persistence/persistence-mimetype-on-rename.js [ Pass ] @@ -327,7 +312,7 @@ crbug.com/849670 http/tests/devtools/service-workers/service-worker-v8-cache.js [ Timeout ] crbug.com/874695 crbug.com/954319 http/tests/devtools/sources/debugger-breakpoints/breakpoints-ui-in-multiple-workers.js [ Crash Pass Timeout ] crbug.com/874695 http/tests/devtools/sources/debugger-breakpoints/breakpoints-ui-shifted-breakpoint.js [ Pass ] -crbug.com/874695 http/tests/devtools/sources/debugger-breakpoints/dom-breakpoints.js [ Pass ] +crbug.com/874695 http/tests/devtools/sources/debugger-breakpoints/dom-breakpoints.js [ Crash Pass ] crbug.com/450493 crbug.com/912793 http/tests/devtools/sources/debugger-breakpoints/restore-locations-for-breakpoint-with-broken-source-map.js [ Crash Failure Pass Timeout ] crbug.com/874695 http/tests/devtools/sources/debugger-frameworks/frameworks-dom-xhr-event-breakpoints.js [ Pass ] crbug.com/450493 crbug.com/916975 http/tests/devtools/sources/debugger-ui/call-stack-show-more.js [ Crash Failure Pass Timeout ] @@ -338,7 +323,7 @@ crbug.com/874695 http/tests/devtools/sxg/sxg-cert-not-found.js [ Pass ] crbug.com/874695 http/tests/devtools/sxg/sxg-disable-cache.js [ Pass ] crbug.com/851363 http/tests/devtools/sxg/sxg-prefetch-fail.js [ Pass ] -crbug.com/851363 http/tests/devtools/sxg/sxg-prefetch.js [ Pass ] +crbug.com/851363 http/tests/devtools/sxg/sxg-prefetch.js [ Failure Pass ] crbug.com/420008 crbug.com/916975 http/tests/devtools/tracing/timeline-misc/timeline-event-causes.js [ Crash Failure Pass Timeout ] crbug.com/982194 http/tests/input/discard-events-to-unstable-iframe.html [ Failure ] crbug.com/982194 http/tests/inspector-protocol/target/target-expose-devtools-protocol.js [ Failure ] @@ -434,7 +419,7 @@ crbug.com/982194 paint/invalidation/scroll/line-in-scrolled-clipped-block.html [ Failure ] crbug.com/982194 paint/invalidation/scroll/overflow-scroll-body-appear.html [ Failure ] crbug.com/982194 paint/invalidation/scroll/overflow-scroll-delete.html [ Failure ] -crbug.com/982194 paint/invalidation/scroll/repaint-during-scroll-with-zoom.html [ Failure ] +crbug.com/982194 paint/invalidation/scroll/repaint-during-scroll-with-zoom.html [ Failure Pass ] crbug.com/982194 paint/invalidation/selection/invalidation-rect-includes-newline-for-rtl.html [ Failure ] crbug.com/982194 paint/invalidation/selection/invalidation-rect-includes-newline-for-vertical-lr.html [ Failure ] crbug.com/982194 paint/invalidation/selection/invalidation-rect-includes-newline-for-vertical-rl.html [ Failure ] @@ -958,7 +943,7 @@ crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-022.html [ Failure ] crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-inset-023.html [ Failure ] crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-declaration-01.html [ Failure Pass ] -crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-reference-01.html [ Failure Pass ] +crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-reference-01.html [ Failure ] crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-supports-01.html [ Failure Pass ] crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/logical-physical-mapping-001.html [ Failure ] crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-break-inside-001a.html [ Failure ] @@ -972,7 +957,6 @@ crbug.com/982194 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-006a.html [ Failure ] crbug.com/982194 external/wpt/encoding/eof-utf-8-three.html [ Failure ] crbug.com/982194 external/wpt/encoding/eof-utf-8-two.html [ Failure ] -crbug.com/982194 external/wpt/fetch/metadata/download.tentative.https.sub.html [ Failure Pass ] crbug.com/982194 external/wpt/forced-colors-mode/backplate/forced-colors-mode-backplate-06.html [ Failure ] crbug.com/982194 external/wpt/forced-colors-mode/backplate/forced-colors-mode-backplate-08.html [ Failure ] crbug.com/982194 external/wpt/forced-colors-mode/backplate/forced-colors-mode-backplate-10.html [ Failure ] @@ -1012,9 +996,9 @@ crbug.com/982194 external/wpt/infrastructure/reftest/reftest_fuzzy_ini_short.html [ Failure ] crbug.com/982194 external/wpt/intersection-observer/v2/blur-filter.html [ Failure ] crbug.com/982194 external/wpt/intersection-observer/v2/delay-test.html [ Failure Pass ] -crbug.com/982194 external/wpt/largest-contentful-paint/element-only-when-fully-active.html [ Timeout ] -crbug.com/982194 external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html [ Timeout ] -crbug.com/982194 external/wpt/largest-contentful-paint/toJSON.html [ Timeout ] +crbug.com/982194 external/wpt/largest-contentful-paint/element-only-when-fully-active.html [ Pass Timeout ] +crbug.com/982194 external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html [ Failure Timeout ] +crbug.com/982194 external/wpt/largest-contentful-paint/toJSON.html [ Pass Timeout ] crbug.com/982194 external/wpt/mathml/presentation-markup/direction/direction-008.html [ Failure ] crbug.com/982194 external/wpt/mathml/presentation-markup/direction/direction-overall.html [ Failure ] crbug.com/982194 external/wpt/mathml/presentation-markup/fractions/frac-color-002.html [ Failure ] @@ -1045,7 +1029,7 @@ crbug.com/982194 external/wpt/mathml/presentation-markup/scripts/subsup-legacy-scriptshift-attributes-001.tentative.html [ Failure ] crbug.com/982194 external/wpt/mathml/presentation-markup/scripts/underover-legacy-align-attribute-001.html [ Failure ] crbug.com/982194 external/wpt/mathml/presentation-markup/spaces/mspace-children.html [ Failure ] -crbug.com/982194 external/wpt/mathml/presentation-markup/tables/table-001.html [ Crash ] +crbug.com/982194 external/wpt/mathml/presentation-markup/tables/table-001.html [ Crash Failure ] crbug.com/982194 external/wpt/mathml/presentation-markup/tokens/ms-001.html [ Failure ] crbug.com/982194 external/wpt/mathml/relations/css-styling/color-002.html [ Failure ] crbug.com/982194 external/wpt/mathml/relations/css-styling/color-003.html [ Failure ] @@ -1321,7 +1305,6 @@ crbug.com/982194 fast/css/namespaces/003.xml [ Failure Pass ] crbug.com/982194 fast/css/namespaces/007.xml [ Failure Pass ] crbug.com/982194 fast/css/outline-auto-empty-rects.html [ Failure ] -crbug.com/982194 fast/css/text-overflow-ellipsis-vertical-hittest.html [ Failure Pass ] crbug.com/982194 fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html [ Failure ] crbug.com/982194 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-dynamic.html [ Failure ] crbug.com/982194 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html [ Failure ] @@ -1330,8 +1313,11 @@ crbug.com/982194 fast/events/mouse-relative-position.html [ Failure ] crbug.com/982194 fast/events/tabindex-focus-blur-all.html [ Pass ] crbug.com/982194 fast/events/touch/compositor-touch-hit-rects-list-translate.html [ Failure ] +crbug.com/982194 fast/forms/calendar-picker/calendar-picker-appearance-zoom125.html [ Failure ] +crbug.com/982194 fast/forms/date/date-appearance-basic.html [ Failure ] crbug.com/982194 fast/forms/floating-textfield-relayout.html [ Failure Pass ] crbug.com/982194 fast/forms/text/input-readonly-autoscroll.html [ Failure ] +crbug.com/982194 fast/forms/time/time-appearance-basic.html [ Failure ] crbug.com/982194 fast/hidpi/clip-text-in-hidpi.html [ Failure ] crbug.com/982194 fast/history/visited-link-hover-emphasis-color.html [ Failure ] crbug.com/982194 fast/history/visited-link-hover-text-decoration-color.html [ Failure ] @@ -1376,9 +1362,9 @@ crbug.com/982194 http/tests/devtools/profiler/heap-snapshot-location.js [ Pass ] crbug.com/982194 http/tests/devtools/resource-tree/resource-tree-crafted-frame-add.js [ Pass ] crbug.com/982194 http/tests/devtools/resource-tree/resource-tree-frame-in-crafted-frame.js [ Pass ] -crbug.com/982194 http/tests/devtools/resource-tree/resource-tree-frame-navigate.js [ Pass ] +crbug.com/982194 http/tests/devtools/resource-tree/resource-tree-frame-navigate.js [ Pass Timeout ] crbug.com/982194 http/tests/devtools/resource-tree/resource-tree-htmlimports.js [ Pass Timeout ] -crbug.com/982194 http/tests/devtools/service-workers/lazy-addeventlisteners.js [ Pass Timeout ] +crbug.com/982194 http/tests/devtools/service-workers/lazy-addeventlisteners.js [ Pass ] crbug.com/982194 http/tests/devtools/service-workers/service-worker-agents.js [ Pass ] crbug.com/982194 http/tests/devtools/service-workers/service-workers-force-update-on-page-load.js [ Pass ] crbug.com/982194 http/tests/devtools/service-workers/service-workers-redundant.js [ Pass ] @@ -1397,7 +1383,7 @@ crbug.com/982194 jquery/manipulation.html [ Pass Timeout ] crbug.com/982194 jquery/offset.html [ Pass ] crbug.com/982194 jquery/traversing.html [ Pass ] -crbug.com/982194 media/video-canvas-draw.html [ Failure ] +crbug.com/982194 media/video-canvas-draw.html [ Failure Pass ] crbug.com/982194 overflow/overflow-inline-003.html [ Failure ] crbug.com/982194 paint/background/background-clip-text-inline.html [ Failure ] crbug.com/982194 paint/invalidation/compositing/float-under-composited-inline.html [ Failure ] @@ -1479,13 +1465,12 @@ crbug.com/982194 virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/time-suggestion-picker-appearance.html [ Failure ] crbug.com/982194 virtual/form-controls-refresh-disabled/fast/forms/suggestion-picker/week-suggestion-picker-appearance.html [ Failure ] crbug.com/982194 virtual/form-controls-refresh-disabled/fast/forms/text/input-readonly-autoscroll.html [ Failure ] -crbug.com/982194 virtual/gpu-rasterization/images/2-comp.html [ Failure Pass ] crbug.com/956736 virtual/gpu-rasterization/images/imagemap-focus-ring-outline-color-not-inherited-from-map.html [ Failure ] crbug.com/982194 virtual/gpu/fast/canvas/OffscreenCanvas-zero-size-readback.html [ Crash ] crbug.com/982194 virtual/gpu/fast/canvas/canvas-arc-circumference.html [ Failure ] crbug.com/982194 virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill.html [ Failure ] crbug.com/982194 virtual/gpu/fast/canvas/canvas-ellipse-circumference.html [ Failure ] -crbug.com/866850 virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html [ Pass ] +crbug.com/866850 virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html [ Failure Pass ] crbug.com/982194 virtual/layout_ng_block_frag/external/wpt/css/css-break/fieldset-001.html [ Failure ] crbug.com/982194 virtual/layout_ng_block_frag/external/wpt/css/css-break/floats-and-text-narrow-and-short-dynamic.html [ Failure ] crbug.com/982194 virtual/layout_ng_block_frag/external/wpt/css/css-break/line-after-unbreakable-float-after-padding.html [ Failure ] @@ -1763,7 +1748,7 @@ crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/anonymous-flex-item-005.html [ Failure ] crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-005.xht [ Failure ] crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-007.xht [ Failure ] -crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-015.html [ Failure ] +crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-015.html [ Failure Pass ] crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flex-minimum-width-flex-items-007.xht [ Failure ] crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flexbox_inline.html [ Failure Pass ] crbug.com/982194 virtual/layout_ng_flex_box/external/wpt/css/css-flexbox/flexbox_justifycontent-center-overflow.html [ Failure ] @@ -1826,7 +1811,6 @@ crbug.com/346473 virtual/mouseevent_fractional/fast/events/drag-on-mouse-move-cancelled.html [ Failure ] crbug.com/982194 virtual/mouseevent_fractional/fast/events/event-on-culled-inline-with-pseudo.html [ Failure ] crbug.com/982194 virtual/mouseevent_fractional/fast/events/mouse-relative-position.html [ Failure ] -crbug.com/982194 virtual/mouseevent_fractional/fast/events/open-window-from-another-frame.html [ Pass Timeout ] crbug.com/982194 virtual/mouseevent_fractional/fast/events/pointerevents/mouse-node-remove.html [ Failure ] crbug.com/982194 virtual/mouseevent_fractional/fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Failure ] crbug.com/982194 virtual/mouseevent_fractional/fast/events/pointerevents/mouse-pointer-capture.html [ Failure ] @@ -1846,8 +1830,6 @@ crbug.com/982194 virtual/not-site-per-process/http/tests/devtools/debugger/fetch-breakpoints.js [ Pass Timeout ] crbug.com/982194 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/background-image-alpha.https.html [ Pass ] crbug.com/982194 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/invalid-image-pending-script.https.html [ Pass ] -crbug.com/982194 virtual/omt-worker-fetch/external/wpt/fetch/metadata/download.tentative.https.sub.html [ Failure Pass ] -crbug.com/982194 virtual/omt-worker-fetch/external/wpt/fetch/metadata/iframe.tentative.https.sub.html [ Pass Timeout ] crbug.com/982194 virtual/omt-worker-fetch/external/wpt/fetch/metadata/sec-fetch-dest/frame.tentative.https.sub.html [ Timeout ] crbug.com/982194 virtual/omt-worker-fetch/external/wpt/fetch/metadata/sec-fetch-dest/iframe.tentative.https.sub.html [ Timeout ] crbug.com/982194 virtual/omt-worker-fetch/external/wpt/fetch/metadata/sec-fetch-dest/window-open.tentative.https.sub.html [ Timeout ] @@ -1861,47 +1843,47 @@ crbug.com/982194 virtual/scalefactor200/external/wpt/css/filter-effects/css-filters-animation-combined-001.html [ Failure ] crbug.com/982194 virtual/scalefactor200/external/wpt/css/filter-effects/filtered-inline-is-container.html [ Failure ] crbug.com/982194 virtual/scalefactor200/external/wpt/css/filter-effects/filters-test-brightness-003.html [ Pass ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/background-image-multiple-elements.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/css-generated-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/element-only-when-fully-active.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/first-letter-background.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/fixed-id-identifier.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/observe-empty-attribute.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/observe-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/scroll-to-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/text-with-display-style.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/element-only-when-fully-active.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/larger-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/observe-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/text-with-display-style.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/toJSON.html [ Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/background-image-multiple-elements.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/css-generated-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/element-only-when-fully-active.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/first-letter-background.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/fixed-id-identifier.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/observe-empty-attribute.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/observe-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/scroll-to-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/element-timing/text-with-display-style.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/element-only-when-fully-active.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html [ Failure Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/larger-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/observe-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/text-with-display-style.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200/external/wpt/largest-contentful-paint/toJSON.html [ Pass Timeout ] crbug.com/982194 virtual/scalefactor200/fast/hidpi/static/pointerevents/pointerevent_touch-adjustment_click_target.html [ Pass ] crbug.com/982194 virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi.html [ Failure ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/background-image-multiple-elements.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/css-generated-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/element-only-when-fully-active.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/first-letter-background.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/fixed-id-identifier.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/observe-empty-attribute.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/observe-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/scroll-to-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/text-with-display-style.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/element-only-when-fully-active.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/larger-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/observe-text.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/text-with-display-style.html [ Timeout ] -crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/toJSON.html [ Timeout ] -crbug.com/982194 virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects-continuation.html [ Failure ] -crbug.com/982194 virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects.html [ Failure ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/background-image-multiple-elements.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/css-generated-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/element-only-when-fully-active.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/first-letter-background.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/fixed-id-identifier.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/observe-empty-attribute.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/observe-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/scroll-to-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/element-timing/text-with-display-style.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/element-only-when-fully-active.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/first-paint-equals-lcp-text.html [ Failure Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/larger-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/observe-text.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/text-with-display-style.html [ Pass Timeout ] +crbug.com/982194 virtual/scalefactor200withoutzoom/external/wpt/largest-contentful-paint/toJSON.html [ Pass Timeout ] +crbug.com/982194 virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects-continuation.html [ Failure Pass ] +crbug.com/982194 virtual/scroll_customization/fast/events/touch/compositor-touch-hit-rects.html [ Failure Pass ] crbug.com/982194 virtual/scroll_customization/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html [ Failure ] crbug.com/982194 virtual/scroll_customization/fast/events/touch/gesture/gesture-tap-mouse-events.html [ Failure ] crbug.com/982194 virtual/scroll_customization/fast/scrolling/scrollbar-mousedown-mouseup.html [ Crash Pass ] crbug.com/982194 virtual/speech-with-unified-autoplay/external/wpt/speech-api/SpeechSynthesis-speak-without-activation-fails.tentative.html [ Pass ] crbug.com/982194 virtual/stable/media/stable/video-object-fit-stable.html [ Failure Pass ] crbug.com/874695 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-disable-cache.js [ Pass ] -crbug.com/851363 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-prefetch-fail.js [ Failure Pass ] +crbug.com/851363 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-prefetch-fail.js [ Pass ] crbug.com/851363 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-prefetch.js [ Failure Pass ] crbug.com/982194 virtual/text-antialias/descent-clip-in-scaled-page.html [ Failure Pass ] crbug.com/982194 virtual/text-antialias/font-format-support-color-cff2-vertical.html [ Failure ] @@ -1909,7 +1891,7 @@ crbug.com/982194 virtual/text-antialias/selection/khmer-selection.html [ Failure ] crbug.com/982194 virtual/text-antialias/selection/repaint-glyph-bounds.html [ Failure ] crbug.com/982194 virtual/threaded-no-composited-antialiasing/animations/rotate-transform-equivalent.html [ Failure Pass ] -crbug.com/982194 virtual/threaded-no-composited-antialiasing/animations/timing/animation-duration-infinite.html [ Failure ] +crbug.com/982194 virtual/threaded-no-composited-antialiasing/animations/timing/animation-duration-infinite.html [ Failure Pass ] crbug.com/982194 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/lazyload-disabled-tentative.sub.html [ Failure ] crbug.com/982194 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/lazyload-enabled-tentative.sub.html [ Pass ] crbug.com/982194 virtual/threaded/external/wpt/feature-policy/experimental-features/lazyload/loading-frame-default-eager-disabled-tentative.sub.html [ Pass ] @@ -1923,7 +1905,6 @@ crbug.com/982194 virtual/unified-autoplay/external/wpt/feature-policy/experimental-features/lazyload/loading-frame-default-eager-disabled-tentative.sub.html [ Pass ] crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/html/semantics/document-metadata/the-link-element/stylesheet-change-href.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/html/semantics/scripting-1/the-script-element/css-module/utf8.tentative.html [ Pass ] -crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/basic.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none.html [ Failure ] @@ -1933,15 +1914,10 @@ crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/hittest-empty-line.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/hittest-outside-image.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/replace-element.html [ Failure ] -crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/elementsFromPoint/elementsFromPoint-inline.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/elementsFromPoint/elementsFromPoint-simple.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html [ Failure ] -crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-culled-inlines-between-silblings-bidi.html [ Failure ] -crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html [ Failure ] -crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-inner-documents.html [ Failure Pass ] -crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/nodesFromRect/nodesFromRect-links-and-text.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/shadow/gesture-tapHighlight-shadow-tree.html [ Pass ] crbug.com/982194 virtual/web-components-v0-disabled/fast/html/draggable-controls.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/html/details_summary/details-writing-mode-align-center.html [ Failure ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 93b7bf61..e01f580 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1227,6 +1227,7 @@ crbug.com/591099 virtual/layout_ng_block_frag/fast/multicol/span/inside-block-with-fixed-height.html [ Failure ] crbug.com/591099 virtual/layout_ng_block_frag/fast/multicol/span/invalid-spanner-in-abspos.html [ Failure ] crbug.com/591099 virtual/layout_ng_block_frag/fast/multicol/span/invalid-spanner-in-transform.html [ Failure ] +crbug.com/1040947 virtual/layout_ng_block_frag/fast/multicol/span/list-multi-column-crash.html [ Crash ] crbug.com/591099 virtual/layout_ng_block_frag/fast/multicol/span/nested-multicol.html [ Failure ] crbug.com/591099 virtual/layout_ng_block_frag/fast/multicol/span/outer-column-break-after-inner-spanner-2.html [ Failure ] crbug.com/591099 virtual/layout_ng_block_frag/fast/multicol/span/outer-column-break-after-inner-spanner-and-float.html [ Failure ] @@ -2266,6 +2267,9 @@ crbug.com/400829 virtual/stable/media/stable/video-object-fit-stable.html [ Failure ] crbug.com/400829 virtual/audio-service/media/stable/video-object-fit-stable.html [ Failure ] +# Source map asyncification requires some 3-way changes with the DevTools frontend. +crbug.com/1032016 http/tests/devtools/sources/debugger-breakpoints/breakpoints-ui-shifted-breakpoint.js [ Pass Failure Timeout ] + # We only want to run one of the web-animations-api tests in stable mode. crbug.com/441553 virtual/stable/web-animations-api/* [ Skip ] # These tests *only* run in stable, to verify that these features are unsupported and throw exceptions. @@ -4008,7 +4012,6 @@ crbug.com/1031667 external/wpt/css/css-pseudo/marker-content-009.tentative.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-content-010.html [ Failure ] crbug.com/1031667 external/wpt/css/css-pseudo/marker-content-011.tentative.html [ Failure ] -crbug.com/1031667 external/wpt/css/css-pseudo/marker-content-014.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-font-variant-numeric-normal.html [ Failure ] crbug.com/457718 external/wpt/css/css-pseudo/marker-list-style-position.html [ Failure ] @@ -6313,7 +6316,6 @@ crbug.com/webrtc/11228 virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-mandatory-getStats.https.html [ Pass Failure ] # Sheriff 2020-01-08 -crbug.com/850170 virtual/reporting-api/external/wpt/content-security-policy/reporting-api/reporting-api-doesnt-send-reports-without-violation.https.sub.html [ Pass Timeout ] crbug.com/1039643 [ Win ] external/wpt/content-security-policy/object-src/object-src-url-embed-allowed.html [ Pass Timeout ] # Failures that appeared while fuzzy-diff was on. TODO(jonross) triage these and @@ -6412,3 +6414,13 @@ # Sheriff 2020-01-14 crbug.com/1041973 external/wpt/html/semantics/forms/constraints/form-validation-reportValidity.html [ Pass Failure ] crbug.com/1041973 virtual/web-components-v0-disabled/external/wpt/html/semantics/forms/constraints/form-validation-reportValidity.html [ Pass Failure ] + +# Sheriff 2020-01-15 +crbug.com/1042199 external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups.https.html [ Pass Failure ] +crbug.com/1041451 virtual/gpu-rasterization-disable-yuv/images/yuv-decode-eligible/color-profile-filter.html [ Pass Failure ] + +# Disabled for landing devtools changes +crbug.com/1030746 http/tests/devtools/sources/debugger-ui/sourcemap-src-not-loaded.js [ Pass Failure ] + +# Disable for landing devtools changes +crbug.com/1006759 http/tests/devtools/console/argument-hints.js [ Pass Failure ]
diff --git a/third_party/blink/web_tests/accessibility/aria-owns-sends-notification.html b/third_party/blink/web_tests/accessibility/aria-owns-sends-notification.html index 3d85387..c240f330 100644 --- a/third_party/blink/web_tests/accessibility/aria-owns-sends-notification.html +++ b/third_party/blink/web_tests/accessibility/aria-owns-sends-notification.html
@@ -9,13 +9,22 @@ <script> async_test(function(t) { var axFutureParent = accessibilityController.accessibleElementById("future_parent"); - assert_equals(axFutureParent.childrenCount, 0); - var listener = function(notification) { + var testRunner = function*() { + assert_equals(axFutureParent.childrenCount, 0); + + var notification = yield; + assert_equals(notification, "TextChanged"); + + var notification = yield; assert_equals(notification, "ChildrenChanged"); assert_equals(axFutureParent.childrenCount, 1); - - axFutureParent.removeNotificationListener(listener); - t.done(); + }(); + testRunner.next(); + var listener = function(notification) { + if (testRunner.next(notification).done) { + axFutureParent.removeNotificationListener(listener); + t.done(); + } }; axFutureParent.addNotificationListener(listener); var futureParent = document.getElementById("future_parent");
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json index 944075b8..c6e30a6 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json
@@ -182205,7 +182205,7 @@ "web-nfc/NDEFWriter-document-hidden-manual.https-expected.txt": [ [] ], - "web-nfc/NDEFWriter_push.https-expected.txt": [ + "web-nfc/NDEFWriter_write.https-expected.txt": [ [] ], "web-nfc/OWNERS": [ @@ -319863,9 +319863,9 @@ {} ] ], - "web-nfc/NDEFWriter_push.https.html": [ + "web-nfc/NDEFWriter_write.https.html": [ [ - "web-nfc/NDEFWriter_push.https.html", + "web-nfc/NDEFWriter_write.https.html", {} ] ], @@ -478294,7 +478294,7 @@ "testharness" ], "lint.whitelist": [ - "425730feea72429b66926298d3716b8164648211", + "1b102e4e03cc42f9b3d9774ed3ebbc42ede82c7f", "support" ], "loading/lazyload/META.yml": [ @@ -481214,7 +481214,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/cross-http.keep-scheme.https.html": [ - "7c3ca228d795bc7cd13d637f05baea5e1c0c61a6", + "e6549e0043a03745999831598e7c512f43e6e5f6", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481222,7 +481222,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/cross-http.no-redirect.https.html": [ - "fc39dbd181e28ac12c5eedc544f1291e580f6bb2", + "a5d9f2056765fb3abefdbc98c74f994834006d87", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/cross-http.no-redirect.https.html.headers": [ @@ -481230,7 +481230,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/cross-http.swap-scheme.https.html": [ - "7e4238e5675f094aa8ab3a00daf4bbe0f27fd6f4", + "284fe5316dc9b2a56da434c434b772a420a00395", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481238,7 +481238,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-http.keep-scheme.https.html": [ - "64bc8adb8d6c6b92e582ec8f2014c8a27056b9c5", + "c95e54a13f5c0d65aed1982c7d725a068dd6d467", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-http.keep-scheme.https.html.headers": [ @@ -481246,7 +481246,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-http.no-redirect.https.html": [ - "9c47757780e3315da78dd4b6709fc1cd5b16ac65", + "12e964d5243fbf7e122cd858d4238ffd10449a3b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-http.no-redirect.https.html.headers": [ @@ -481254,7 +481254,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-http.swap-scheme.https.html": [ - "a298e3f347fa3ab1e1a3c7c6f6c960bb7a8482f5", + "8d2b49a4823895fb0a3602dfc160b2bd34ef86a7", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-http.swap-scheme.https.html.headers": [ @@ -481262,7 +481262,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-https.keep-scheme.https.html": [ - "7da3e5a2ddeb567e2cf27ee871985999fa0833f7", + "c82f589246ff8f79b165cf74f38066d819fcb605", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-https.keep-scheme.https.html.headers": [ @@ -481270,7 +481270,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-https.no-redirect.https.html": [ - "b193871764070557b40a560de3911917de30261e", + "d475bbe0cf5daf22ba350215810226ff4c80bd2c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/audio-tag/same-https.no-redirect.https.html.headers": [ @@ -481278,7 +481278,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/cross-http.keep-scheme.https.html": [ - "2604c38b67f2144ac221b5a24f1d980c83780508", + "0f4d641ff8fbd6ee5968dc0a4a002c441e229c21", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/cross-http.keep-scheme.https.html.headers": [ @@ -481286,7 +481286,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/cross-http.no-redirect.https.html": [ - "8a297d62c48a33e251f60ac21889d8026258841d", + "5be5db155489b42ba2d26c25ff86204e99ba9640", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/cross-http.no-redirect.https.html.headers": [ @@ -481294,7 +481294,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/cross-http.swap-scheme.https.html": [ - "a9bb4fe2853f5389accdf669065ce63038104731", + "3eefb62b4d1a90b4711c7f1861225d1eb49b0810", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/cross-http.swap-scheme.https.html.headers": [ @@ -481302,7 +481302,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-http.keep-scheme.https.html": [ - "75d150dba77f2a495f0e8561353f128b8a6b6fe6", + "984b353c92a0b0e202cca5343a71616065df1e2b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-http.keep-scheme.https.html.headers": [ @@ -481310,7 +481310,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-http.no-redirect.https.html": [ - "8203cb7e1dff8c95023d9ee0bb8071e5ee4f9777", + "46234a7168379884f162f6ed5842440f05ce6e7c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-http.no-redirect.https.html.headers": [ @@ -481318,7 +481318,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-http.swap-scheme.https.html": [ - "54114ff754bed04baa91e40420e5261f6393c2a4", + "27b956ee0b211fe04701cfd2688d8e8e9e5655c1", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-http.swap-scheme.https.html.headers": [ @@ -481326,7 +481326,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-https.keep-scheme.https.html": [ - "9a7cc113b335836f2b0cfd1c9536a18dfae49c68", + "52f3cb99ada0cc777fb80f0ec6195144c92b584d", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-https.keep-scheme.https.html.headers": [ @@ -481334,7 +481334,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-https.no-redirect.https.html": [ - "86c56bdfef5fd6ac2e58955b0cd6ea635df165d1", + "303e047ba53c9e6e8ab60a757a8b02bbbb8750c2", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/beacon/same-https.no-redirect.https.html.headers": [ @@ -481342,7 +481342,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/cross-http.keep-scheme.https.html": [ - "d98fee3b05f6bd04084047543bbe6dc1d13bb9df", + "ea9697785b3390ad80c90d0f9a431aae5aecf213", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/cross-http.keep-scheme.https.html.headers": [ @@ -481350,7 +481350,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/cross-http.no-redirect.https.html": [ - "6f111d1262329a6a76f7fc28d8d226d38e3e2e50", + "8a29645586171e39db511bd04cbc3d2f58ca0134", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/cross-http.no-redirect.https.html.headers": [ @@ -481358,7 +481358,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/cross-http.swap-scheme.https.html": [ - "0b35f8b6d90a5751f3c42233c454b5bdcd9fc71b", + "c080c346ccba1d790f4928fedcfdea1c6358eda1", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/cross-http.swap-scheme.https.html.headers": [ @@ -481366,7 +481366,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-http.keep-scheme.https.html": [ - "b96a2125eb64062371982798c9d0b5e01dc1aeab", + "ea9c18d6a81b4e9c355286d9f0f19e416665d511", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-http.keep-scheme.https.html.headers": [ @@ -481374,7 +481374,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-http.no-redirect.https.html": [ - "280a9cdc6b80113986a34d1ad4822f8965f8df93", + "dfbd794400c75b35558114d94c83d9a9a47d61d5", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-http.no-redirect.https.html.headers": [ @@ -481382,7 +481382,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-http.swap-scheme.https.html": [ - "a9063e42946cd3f8026cc7b1e361fa2375c44dc9", + "2e6296c483cec27a18c742a5126ab2a81fd797ae", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-http.swap-scheme.https.html.headers": [ @@ -481390,7 +481390,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-https.keep-scheme.https.html": [ - "4e2f750fd1daab399b4c2217ffa3f03fefb3c651", + "34f1b72647cf216b7208f6ea3b9c31ef30361f4f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-https.keep-scheme.https.html.headers": [ @@ -481398,7 +481398,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-https.no-redirect.https.html": [ - "74817ec7dae18b74dedf21421437a028a9b28785", + "71a29f3f2d4b26b5b189352453e84ed8eca1782d", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/fetch/same-https.no-redirect.https.html.headers": [ @@ -481406,7 +481406,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/cross-http.keep-scheme.https.html": [ - "4418c78d3364ecce568fde057d02c609248faeb4", + "58b9064284f30d068ad77303d051cde923ba2157", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481414,7 +481414,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/cross-http.no-redirect.https.html": [ - "d2c26b92dcccac32146b5ae73beac9b38ff822d5", + "45b824720b550d783b0e7a5a4f9e7a40022689c3", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/cross-http.no-redirect.https.html.headers": [ @@ -481422,7 +481422,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/cross-http.swap-scheme.https.html": [ - "30ab7af050c5c4560b51a607d2524b84ba5d38a7", + "1a9e874ba75fc0802dc4b0ef7cca2448e469a3ca", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481430,7 +481430,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-http.keep-scheme.https.html": [ - "36191f7290bccb9cb856f259a836ce2727c89b66", + "459eb2c5eb88e115e3e9bd42f73c2a2362513e63", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-http.keep-scheme.https.html.headers": [ @@ -481438,7 +481438,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-http.no-redirect.https.html": [ - "8cdd95bf999c565af4d98a7674178cbe66e3b5ab", + "e49927264fd2ce3b7d7dddd379c5dd6f5abbe56e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-http.no-redirect.https.html.headers": [ @@ -481446,7 +481446,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-http.swap-scheme.https.html": [ - "62a3562af1d6f0addadb724a7fd0058171c68f71", + "388e5312823cacc64f45ac3b880bdd2ac1a4158c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-http.swap-scheme.https.html.headers": [ @@ -481454,7 +481454,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-https.keep-scheme.https.html": [ - "d8687bd8b6e2260c57f48f8d20e150773c327487", + "83297b91af32c31a15132e9cfab61457f0ddc818", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-https.keep-scheme.https.html.headers": [ @@ -481462,7 +481462,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-https.no-redirect.https.html": [ - "ffa2e47c8a158cb17c30c8e95b67dcc277deb210", + "951b0aa295ec5846cbc86cf3ef8634fc05c507d9", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/img-tag/same-https.no-redirect.https.html.headers": [ @@ -481470,7 +481470,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/cross-http.keep-scheme.https.html": [ - "7ee418573447506286e5148c38dc42a12bb39869", + "4ca29b6c059db7f2998901bd5e245be8e4608a96", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481478,7 +481478,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/cross-http.no-redirect.https.html": [ - "be00ef5d27de4ba371ffbf13de572ad6027ab5fa", + "edcf944a7489fa1b33b0743838918e116d1849c9", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/cross-http.no-redirect.https.html.headers": [ @@ -481486,7 +481486,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/cross-http.swap-scheme.https.html": [ - "9bed22b198fec904c3ebfca6687b504b9fb10944", + "c408c72d125c499b9f440ab122d50d4c1dd0e393", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481494,7 +481494,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-http.keep-scheme.https.html": [ - "3849927c9b388ae822d9b9bb4765cf9278f2112c", + "6eabfab8234e9d33a4149d2a22413fa750cfccbc", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-http.keep-scheme.https.html.headers": [ @@ -481502,7 +481502,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-http.no-redirect.https.html": [ - "cdde11b1449e35b83879a88eefbe660cf4f2f50b", + "4f823de23e66c202d2cd93de879536f7409b3cc0", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-http.no-redirect.https.html.headers": [ @@ -481510,7 +481510,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-http.swap-scheme.https.html": [ - "e9bcc9e6bf7b9f66557c81269cc3801b4dcefd8a", + "96a08a133b3a998154b87c08af7afc28d92f164d", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-http.swap-scheme.https.html.headers": [ @@ -481518,7 +481518,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-https.keep-scheme.https.html": [ - "493d92e34f9dcb570443e0466f2da990c0dbc58f", + "8f3414e493fc658865d2121c2b47c7aeeea3619c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-https.keep-scheme.https.html.headers": [ @@ -481526,7 +481526,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-https.no-redirect.https.html": [ - "69ab08e8f306604a464d529d8f559746d78360fc", + "b9b3a61d3cda8852ba6c1545f5bdc7e3b2793abd", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-css-tag/same-https.no-redirect.https.html.headers": [ @@ -481534,7 +481534,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/cross-http.keep-scheme.https.html": [ - "30594cc754716722bb9d6c31693a8e7dca087f4b", + "cd95c8c3aef41ed8a24e7a5e56285001f4b8583d", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481542,7 +481542,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/cross-http.no-redirect.https.html": [ - "533309e93b363f28fcdf576ca660b27941be4c9a", + "a21b718800e6f18c5ec96fcab3a1a25947497b26", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/cross-http.no-redirect.https.html.headers": [ @@ -481550,7 +481550,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/cross-http.swap-scheme.https.html": [ - "5f8ce108fc61010716025b797c056e3abff7b1e2", + "99483c30b02541ee6067f67895b4d4675e984955", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481558,7 +481558,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-http.keep-scheme.https.html": [ - "076ecb8328dedccd92e9f743451ec829cd542bb6", + "6020508010cd804b201fe2dad01a0ec6dfd8fe2c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-http.keep-scheme.https.html.headers": [ @@ -481566,7 +481566,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-http.no-redirect.https.html": [ - "534d3a134288ffa469d38370593534c792257e39", + "8b6714264730f29dee3168cda404bceb40fa8e1f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-http.no-redirect.https.html.headers": [ @@ -481574,7 +481574,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-http.swap-scheme.https.html": [ - "cd87071760b6235b8382a0519b430b31c33353dd", + "29a0d46a8a51b66615a3584c6301f0fd42f43f5a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-http.swap-scheme.https.html.headers": [ @@ -481582,7 +481582,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-https.keep-scheme.https.html": [ - "1f1b6d12361497b2bd48aa7359783f3d2f38f478", + "0ba438eee6ea620df44100cc2a938fcdf5931490", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-https.keep-scheme.https.html.headers": [ @@ -481590,7 +481590,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-https.no-redirect.https.html": [ - "f8cf49fd07eaaa34aadef4ed5f47ce135dea0e9b", + "555c53485eca88bf4674c4cd6198b41db1cdfb1f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag/same-https.no-redirect.https.html.headers": [ @@ -481598,7 +481598,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/cross-http.keep-scheme.https.html": [ - "de3c2cafe69ddfd53c3af562df08261153d4eb86", + "828db98e0dba2751e6d20e435228c2c9ae9801b2", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481606,7 +481606,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/cross-http.no-redirect.https.html": [ - "ee9625d31ebf9f00acd07a7d6ad7a3a91d762d6b", + "1dace197dd27051a27e4e22186ac6cb41e6fbd3a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/cross-http.no-redirect.https.html.headers": [ @@ -481614,7 +481614,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/cross-http.swap-scheme.https.html": [ - "ab0a387f7c5ab942025eaaaf46073a2ac47d7d32", + "30b3c5bb3cf1da35d25b2c3fb10fbcbac4f79cbf", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481622,7 +481622,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-http.keep-scheme.https.html": [ - "edbb3f9f2db3c06c9bdef86de1fd2e940ded8cdb", + "ec9eb5b8f2c7bb853bd121649bf7f316f36165f5", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-http.keep-scheme.https.html.headers": [ @@ -481630,7 +481630,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-http.no-redirect.https.html": [ - "72ae7e512a62f12b84f2a3b7fbd2afb5add7baea", + "4fb39defdf916bbb32ca5f7e9cab1873d557ee2b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-http.no-redirect.https.html.headers": [ @@ -481638,7 +481638,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-http.swap-scheme.https.html": [ - "fb969da6369155f1047a398479b91b80b902ac4e", + "01676bab33803db2d33224de4221284becdf6e25", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-http.swap-scheme.https.html.headers": [ @@ -481646,7 +481646,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-https.keep-scheme.https.html": [ - "c537a645e006a6f8caf8960643ce3a24b6969490", + "ac1e85311546285d7e40eb1ea3cbe67c10b50bea", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-https.keep-scheme.https.html.headers": [ @@ -481654,7 +481654,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-https.no-redirect.https.html": [ - "ea3e82ac9f4ea031b550237fab47942954215a93", + "e248122edeb61ef753dd8f70d4dd92e956e70e88", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/object-tag/same-https.no-redirect.https.html.headers": [ @@ -481662,7 +481662,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/cross-http.keep-scheme.https.html": [ - "6ad20e5a28bb603f278046f9f22d160e47fed739", + "6417081f9fe189dd6a7ae84e754a88b8203e9a44", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481670,7 +481670,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/cross-http.no-redirect.https.html": [ - "533eb0ba8fb65fa701bd086ce97dacc716f76624", + "2c3f9e1cbfacab2594f94cc350c4f939c1dc1f63", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/cross-http.no-redirect.https.html.headers": [ @@ -481678,7 +481678,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/cross-http.swap-scheme.https.html": [ - "6c531f3cbcfd698bb81fddc2975662ed0d056a4b", + "886e6ef82fd8187eb7bd327e7c6ee934b36bb430", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481686,7 +481686,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-http.keep-scheme.https.html": [ - "d46d6f40430aaf23e7e6daefa7ad3e24cbdb042d", + "75289034c921de435915c60f30c8d2bfc7290ce4", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-http.keep-scheme.https.html.headers": [ @@ -481694,7 +481694,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-http.no-redirect.https.html": [ - "981d6c5a2ad536bbd6337fbbdbb41c5a6e30b41e", + "52a421f7428cd1dca2879505ab1c8c06c26611a7", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-http.no-redirect.https.html.headers": [ @@ -481702,7 +481702,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-http.swap-scheme.https.html": [ - "68233cd9b21eeb8cee00e1c38074694f370deff4", + "26ed43eca371636bc974caa31f9fd811641db4f4", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-http.swap-scheme.https.html.headers": [ @@ -481710,7 +481710,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-https.keep-scheme.https.html": [ - "e702aef5b02d5260107286f07dad8b7ad765dcfe", + "6d10711d638f4748a864c28ca680566d3e477d3d", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-https.keep-scheme.https.html.headers": [ @@ -481718,7 +481718,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-https.no-redirect.https.html": [ - "b26d44db206e9780a46d216f713165ae270eaeb2", + "fe4da56e32a76755c5448b710c006f88b6597020", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/picture-tag/same-https.no-redirect.https.html.headers": [ @@ -481726,7 +481726,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/cross-http.keep-scheme.https.html": [ - "727fc11dc385f59e8df94fe8901007a9572a6d07", + "a5f903c2fd262253b8876177a0416195fd52a6bd", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481734,7 +481734,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/cross-http.no-redirect.https.html": [ - "9b416e87fb1434b37048d00afb0e9916a45abbbc", + "f3594a9c55c1dd90503a0b0567b462fabca3407b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/cross-http.no-redirect.https.html.headers": [ @@ -481742,7 +481742,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/cross-http.swap-scheme.https.html": [ - "fd6c3be8ae39572851ff5b3d0d12fe76d74d2192", + "1933b3753a23bb5a5b657c9888dba0f1697658c8", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481750,7 +481750,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-http.keep-scheme.https.html": [ - "479be7863485bd49ff87e1ca0b5d724172ae134f", + "bfc3391e7d4ad99ad2d1f9d3feec688848c8deee", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-http.keep-scheme.https.html.headers": [ @@ -481758,7 +481758,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-http.no-redirect.https.html": [ - "c32977196a997ddff7a8272723ba8bf726927941", + "712f802dc160d1ee8314b1b408b30ce31458eca5", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-http.no-redirect.https.html.headers": [ @@ -481766,7 +481766,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-http.swap-scheme.https.html": [ - "ba13e682fdb2b710e7f930cf2d7f578681cfc09c", + "c70728730d811944707bfdef009ed248cb5b999b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-http.swap-scheme.https.html.headers": [ @@ -481774,7 +481774,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-https.keep-scheme.https.html": [ - "01b37600deeed9610f5f8fff92b2debbf2fb90fd", + "d58c20a049b88b5af4a233194c217cbd53468112", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-https.keep-scheme.https.html.headers": [ @@ -481782,7 +481782,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-https.no-redirect.https.html": [ - "7d240ececc162eb02c01250efe2fd26de7b73980", + "3d29665067f481ae779acf4d8dfd21330fec92e4", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/script-tag/same-https.no-redirect.https.html.headers": [ @@ -481790,7 +481790,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/cross-http.keep-scheme.https.html": [ - "8eca0a7179aeddc5422fa248a7771ed6d7e843c0", + "8c6b5a912484bf1267a05bcf31d9d2b761ed852a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/cross-http.keep-scheme.https.html.headers": [ @@ -481798,7 +481798,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/cross-http.no-redirect.https.html": [ - "1141ccae3e465c8ee76d5f891294e7c790dc5e14", + "8663d092110de470f5ad9368602c326d943ab48a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/cross-http.no-redirect.https.html.headers": [ @@ -481806,7 +481806,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/cross-http.swap-scheme.https.html": [ - "d926f5ec45c244771754f47e879c4f6fea18b833", + "89256a2715bf2a754196f03241d93b25ecefae89", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/cross-http.swap-scheme.https.html.headers": [ @@ -481814,7 +481814,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-http.keep-scheme.https.html": [ - "e82185a056c9f12b127a28cc521a0f55e862ccf0", + "00ad7103d121af3a7e067ff02f94a227ff56e400", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-http.keep-scheme.https.html.headers": [ @@ -481822,7 +481822,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-http.no-redirect.https.html": [ - "ed122925efedc3088b3b41e26e36e62a4ee59d44", + "da39ce62969111d3f6d60f4187b909c16f3dee41", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-http.no-redirect.https.html.headers": [ @@ -481830,7 +481830,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-http.swap-scheme.https.html": [ - "5c5377d7f2fdbde6cae1b99c460070787c4dff4a", + "d7b69eb82e3568b44994ff2a3b2e10b7bed84d2c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-http.swap-scheme.https.html.headers": [ @@ -481838,7 +481838,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-https.keep-scheme.https.html": [ - "79b3c0a284824e37bad0910c63f2743928d3edbe", + "89f1f67de62d68ed9ef729273fe0c5ca2b1d81ea", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-https.keep-scheme.https.html.headers": [ @@ -481846,7 +481846,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-https.no-redirect.https.html": [ - "c2c7f8723c4a54c1d78e195523d2ebef8bc4a922", + "2860df22162786e14fa502378dfe2f88fd092c6e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/video-tag/same-https.no-redirect.https.html.headers": [ @@ -481854,7 +481854,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/cross-ws.keep-scheme.https.html": [ - "18ec117f46185af05e8cc9633f9aca1a66e9b2b0", + "1c5302b12c4550ed3002f7f4ea3d547518472c3c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/cross-ws.keep-scheme.https.html.headers": [ @@ -481862,7 +481862,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/cross-ws.no-redirect.https.html": [ - "1673464aae0ac4dd1a2277302b2127b8cf9e0722", + "8437326b180101b12b71536dac8f2cbd56b08c67", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/cross-ws.no-redirect.https.html.headers": [ @@ -481870,7 +481870,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/cross-ws.swap-scheme.https.html": [ - "bd8d6fd79676c2ae39b66728fb069dc319ad665e", + "92fd464c93a63eed27a349700a0672c29036c7f2", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/cross-ws.swap-scheme.https.html.headers": [ @@ -481878,7 +481878,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-ws.keep-scheme.https.html": [ - "b5080134174ee64490a579e5da9844f22dc2388e", + "ac11208f23e95a97f6213fe63cb959301d204637", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-ws.keep-scheme.https.html.headers": [ @@ -481886,7 +481886,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-ws.no-redirect.https.html": [ - "9f168b080faf350f0350bc8aad907f7f8f87f9eb", + "967445ee8d5dd64d2a9a71bc1b5413810519bbae", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-ws.no-redirect.https.html.headers": [ @@ -481894,7 +481894,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-ws.swap-scheme.https.html": [ - "24445374ae51caf489c1ea8018a9b64d7d794c83", + "273712aad9bc9b07a5e0582ef934a11089900648", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-ws.swap-scheme.https.html.headers": [ @@ -481902,7 +481902,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-wss.keep-scheme.https.html": [ - "b397c4e2a61f687c9dfb248da432f32c46dbea17", + "47619170144977fa9bc212e7969d41136c00ff6c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-wss.keep-scheme.https.html.headers": [ @@ -481910,7 +481910,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-wss.no-redirect.https.html": [ - "d19674db08c4c8db3fed0d7f53353822dc034bf4", + "ed5c0ab8a77e14fb8b6cd7deb6ff2a3ef0b41b97", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/websocket/same-wss.no-redirect.https.html.headers": [ @@ -481918,7 +481918,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/cross-http.keep-scheme.https.html": [ - "85290c11b7165a1254ce81159be354805cafce3b", + "8a915c29f9f45c37c998c4caa70f819c895f4d06", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/cross-http.keep-scheme.https.html.headers": [ @@ -481926,7 +481926,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/cross-http.no-redirect.https.html": [ - "0e125bcd8beca51cfccc70e511262ff21f50cc65", + "5aabf759341371ad8323399f83c9160407e3ddca", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/cross-http.no-redirect.https.html.headers": [ @@ -481934,7 +481934,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/cross-http.swap-scheme.https.html": [ - "b92b11d0be8678052174484815d11ed9eeea260e", + "90c204d7a0d0dff099916a14a1eeebbb15dbc3e0", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/cross-http.swap-scheme.https.html.headers": [ @@ -481942,7 +481942,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-http.keep-scheme.https.html": [ - "213cf96bb28728d17dff6888b5176f9ffd66243a", + "93668db49e4f3d79d39ab72bc525db6353a4d74c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-http.keep-scheme.https.html.headers": [ @@ -481950,7 +481950,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-http.no-redirect.https.html": [ - "5ec4866157a941b1a9319af6ab60089a115b4aae", + "8521e37281c964ea9a226fd1bdcfc1dd33c169b6", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-http.no-redirect.https.html.headers": [ @@ -481958,7 +481958,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-http.swap-scheme.https.html": [ - "c75044d431019681931a0031d21c5fad2871cdb9", + "d5f79ad60212c6ec0b48a5be3e9c6a492d4b7a69", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-http.swap-scheme.https.html.headers": [ @@ -481966,7 +481966,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-https.keep-scheme.https.html": [ - "5c5d73b35e9d76b8bb55cc56f98454bee4547151", + "042bd14fa8160b38c7852c168748a6c70484e4a1", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-https.keep-scheme.https.html.headers": [ @@ -481974,7 +481974,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-https.no-redirect.https.html": [ - "4aa31ce50e4f91198ec3a2c13ffcaa282993cd3e", + "05b13b680a532429a9bc73149c5249717f8b263e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-classic/same-https.no-redirect.https.html.headers": [ @@ -481982,7 +481982,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/cross-http.keep-scheme.https.html": [ - "adba87787174cc6734897d5211b367eeaf592581", + "60963f90586f89117f898378512ad682dee5e275", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/cross-http.keep-scheme.https.html.headers": [ @@ -481990,7 +481990,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/cross-http.no-redirect.https.html": [ - "7b54a338fdfc9e7f8a55eb7eedb0dc3116224a3b", + "7ced3b86cdbc9deb1af44a99f3060df26b4caa08", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/cross-http.no-redirect.https.html.headers": [ @@ -481998,7 +481998,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/cross-http.swap-scheme.https.html": [ - "57d144abd756bf9c32b15ada1f7fab60c8b861af", + "15711a976bf846c784391aa816312950a05c001f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/cross-http.swap-scheme.https.html.headers": [ @@ -482006,7 +482006,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-http.keep-scheme.https.html": [ - "cb127cf179284c4668d296994ba2cba6bc4603ce", + "4a1d376683949f31b147e1b3e535e36dc0837515", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-http.keep-scheme.https.html.headers": [ @@ -482014,7 +482014,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-http.no-redirect.https.html": [ - "768fd4cce7fd8bb9eff831556fe5c26667a3594c", + "b8c53bae221bdd5ced76632eff13fe0b93ea04ae", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-http.no-redirect.https.html.headers": [ @@ -482022,7 +482022,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-http.swap-scheme.https.html": [ - "736f6bce3798287de07cb5d5928160d8db592661", + "be403a893c9ccef130b030c1f1857143510781e0", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-http.swap-scheme.https.html.headers": [ @@ -482030,7 +482030,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-https.keep-scheme.https.html": [ - "5be23a031177ebe34b6483f5f2bcf5e496dba92b", + "06a8f47ae42d480c0d67bf08c9c6cef963fdc969", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-https.keep-scheme.https.html.headers": [ @@ -482038,7 +482038,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-https.no-redirect.https.html": [ - "858a1528043a9d1a7132b37c299c5e34fa6b9bf4", + "211bd0d29981358e1dc754a3353f3a43219a34b9", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-import-data/same-https.no-redirect.https.html.headers": [ @@ -482046,7 +482046,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/cross-http.keep-scheme.https.html": [ - "a1e6f61e6b7e2db743dfb7027979cc5f0ce204aa", + "69dcfb7e5cb5b30f24e0b181b3b3968542673f35", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/cross-http.keep-scheme.https.html.headers": [ @@ -482054,7 +482054,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/cross-http.no-redirect.https.html": [ - "a95d2061b68e1c6df2cde0b52f82692ff0dd3bfc", + "816e3449092a398f12a7287b4d2715764aea56ac", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/cross-http.no-redirect.https.html.headers": [ @@ -482062,7 +482062,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/cross-http.swap-scheme.https.html": [ - "c396cdc20baa6bc5ac49e52abaf58705c1350488", + "9e167de1486d409caf0ba5ef4b41d434ad06315c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/cross-http.swap-scheme.https.html.headers": [ @@ -482070,7 +482070,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-http.keep-scheme.https.html": [ - "20414a3dac3157932300b5d8e284713af3994f27", + "75e103e634366ff03e22e11d32b0cefed280e1ce", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-http.keep-scheme.https.html.headers": [ @@ -482078,7 +482078,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-http.no-redirect.https.html": [ - "9397a3523e89853b6e3c2df662c37666550f32f9", + "f9e963d8dc778e2f59687decd714421babb676ad", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-http.no-redirect.https.html.headers": [ @@ -482086,7 +482086,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-http.swap-scheme.https.html": [ - "0340366bdf20a1facd9f67ff46c510f77ef380c7", + "f0397f11b69a19ca884dfcaba8abd571d4ed1aa4", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-http.swap-scheme.https.html.headers": [ @@ -482094,7 +482094,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-https.keep-scheme.https.html": [ - "da0e808f1847ef6614b3fce1f8bad0be41c114e2", + "b81758e5b79fa6fbf2b50c2118150087b06caef5", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-https.keep-scheme.https.html.headers": [ @@ -482102,7 +482102,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-https.no-redirect.https.html": [ - "a009215e6013593c5ee461e35f247be61653f9d1", + "a7399e2dcd2647a9f440cbc77c92238758baa795", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worker-module/same-https.no-redirect.https.html.headers": [ @@ -482110,7 +482110,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/cross-http.keep-scheme.https.html": [ - "0271fd3694cb9425474f8a7ae4c09d484fced9cb", + "1c26e0c6e493cf60706e3dac9b527b18c12bfda7", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/cross-http.keep-scheme.https.html.headers": [ @@ -482118,7 +482118,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/cross-http.no-redirect.https.html": [ - "2a1158bbb9974f900dc1583d73907143bd1d62c0", + "3ba399bb528163ccf6ad67fb052dc51bd75dfdfc", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/cross-http.no-redirect.https.html.headers": [ @@ -482126,7 +482126,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/cross-http.swap-scheme.https.html": [ - "d9f4916bee788fae5cb5c0cd5672d92ff33f6d34", + "b5950d9318f4ee0ca970b39299dda05a2fb1c5d8", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/cross-http.swap-scheme.https.html.headers": [ @@ -482134,7 +482134,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-http.keep-scheme.https.html": [ - "5258084ec5e95ff7d100bc5c59043ceca78987ec", + "b9a80c07de42b59b1cc1d6ed6154113749041269", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-http.keep-scheme.https.html.headers": [ @@ -482142,7 +482142,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-http.no-redirect.https.html": [ - "437db2c854b14007254ab39eb3849d3aa6df36c4", + "1b2f858a7ab7a6cb620da2e322cad277cc568877", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-http.no-redirect.https.html.headers": [ @@ -482150,7 +482150,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-http.swap-scheme.https.html": [ - "48fb79a3021ca1f0c99c10f8533aba9f3b4c9bdd", + "6c8e517bf53137601c528131011d2571b80d5859", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-http.swap-scheme.https.html.headers": [ @@ -482158,7 +482158,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-https.keep-scheme.https.html": [ - "49a5222cf78b89f65bdbae0222de68de3681a5a3", + "403fc3417d7736bcd08766fca50fe6bdc8a10b74", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-https.keep-scheme.https.html.headers": [ @@ -482166,7 +482166,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-https.no-redirect.https.html": [ - "b111698b904c7fab5a17076fdd5ce57c27c05c10", + "89f4bd68af83f3ff61d48c0adee951db5453cf54", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data/same-https.no-redirect.https.html.headers": [ @@ -482174,7 +482174,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/cross-http.keep-scheme.https.html": [ - "5973cc7ef1fe8cf481e46c2689842cda3703c997", + "a2eff5fdbb029111ef79b73ba5faa9abee764fda", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/cross-http.keep-scheme.https.html.headers": [ @@ -482182,7 +482182,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/cross-http.no-redirect.https.html": [ - "6f8ec890f139482214c7a310c0d1a6c81412b83f", + "d778e5c873ce92ca21f4071f643c2af8ec8b8d2c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/cross-http.no-redirect.https.html.headers": [ @@ -482190,7 +482190,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/cross-http.swap-scheme.https.html": [ - "21e8ec651d0f349647ad38049c9911b533b6ee02", + "23b98c374e42dd018b0c0574cdd3fd2b2abcba24", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/cross-http.swap-scheme.https.html.headers": [ @@ -482198,7 +482198,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-http.keep-scheme.https.html": [ - "9f57d2e8d762400181cb5efd865e83057cae2a29", + "c35a70d5bd95e9f514599e2d158315ba176bb4ac", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-http.keep-scheme.https.html.headers": [ @@ -482206,7 +482206,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-http.no-redirect.https.html": [ - "0e4e5dab66a511a902c6d4b45060534da2ae2bd3", + "b4623495821e4d2e66ad413030973de97d3a33bb", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-http.no-redirect.https.html.headers": [ @@ -482214,7 +482214,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-http.swap-scheme.https.html": [ - "97a512f434d5735cdcfe0342f7c6b031a19fb6e5", + "fcb0b175c356ff219ba1892bbef5d38dd2f1b72c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-http.swap-scheme.https.html.headers": [ @@ -482222,7 +482222,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-https.keep-scheme.https.html": [ - "91ef446211f449504bf435983728f036a493fcf0", + "1afc5a269779c869aeba2abd3bd4887c2e2f648a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-https.keep-scheme.https.html.headers": [ @@ -482230,7 +482230,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-https.no-redirect.https.html": [ - "a5f042be15096ca0b6105a165051f369d8f5a375", + "ed7892242a975165bfaf66bbf3ef9ea330b1a04f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-animation/same-https.no-redirect.https.html.headers": [ @@ -482238,7 +482238,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/cross-http.keep-scheme.https.html": [ - "6e8da756204ef8c4fa3b9eec351ced53967a9b54", + "fedb12fcc32cbeac63f789f9411ea307c2cfe87e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/cross-http.keep-scheme.https.html.headers": [ @@ -482246,7 +482246,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/cross-http.no-redirect.https.html": [ - "32fa16408b125824f00ca18b22ed9181342c7092", + "657ed84d2bb6d79968f5a62081d2327c6a1cd512", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/cross-http.no-redirect.https.html.headers": [ @@ -482254,7 +482254,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/cross-http.swap-scheme.https.html": [ - "9fab4e28179ee55f8a904f04d278d6d823c61403", + "1ccb5f30cc515fc847094aa3a0afdd2f1ebac56c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/cross-http.swap-scheme.https.html.headers": [ @@ -482262,7 +482262,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-http.keep-scheme.https.html": [ - "81a971be92176761e1e710901c9a11287df382c1", + "caa5f4b57e4e424d6e5953400eec225a4f760f1d", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-http.keep-scheme.https.html.headers": [ @@ -482270,7 +482270,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-http.no-redirect.https.html": [ - "5d434c0504716491b0e44d97cdad252698aed425", + "7bf0db17cd5a7d8302b5a8c872bdfb26f6c6ccd6", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-http.no-redirect.https.html.headers": [ @@ -482278,7 +482278,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-http.swap-scheme.https.html": [ - "431caad8a022f1e5e255ecc4e3a3479403693083", + "4a91a21f0dd3b462136d0a536c417592376bd107", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-http.swap-scheme.https.html.headers": [ @@ -482286,7 +482286,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-https.keep-scheme.https.html": [ - "e569aca97f8baf788a768754ed646772cf146ea5", + "d7d0f8c6b883b0b7b1fe73b2c30d14c030f951d5", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-https.keep-scheme.https.html.headers": [ @@ -482294,7 +482294,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-https.no-redirect.https.html": [ - "00a1085db0321eb9f9cca4e05959ad4c269334f9", + "78472a912426721ba3f6cd2527c27d3196ef389e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data/same-https.no-redirect.https.html.headers": [ @@ -482302,7 +482302,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/cross-http.keep-scheme.https.html": [ - "1f4d8e61eeea8109f658fe9a00a9347c651e76e0", + "2cbded7e61461bd2127d71b90fc8712d6fb04952", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/cross-http.keep-scheme.https.html.headers": [ @@ -482310,7 +482310,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/cross-http.no-redirect.https.html": [ - "4027b3ec8585f4638bdd9d7bd2b2c6362ad08cc3", + "4e75da94e531ff9b44f78948e4f53af04d6d807e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/cross-http.no-redirect.https.html.headers": [ @@ -482318,7 +482318,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/cross-http.swap-scheme.https.html": [ - "90d4553b6b8157c7b2fcb59a78f7b91bc59c2d0d", + "98faf005e955450e214f5738d9e4a9e8c8e6ee1e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/cross-http.swap-scheme.https.html.headers": [ @@ -482326,7 +482326,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-http.keep-scheme.https.html": [ - "81bffa4220feb7340c3431216a4b52f876c64744", + "4da5197252c3b3afe8dfd230e63750a9110cf70e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-http.keep-scheme.https.html.headers": [ @@ -482334,7 +482334,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-http.no-redirect.https.html": [ - "31e123c95f9f8d07ef4a6e20994e0ff0d3561df5", + "709562268b2829d8c15ce542703a434dcd0b4c4e", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-http.no-redirect.https.html.headers": [ @@ -482342,7 +482342,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-http.swap-scheme.https.html": [ - "ae01e10930f4c8598f0614e07ea1655cc0a16a2c", + "991ddf81804dd2b2ef99579f74240d0069c69d2a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-http.swap-scheme.https.html.headers": [ @@ -482350,7 +482350,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-https.keep-scheme.https.html": [ - "131bfeb17377443b06fcfd4a1aad10eb06dd6e65", + "f199071a9596b8038a9c527f4aa5a5c7c81f91c2", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-https.keep-scheme.https.html.headers": [ @@ -482358,7 +482358,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-https.no-redirect.https.html": [ - "96e0e303b99129075c7c558bc20e9bb9e289b92a", + "76b119d51815fd92812aa7acd11a6bc3ac747035", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-audio/same-https.no-redirect.https.html.headers": [ @@ -482366,7 +482366,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/cross-http.keep-scheme.https.html": [ - "d6de7f78362ee6d1e45a13beefef978106ff1ac7", + "4f5d2f6030a23e0280de1ff8edb1e7b6647e6243", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/cross-http.keep-scheme.https.html.headers": [ @@ -482374,7 +482374,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/cross-http.no-redirect.https.html": [ - "5109c5b45f1b8f9a53e9a0aa9402665939b3745b", + "09aa789768874951777302daa228bece783e959c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/cross-http.no-redirect.https.html.headers": [ @@ -482382,7 +482382,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/cross-http.swap-scheme.https.html": [ - "9e0eac105f48453eca8f9fd4aebfdbb3ba7076ed", + "345d3d600188a29dad5a129cd046d9c0ee8a22e2", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/cross-http.swap-scheme.https.html.headers": [ @@ -482390,7 +482390,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-http.keep-scheme.https.html": [ - "8c1d39e2e53273491463d19e272003285ce9e3c8", + "529c85c68fd2eac97bde46294c619d8abd5cfde0", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-http.keep-scheme.https.html.headers": [ @@ -482398,7 +482398,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-http.no-redirect.https.html": [ - "da24a8a50b4915c521cbbb800637dc827985fcda", + "ff88cbd4453945cc18a3498190b2392e5ddb2ceb", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-http.no-redirect.https.html.headers": [ @@ -482406,7 +482406,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-http.swap-scheme.https.html": [ - "7ec5888d3cd899820e5838a074c029a338312ed0", + "5fd88554beea6c7cf7ce17679a35aef17544a340", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-http.swap-scheme.https.html.headers": [ @@ -482414,7 +482414,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-https.keep-scheme.https.html": [ - "0609fa835c291b72ba50e374a7fb65b2e74321d4", + "f834427d90692cc606b817977a87caaef3d2d23a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-https.keep-scheme.https.html.headers": [ @@ -482422,7 +482422,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-https.no-redirect.https.html": [ - "a55cbc20b3f17030d1a04b96505641d670085270", + "06138a35960cdcb54ae3ec22926a256cd92b2f46", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data/same-https.no-redirect.https.html.headers": [ @@ -482430,7 +482430,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/cross-http.keep-scheme.https.html": [ - "e96a0649bdb469a62e75bb4db06139a23c8853c8", + "4bec395b89bccfb3078bc626dd9750ae4cc0ba7a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/cross-http.keep-scheme.https.html.headers": [ @@ -482438,7 +482438,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/cross-http.no-redirect.https.html": [ - "9367a0e6ef6ba1a4ea4b7925d6e16d7c520aa836", + "5a98e96931578ebcca310c4f134ee5a2767f161a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/cross-http.no-redirect.https.html.headers": [ @@ -482446,7 +482446,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/cross-http.swap-scheme.https.html": [ - "5dc4ebcd7f8e635ad34efe46e1952769ead83b33", + "e4ebe6eec9eb13e494a1836b004d19a3e1e6d19f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/cross-http.swap-scheme.https.html.headers": [ @@ -482454,7 +482454,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-http.keep-scheme.https.html": [ - "d2840c520801ef551795bcf055d05d73e9778f83", + "bee78809a5c5c266fbbb6018a46eff3cab6b54ef", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-http.keep-scheme.https.html.headers": [ @@ -482462,7 +482462,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-http.no-redirect.https.html": [ - "b3b9c49faf3643d137cd7cad6814367b9be5eb6e", + "18102d6d2fa71d923f0cdcda2acdfe1c7a14b542", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-http.no-redirect.https.html.headers": [ @@ -482470,7 +482470,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-http.swap-scheme.https.html": [ - "ef03e297e96eadaf4a8975d23519b9b149090ecf", + "5b9ae888b2547d9d926a385f81d8b4cea7a2e422", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-http.swap-scheme.https.html.headers": [ @@ -482478,7 +482478,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-https.keep-scheme.https.html": [ - "fc92036fbaebea1967e237a256d1141b14263797", + "a2211cf181ff97c5911902c86d604c1744e49ed1", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-https.keep-scheme.https.html.headers": [ @@ -482486,7 +482486,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-https.no-redirect.https.html": [ - "45dfa55e2129a68a9c250ce81574c0eb0a8fbfc7", + "c16b9831bcbb691ab36df73a9aa21e8a0f939920", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-layout/same-https.no-redirect.https.html.headers": [ @@ -482494,7 +482494,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/cross-http.keep-scheme.https.html": [ - "e881494b92bdf7867c12ceeacfae285bc1bae4b9", + "a483e48787d47f703eabbbd38dfbfaa85aa826c4", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/cross-http.keep-scheme.https.html.headers": [ @@ -482502,7 +482502,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/cross-http.no-redirect.https.html": [ - "afca8013aad30e6d40c47918d1a681a9ca09a5bc", + "de0e2d31f32951c12ad99a82ac4a285e9040cfc0", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/cross-http.no-redirect.https.html.headers": [ @@ -482510,7 +482510,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/cross-http.swap-scheme.https.html": [ - "582221b6ebf1995bdb581c765456be6776e52faf", + "bcc80e96055540d926691869c840c153a592b8b3", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/cross-http.swap-scheme.https.html.headers": [ @@ -482518,7 +482518,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-http.keep-scheme.https.html": [ - "fb9a3a471be6e5113d2429ed5465aeb251b0e9e3", + "8767eb58485a33cfbeaf2be7960bb38d8955b34c", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-http.keep-scheme.https.html.headers": [ @@ -482526,7 +482526,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-http.no-redirect.https.html": [ - "1c5ac976e991c73e78737371ff01509f74d0dec7", + "a4dffc09951ecc621436e632ab92ee16682f88c7", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-http.no-redirect.https.html.headers": [ @@ -482534,7 +482534,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-http.swap-scheme.https.html": [ - "ff4a8e85b2b7b75ba501e914b1daf3909c04148d", + "5242d8ec951b1c1bf50425075441f23988f09ef4", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-http.swap-scheme.https.html.headers": [ @@ -482542,7 +482542,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-https.keep-scheme.https.html": [ - "cc89ca597315ef4f7ad3ebc816f23e8c951e1442", + "b1814df609cc59ecf0432343ce46622281f9bcc1", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-https.keep-scheme.https.html.headers": [ @@ -482550,7 +482550,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-https.no-redirect.https.html": [ - "f61e2d7983a011d606dd0b3772a2f587b9af68ee", + "14fa0ffa3ecbadca27a40e67b81d3014d93d913b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data/same-https.no-redirect.https.html.headers": [ @@ -482558,7 +482558,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/cross-http.keep-scheme.https.html": [ - "8ba634d1be61bce28cf4ae7a626a16c13ad24f3f", + "b8a19ccdb2646485c84ab4ec53c8c340594a4b6f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/cross-http.keep-scheme.https.html.headers": [ @@ -482566,7 +482566,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/cross-http.no-redirect.https.html": [ - "216be7f865046f9fc2b15db7182c002ea58c811b", + "01dac7c6e1dfb50e0e6c5c26fc6526925a82b0d2", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/cross-http.no-redirect.https.html.headers": [ @@ -482574,7 +482574,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/cross-http.swap-scheme.https.html": [ - "1340df63bfbc16057a9ea171464ec6aa9fc2746b", + "92eea339a7c37bf8a6c9b3cd7febb272b961f28a", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/cross-http.swap-scheme.https.html.headers": [ @@ -482582,7 +482582,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-http.keep-scheme.https.html": [ - "a4ff29a8ba3ee2d3cee2539f1f6c42fe5d1b1ace", + "88bf23e9270120f407b0a5b073b14d4129495168", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-http.keep-scheme.https.html.headers": [ @@ -482590,7 +482590,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-http.no-redirect.https.html": [ - "884c56348218c643122316d591242e3fd24ff99f", + "037008e4c66ed75581667404637f668b7d75cb49", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-http.no-redirect.https.html.headers": [ @@ -482598,7 +482598,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-http.swap-scheme.https.html": [ - "bd6fcbbb06cde492e30227b3110a2cc5044ac632", + "c758770f96bc8bf4f8b6109334ef60a3d0cc061b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-http.swap-scheme.https.html.headers": [ @@ -482606,7 +482606,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-https.keep-scheme.https.html": [ - "a6b18616e2b2d05fcc0556d74f3740f846412967", + "337c8745aa6e7df22692fff7f033cb7ba2a0f261", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-https.keep-scheme.https.html.headers": [ @@ -482614,7 +482614,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-https.no-redirect.https.html": [ - "6ddc092c5d644d37c76db329f52dd9caf763b272", + "053785eed75c8d584f7b34c273f506ed3d90d870", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/worklet-paint/same-https.no-redirect.https.html.headers": [ @@ -482622,7 +482622,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/cross-http.keep-scheme.https.html": [ - "9ff477cc49d68e3f55af822c71ea759fb3c27393", + "6d53b02630108b44f2e2dd5c3fef9fff31039572", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/cross-http.keep-scheme.https.html.headers": [ @@ -482630,7 +482630,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/cross-http.no-redirect.https.html": [ - "fbfb8fbe7f922e676254bff78e1d44977a19584f", + "963c4196c28dc34ce666bee3ab79f6ffe1bc70a3", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/cross-http.no-redirect.https.html.headers": [ @@ -482638,7 +482638,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/cross-http.swap-scheme.https.html": [ - "fa55bdbe2ba2f6b73d565d9d7df1e63acedae3b8", + "17eec1450493217946163e73abcea52de23a10aa", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/cross-http.swap-scheme.https.html.headers": [ @@ -482646,7 +482646,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-http.keep-scheme.https.html": [ - "8522fa36fb36c9bb06b4b44139def2b2761636c2", + "792a2901f485569d7c10d0ae401a816987f4887b", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-http.keep-scheme.https.html.headers": [ @@ -482654,7 +482654,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-http.no-redirect.https.html": [ - "1668b85c48be232779d448c5404035ac30816195", + "2feee7befe86f1ce155b2a2c18081beccc5e972f", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-http.no-redirect.https.html.headers": [ @@ -482662,7 +482662,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-http.swap-scheme.https.html": [ - "98ed3608031bd80cecc4c824c28854c9a744ce70", + "a976fc107d48fea3219817a3c32168c686076545", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-http.swap-scheme.https.html.headers": [ @@ -482670,7 +482670,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-https.keep-scheme.https.html": [ - "e05e09b077fdb2293e7322f81cc561cb677ee1a0", + "cab77fe02d1601b852e5946535686f7424fed529", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-https.keep-scheme.https.html.headers": [ @@ -482678,7 +482678,7 @@ "support" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-https.no-redirect.https.html": [ - "0c58b6aadec567aa382189b85ae96e2fd8db4761", + "b9bc0f4f535c530672bef274a80a7ab3811074b3", "testharness" ], "mixed-content/gen/top.http-rp/opt-in/xhr/same-https.no-redirect.https.html.headers": [ @@ -482686,1019 +482686,1019 @@ "support" ], "mixed-content/gen/top.meta/opt-in/audio-tag/cross-http.no-redirect.https.html": [ - "41a6ca4fa89845279078546c22d5069583cc7101", + "d0c3456fefcb69e043da4854ec1e6c48a13a8084", "testharness" ], "mixed-content/gen/top.meta/opt-in/audio-tag/same-http.no-redirect.https.html": [ - "d1c7fe9a48fc6d49b32a7a67bb1163c620c9c7b0", + "eea7de15bd7aed658864902dcb7499ba78447766", "testharness" ], "mixed-content/gen/top.meta/opt-in/audio-tag/same-https.no-redirect.https.html": [ - "0e29720d16ead0ce944839faff7d2a19211571a2", + "76a30178db44a661193613bb4a69f581e4f59008", "testharness" ], "mixed-content/gen/top.meta/opt-in/beacon/cross-http.no-redirect.https.html": [ - "75f0e66ed2456c24d91f668a8fe94768a9377cfa", + "a9fe9a58558a7a7d6993cc7d119d6efac9826c7a", "testharness" ], "mixed-content/gen/top.meta/opt-in/beacon/same-http.no-redirect.https.html": [ - "c0a950443f58a0e3e85f7607d1dedcb4614015c0", + "2ab2f874e0dfac081c13a2b73f30b7a645aa59f5", "testharness" ], "mixed-content/gen/top.meta/opt-in/beacon/same-https.no-redirect.https.html": [ - "4443ddbf63a9772e048b0beefd608890ec839af5", + "7596600ff1b670c6a73401bf0ef91d6994050656", "testharness" ], "mixed-content/gen/top.meta/opt-in/fetch/cross-http.no-redirect.https.html": [ - "7d903934db4c7550031649a51b37e8f7fbc5950c", + "4d3494449c459467e0a1da2d8e9c325c489a5d0b", "testharness" ], "mixed-content/gen/top.meta/opt-in/fetch/same-http.no-redirect.https.html": [ - "2842dc4a5da8b07fad5a4bfc7a7337c7df88852f", + "def5709f833bd2988dcdb24433986a9c68f0dbef", "testharness" ], "mixed-content/gen/top.meta/opt-in/fetch/same-https.no-redirect.https.html": [ - "7c9a29f34c149a334f5afef668444889bb18403c", + "154c05f61161a9a2a6d7763022740a2bcb4908bc", "testharness" ], "mixed-content/gen/top.meta/opt-in/img-tag/cross-http.no-redirect.https.html": [ - "646f07032ef1cc9a9e5a1e5f4f9d223c51ac43e3", + "942a32b96b053fd826b519ba4e6a8eb6664780fe", "testharness" ], "mixed-content/gen/top.meta/opt-in/img-tag/same-http.no-redirect.https.html": [ - "1d3ad732ca8bda4245e8a0e9cec57b8bfcb30f29", + "eaadb43e212b5b24cb630055c0469ffaf4a6d286", "testharness" ], "mixed-content/gen/top.meta/opt-in/img-tag/same-https.no-redirect.https.html": [ - "33f3c0ce6c98db0af2d56c04650a8bd5a343306e", + "8db9f5ffdbbd4656b55e60249cf37f8b6741838e", "testharness" ], "mixed-content/gen/top.meta/opt-in/link-css-tag/cross-http.no-redirect.https.html": [ - "fd88ca31c2b01494c345f92b84c48837b1882c35", + "f687166671afabb777f513caa363ade619579719", "testharness" ], "mixed-content/gen/top.meta/opt-in/link-css-tag/same-http.no-redirect.https.html": [ - "26cd1cd8599b37c2ca9105b3b04be3ee97b78667", + "6dada36eac4093f0e1b20006632c532cb0691107", "testharness" ], "mixed-content/gen/top.meta/opt-in/link-css-tag/same-https.no-redirect.https.html": [ - "ac7d84ce57a156e3238ef5697d8ef64e790a1332", + "ca9e6bd98be4fe360bf8492f3871bb72464332b7", "testharness" ], "mixed-content/gen/top.meta/opt-in/link-prefetch-tag/cross-http.no-redirect.https.html": [ - "9b666e04466b2c108ae47b67263bc2111d65a8f6", + "a613a1cc917dbb161ac85f98e39403b19b38ad63", "testharness" ], "mixed-content/gen/top.meta/opt-in/link-prefetch-tag/same-http.no-redirect.https.html": [ - "8b091cf805de0e37d5cadb3e6f6536fa218b9ea8", + "8af35047e08a58ee65680d88a4b206a4cfd4c8cb", "testharness" ], "mixed-content/gen/top.meta/opt-in/link-prefetch-tag/same-https.no-redirect.https.html": [ - "0ab72967f38f0e38005fe235ccc4fcfa5a7323b9", + "c832f319813240459a5c5302055c1b55fdb8e741", "testharness" ], "mixed-content/gen/top.meta/opt-in/object-tag/cross-http.no-redirect.https.html": [ - "911a6c14b85992e20b2cb08bfcbabf3a8960be72", + "1026da6765f418fcea8efdbaf860515cd50fc1e5", "testharness" ], "mixed-content/gen/top.meta/opt-in/object-tag/same-http.no-redirect.https.html": [ - "2d98598312be9705dc1f9180e5edb2506489ab20", + "881141b03574bad422155f7b7b13f118d43135f1", "testharness" ], "mixed-content/gen/top.meta/opt-in/object-tag/same-https.no-redirect.https.html": [ - "1981266f34c6bb8e2a1f305b302f81264dc58280", + "b593447c70f3092cc236b1a960c90343a836b635", "testharness" ], "mixed-content/gen/top.meta/opt-in/picture-tag/cross-http.no-redirect.https.html": [ - "e5d5382d61018d07cd31c1cb04b842cc2d5cd4f2", + "4bcc50cf6231260c7cb97311a23c538e4160e653", "testharness" ], "mixed-content/gen/top.meta/opt-in/picture-tag/same-http.no-redirect.https.html": [ - "8da3f84ab7da584b331fe82c36f68d0ca6a16852", + "31bc96e147f8495cd1840b11ba34ca8560a5146c", "testharness" ], "mixed-content/gen/top.meta/opt-in/picture-tag/same-https.no-redirect.https.html": [ - "a8934783f5ee1eaf922bb1ca13d1acb851132057", + "3dbc401b72045bb42daa464676b61bd8a1f17460", "testharness" ], "mixed-content/gen/top.meta/opt-in/script-tag/cross-http.no-redirect.https.html": [ - "7c77c277c11b4a0b1c74e04802559e6481e9e3f4", + "9324c61295b6a6bad3940150572e48c98a7603aa", "testharness" ], "mixed-content/gen/top.meta/opt-in/script-tag/same-http.no-redirect.https.html": [ - "57ff57251ea93aff60c099605d2af21bf57158d0", + "51834ee80f7f436312eab7014c641bcbcb4c5f08", "testharness" ], "mixed-content/gen/top.meta/opt-in/script-tag/same-https.no-redirect.https.html": [ - "143831d1ab6d2272457c2ea109fe80a99164ad71", + "c96bec02a15bd90c3c5562100d2d6260ce77f8c6", "testharness" ], "mixed-content/gen/top.meta/opt-in/video-tag/cross-http.no-redirect.https.html": [ - "356a34843f4db522dc2040ab83a4010c779468d2", + "12e43d3e7e3d36fb3aeda8037cabe285e433b806", "testharness" ], "mixed-content/gen/top.meta/opt-in/video-tag/same-http.no-redirect.https.html": [ - "6bc12d11978f56dedc7c551ecde3d991aee8bacb", + "1d525b429664022fccc9430fce48550039b44720", "testharness" ], "mixed-content/gen/top.meta/opt-in/video-tag/same-https.no-redirect.https.html": [ - "5e3bb47e4d5089c91bbbfcd2cff0bdade60f20a5", + "60219c64304e042a8e8048fb21795de6ead72d94", "testharness" ], "mixed-content/gen/top.meta/opt-in/websocket/cross-ws.no-redirect.https.html": [ - "afabb884f87d3220bfba546d5edc10270af6f217", + "4e192afe824c38c4dee8375504284b1178231956", "testharness" ], "mixed-content/gen/top.meta/opt-in/websocket/same-ws.no-redirect.https.html": [ - "b069f26285c3e18e1164274aa159151d4238e5cf", + "5a3ae54730595b0b6f664f83ae84445504e91425", "testharness" ], "mixed-content/gen/top.meta/opt-in/websocket/same-wss.no-redirect.https.html": [ - "0eb3615fadb36502ecb07480bc8d8af970e1df52", + "4764cab154b0486963d1ca21134eac8d7e3267aa", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-classic/cross-http.no-redirect.https.html": [ - "aec04843dc36dcda484d9395b20161a1256cd14d", + "36ee4ed56d04f5f7b240a1760e17180c58ec8ed4", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-classic/same-http.no-redirect.https.html": [ - "8f225224e1e2bf7188deb7d6369dac55e649105a", + "bdc906277b1d3fde69f8cfe558f77beed9c436ca", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-classic/same-https.no-redirect.https.html": [ - "6312ec33cd878babcb6984831baad13310074004", + "d29ea4ddf0fcb5f28069370c76b11c3a01fd2386", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-import-data/cross-http.no-redirect.https.html": [ - "4691301d41d555706de73ab26d3c84d618438157", + "a6a754731322c5c82b5608a97e2bfc20f2adceaa", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-import-data/same-http.no-redirect.https.html": [ - "1df8ad9efb03b17d2722fd028683c488b6d03e1b", + "e5662eca7828b419fdbb8a15ea17211b523545a3", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-import-data/same-https.no-redirect.https.html": [ - "670ffdd28e91dff64a24ab67f72de14b43118719", + "ce40498e7af0abd9e0b1428dd1d97447caee91e0", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-module/cross-http.no-redirect.https.html": [ - "95690945ebde5fffdfd14dab95bb83921c080ef3", + "87dd4d87ee0cea8d73f35e95a1f31eafa85669a9", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-module/same-http.no-redirect.https.html": [ - "66fb5c30326259bbad4d7d330991f23a0f463d5e", + "e837b2cbbd2299165bade9dfaeffd0297289feab", "testharness" ], "mixed-content/gen/top.meta/opt-in/worker-module/same-https.no-redirect.https.html": [ - "aa75c6e95af2a345e2c34b924db23bbe1f4a26e5", + "ed25f086f569e23a77ff396e487ba1060a987b6b", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-animation-import-data/cross-http.no-redirect.https.html": [ - "d114a5744b6bbd55aca8bb60c05bfa382272784f", + "e3c25daa7cd77eb667f6ca2a4e6cbeb20669d82d", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-animation-import-data/same-http.no-redirect.https.html": [ - "74fd65195cbfbdcdab76b72ba788b56d687ea39b", + "6059273d49ce81c7bdb7d82ee04761b2aa549ce5", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-animation-import-data/same-https.no-redirect.https.html": [ - "d7b407df50827f4e42172ad41243d8b9bcee6794", + "d5e1333f680b6b8dc9d28dcda016a54782c91c7e", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-animation/cross-http.no-redirect.https.html": [ - "491e1178c2b5fdab0b235137860e1b5e34792e85", + "b470340f8712bcb5782a168a52250111a8b6c968", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-animation/same-http.no-redirect.https.html": [ - "80eb66fa2525006b6f03b45915a474b6d26cfb36", + "be79725a1d7aff2118a14d397564f5e910529009", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-animation/same-https.no-redirect.https.html": [ - "b6e56d9c0f5bbbb236ec329e3f91bc0622b522a0", + "a70282ab4323219c03004156eb9c909169b17ed0", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-audio-import-data/cross-http.no-redirect.https.html": [ - "d0d6d48098e587890a66aa06385b483d1b5dc7ca", + "a50ed273c5438b40af838cd6fb106890dc5935ab", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-audio-import-data/same-http.no-redirect.https.html": [ - "45788a9ef5f6e72200224894fbee191f1215299c", + "f284152c72e85983f7f1fe4305247f26ed60fba6", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-audio-import-data/same-https.no-redirect.https.html": [ - "2e1866acc7a7ec30e4836a68d0560fb1e765c130", + "517c97f1b0bbff00e15d412a8172604dc0efd26b", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-audio/cross-http.no-redirect.https.html": [ - "bd0f0e6c126cb222afc74958f4fad9e83ce2d9e1", + "866046e59efeb999a4141705b8d3567bee2737d3", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-audio/same-http.no-redirect.https.html": [ - "61904821c9a809bf43707c0551c022b5e5ad2624", + "7eeddcfdb0990b9a833d50fc9ee11ee1ef03c5d4", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-audio/same-https.no-redirect.https.html": [ - "343df639234294477a7e7c4d6dc8e6949807fcbd", + "a3804ee8f9e97bfcd80e46f7fea15e3d61942d19", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-layout-import-data/cross-http.no-redirect.https.html": [ - "76cac0228daacddbda3c3010ba5c49c50bce33c1", + "284fd13f0e8f94783644619aa4bcc6afe412f753", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-layout-import-data/same-http.no-redirect.https.html": [ - "880fb302332e9768b8519e8c6e030d331ace7583", + "d478c13176487c84794649eb825a2f5e8ce54b80", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-layout-import-data/same-https.no-redirect.https.html": [ - "a833d44f73191c27e71daced344fb0254e006353", + "dbba6efaa218dd92364fd194bde75474e3df9933", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-layout/cross-http.no-redirect.https.html": [ - "e12e978f198e1c6215ff43f9dd96467f48221a33", + "f0f027571bc5deda52a48fc73e3da7e1d779fe51", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-layout/same-http.no-redirect.https.html": [ - "448583db71ed95ea422e2f38f31cb2e33db50f88", + "fdf08bb84067029d78c902378f134c98bdfbba59", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-layout/same-https.no-redirect.https.html": [ - "e395b04a8d7fc82cd42e9c1e93c2d557fb104bf5", + "fd1cfc09ae39d5818f62ba91090db83f46f84a41", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-paint-import-data/cross-http.no-redirect.https.html": [ - "bd6943b0962df424a4a6071644dbf9bd7435cafd", + "17ae0d1bfbdec7ace499d54bd885996bea5ecc71", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-paint-import-data/same-http.no-redirect.https.html": [ - "f0bafddb4af2fe22ed15bbd15f012debe8e9147f", + "b5ec91933ef5c2f3ffa6e734d39b4c5113d6b4a2", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-paint-import-data/same-https.no-redirect.https.html": [ - "16a6b331df2bbd464159379b6bcf6a673d6c0573", + "5ba63761c67ba7d26b7bcc8cf0beeb4bbe1b2470", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-paint/cross-http.no-redirect.https.html": [ - "23dbcd9eb6842fb48d80e9532e83439d86fd8038", + "6bcffc7ead6a65595f2100ac7f68203c50a14114", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-paint/same-http.no-redirect.https.html": [ - "6d5642fa6526ad4564fd8d09998e8545531ff8b1", + "2116616b1559cf35eeb139bf9ca90fa419326123", "testharness" ], "mixed-content/gen/top.meta/opt-in/worklet-paint/same-https.no-redirect.https.html": [ - "2a67ca33750a2d70b6d7eca440b789d0392d3c9a", + "d07de21b79de4b776666f7ad55a6ffb7fe8cebe5", "testharness" ], "mixed-content/gen/top.meta/opt-in/xhr/cross-http.no-redirect.https.html": [ - "bbf7fc8b79ea8dc87011d04279340421e81bd961", + "4d8bfc526338aeca8dae30574c0ff593c79ea399", "testharness" ], "mixed-content/gen/top.meta/opt-in/xhr/same-http.no-redirect.https.html": [ - "2e2ecab17b27bd506bb6057a62f157a3d49d9a4f", + "0224948fad4a3831e80b6020d6fa3bfe67058195", "testharness" ], "mixed-content/gen/top.meta/opt-in/xhr/same-https.no-redirect.https.html": [ - "9d700e35260730a4b4bcbd5c3d57f1bbb30ffdbe", + "b0b4c3a5bc68f918a1a5716b7555785230a177a1", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/cross-http.keep-scheme.https.html": [ - "876211d9255f923586b9aac4659faf41db1b4f67", + "f955c31235f659594289d5d87c0724a69bc97d57", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/cross-http.no-redirect.https.html": [ - "b999bfffa34be79f16bcc2f77ccd6672e5d60ff0", + "d06517a0b7a685f0457682cb0a74bb82fdb7e8e9", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/cross-http.swap-scheme.https.html": [ - "bcb03d808ed60599cf37d07da2ec38d7b467e1de", + "56f69bf16e27bb38af23121e0f842b8f5d72a93d", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/same-http.keep-scheme.https.html": [ - "42fdd2b3ebac65a00881dd6fbc80520cd054d7cc", + "128a457d134b821e1235d04214ff91fed251599c", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/same-http.no-redirect.https.html": [ - "47a718305557f050cd4e75f8d61299b1c8c73a4b", + "0d7bbbd3899ed64a794987a2651bfcc0b141277b", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/same-http.swap-scheme.https.html": [ - "ac2a203253003784a9e1c24c8d7162f406fcc8a2", + "11c60ffbb56db9a49ea15f172457e4c75e7fc367", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/same-https.keep-scheme.https.html": [ - "7da3e5a2ddeb567e2cf27ee871985999fa0833f7", + "c82f589246ff8f79b165cf74f38066d819fcb605", "testharness" ], "mixed-content/gen/top.meta/unset/audio-tag/same-https.no-redirect.https.html": [ - "b193871764070557b40a560de3911917de30261e", + "d475bbe0cf5daf22ba350215810226ff4c80bd2c", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/cross-http.keep-scheme.https.html": [ - "2604c38b67f2144ac221b5a24f1d980c83780508", + "0f4d641ff8fbd6ee5968dc0a4a002c441e229c21", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/cross-http.no-redirect.https.html": [ - "8a297d62c48a33e251f60ac21889d8026258841d", + "5be5db155489b42ba2d26c25ff86204e99ba9640", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/cross-http.swap-scheme.https.html": [ - "a9bb4fe2853f5389accdf669065ce63038104731", + "3eefb62b4d1a90b4711c7f1861225d1eb49b0810", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/same-http.keep-scheme.https.html": [ - "75d150dba77f2a495f0e8561353f128b8a6b6fe6", + "984b353c92a0b0e202cca5343a71616065df1e2b", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/same-http.no-redirect.https.html": [ - "8203cb7e1dff8c95023d9ee0bb8071e5ee4f9777", + "46234a7168379884f162f6ed5842440f05ce6e7c", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/same-http.swap-scheme.https.html": [ - "54114ff754bed04baa91e40420e5261f6393c2a4", + "27b956ee0b211fe04701cfd2688d8e8e9e5655c1", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/same-https.keep-scheme.https.html": [ - "9a7cc113b335836f2b0cfd1c9536a18dfae49c68", + "52f3cb99ada0cc777fb80f0ec6195144c92b584d", "testharness" ], "mixed-content/gen/top.meta/unset/beacon/same-https.no-redirect.https.html": [ - "86c56bdfef5fd6ac2e58955b0cd6ea635df165d1", + "303e047ba53c9e6e8ab60a757a8b02bbbb8750c2", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/cross-http.keep-scheme.https.html": [ - "d98fee3b05f6bd04084047543bbe6dc1d13bb9df", + "ea9697785b3390ad80c90d0f9a431aae5aecf213", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/cross-http.no-redirect.https.html": [ - "6f111d1262329a6a76f7fc28d8d226d38e3e2e50", + "8a29645586171e39db511bd04cbc3d2f58ca0134", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/cross-http.swap-scheme.https.html": [ - "0b35f8b6d90a5751f3c42233c454b5bdcd9fc71b", + "c080c346ccba1d790f4928fedcfdea1c6358eda1", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/same-http.keep-scheme.https.html": [ - "b96a2125eb64062371982798c9d0b5e01dc1aeab", + "ea9c18d6a81b4e9c355286d9f0f19e416665d511", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/same-http.no-redirect.https.html": [ - "280a9cdc6b80113986a34d1ad4822f8965f8df93", + "dfbd794400c75b35558114d94c83d9a9a47d61d5", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/same-http.swap-scheme.https.html": [ - "a9063e42946cd3f8026cc7b1e361fa2375c44dc9", + "2e6296c483cec27a18c742a5126ab2a81fd797ae", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/same-https.keep-scheme.https.html": [ - "4e2f750fd1daab399b4c2217ffa3f03fefb3c651", + "34f1b72647cf216b7208f6ea3b9c31ef30361f4f", "testharness" ], "mixed-content/gen/top.meta/unset/fetch/same-https.no-redirect.https.html": [ - "74817ec7dae18b74dedf21421437a028a9b28785", + "71a29f3f2d4b26b5b189352453e84ed8eca1782d", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/cross-http.keep-scheme.https.html": [ - "5ec2714a6c420857645f88cde263cf32c56c6510", + "30f7407b971bfb8ed6aa0a0c63635d1fe7fadd16", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/cross-http.no-redirect.https.html": [ - "27de3169b9065687bd1e0f787ca1a34e8cc77843", + "846846cbae8e21acd2da4378b599030b13513a61", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/cross-http.swap-scheme.https.html": [ - "efdfd63e5467e6a52af467c1d2c2a7a6e655f019", + "1da530e726d4661d9174bde71acaab77c5343fd8", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/same-http.keep-scheme.https.html": [ - "774ca7f99a3ec0063ac8ee77f5c572745af03962", + "be6065356c79edae716a8ebf46d779beac8217a7", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/same-http.no-redirect.https.html": [ - "3590a140a1d33b0c40ac2d0aca4711dc48ef25e4", + "7c2e96c973bebab741f400b5e2e15379891c08bc", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/same-http.swap-scheme.https.html": [ - "09e8d424ffee431d6eae2c7b6287f20ed818c431", + "ccbcf08d624e60f0d5f1a80b0d2d1764d6f6bcbf", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/same-https.keep-scheme.https.html": [ - "d8687bd8b6e2260c57f48f8d20e150773c327487", + "83297b91af32c31a15132e9cfab61457f0ddc818", "testharness" ], "mixed-content/gen/top.meta/unset/img-tag/same-https.no-redirect.https.html": [ - "ffa2e47c8a158cb17c30c8e95b67dcc277deb210", + "951b0aa295ec5846cbc86cf3ef8634fc05c507d9", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/cross-http.keep-scheme.https.html": [ - "7ee418573447506286e5148c38dc42a12bb39869", + "4ca29b6c059db7f2998901bd5e245be8e4608a96", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/cross-http.no-redirect.https.html": [ - "be00ef5d27de4ba371ffbf13de572ad6027ab5fa", + "edcf944a7489fa1b33b0743838918e116d1849c9", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/cross-http.swap-scheme.https.html": [ - "9bed22b198fec904c3ebfca6687b504b9fb10944", + "c408c72d125c499b9f440ab122d50d4c1dd0e393", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/same-http.keep-scheme.https.html": [ - "3849927c9b388ae822d9b9bb4765cf9278f2112c", + "6eabfab8234e9d33a4149d2a22413fa750cfccbc", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/same-http.no-redirect.https.html": [ - "cdde11b1449e35b83879a88eefbe660cf4f2f50b", + "4f823de23e66c202d2cd93de879536f7409b3cc0", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/same-http.swap-scheme.https.html": [ - "e9bcc9e6bf7b9f66557c81269cc3801b4dcefd8a", + "96a08a133b3a998154b87c08af7afc28d92f164d", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/same-https.keep-scheme.https.html": [ - "493d92e34f9dcb570443e0466f2da990c0dbc58f", + "8f3414e493fc658865d2121c2b47c7aeeea3619c", "testharness" ], "mixed-content/gen/top.meta/unset/link-css-tag/same-https.no-redirect.https.html": [ - "69ab08e8f306604a464d529d8f559746d78360fc", + "b9b3a61d3cda8852ba6c1545f5bdc7e3b2793abd", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/cross-http.keep-scheme.https.html": [ - "30594cc754716722bb9d6c31693a8e7dca087f4b", + "cd95c8c3aef41ed8a24e7a5e56285001f4b8583d", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/cross-http.no-redirect.https.html": [ - "533309e93b363f28fcdf576ca660b27941be4c9a", + "a21b718800e6f18c5ec96fcab3a1a25947497b26", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/cross-http.swap-scheme.https.html": [ - "5f8ce108fc61010716025b797c056e3abff7b1e2", + "99483c30b02541ee6067f67895b4d4675e984955", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/same-http.keep-scheme.https.html": [ - "076ecb8328dedccd92e9f743451ec829cd542bb6", + "6020508010cd804b201fe2dad01a0ec6dfd8fe2c", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/same-http.no-redirect.https.html": [ - "534d3a134288ffa469d38370593534c792257e39", + "8b6714264730f29dee3168cda404bceb40fa8e1f", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/same-http.swap-scheme.https.html": [ - "cd87071760b6235b8382a0519b430b31c33353dd", + "29a0d46a8a51b66615a3584c6301f0fd42f43f5a", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/same-https.keep-scheme.https.html": [ - "1f1b6d12361497b2bd48aa7359783f3d2f38f478", + "0ba438eee6ea620df44100cc2a938fcdf5931490", "testharness" ], "mixed-content/gen/top.meta/unset/link-prefetch-tag/same-https.no-redirect.https.html": [ - "f8cf49fd07eaaa34aadef4ed5f47ce135dea0e9b", + "555c53485eca88bf4674c4cd6198b41db1cdfb1f", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/cross-http.keep-scheme.https.html": [ - "de3c2cafe69ddfd53c3af562df08261153d4eb86", + "828db98e0dba2751e6d20e435228c2c9ae9801b2", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/cross-http.no-redirect.https.html": [ - "ee9625d31ebf9f00acd07a7d6ad7a3a91d762d6b", + "1dace197dd27051a27e4e22186ac6cb41e6fbd3a", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/cross-http.swap-scheme.https.html": [ - "ab0a387f7c5ab942025eaaaf46073a2ac47d7d32", + "30b3c5bb3cf1da35d25b2c3fb10fbcbac4f79cbf", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/same-http.keep-scheme.https.html": [ - "edbb3f9f2db3c06c9bdef86de1fd2e940ded8cdb", + "ec9eb5b8f2c7bb853bd121649bf7f316f36165f5", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/same-http.no-redirect.https.html": [ - "72ae7e512a62f12b84f2a3b7fbd2afb5add7baea", + "4fb39defdf916bbb32ca5f7e9cab1873d557ee2b", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/same-http.swap-scheme.https.html": [ - "fb969da6369155f1047a398479b91b80b902ac4e", + "01676bab33803db2d33224de4221284becdf6e25", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/same-https.keep-scheme.https.html": [ - "c537a645e006a6f8caf8960643ce3a24b6969490", + "ac1e85311546285d7e40eb1ea3cbe67c10b50bea", "testharness" ], "mixed-content/gen/top.meta/unset/object-tag/same-https.no-redirect.https.html": [ - "ea3e82ac9f4ea031b550237fab47942954215a93", + "e248122edeb61ef753dd8f70d4dd92e956e70e88", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/cross-http.keep-scheme.https.html": [ - "6ad20e5a28bb603f278046f9f22d160e47fed739", + "6417081f9fe189dd6a7ae84e754a88b8203e9a44", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/cross-http.no-redirect.https.html": [ - "533eb0ba8fb65fa701bd086ce97dacc716f76624", + "2c3f9e1cbfacab2594f94cc350c4f939c1dc1f63", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/cross-http.swap-scheme.https.html": [ - "6c531f3cbcfd698bb81fddc2975662ed0d056a4b", + "886e6ef82fd8187eb7bd327e7c6ee934b36bb430", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/same-http.keep-scheme.https.html": [ - "d46d6f40430aaf23e7e6daefa7ad3e24cbdb042d", + "75289034c921de435915c60f30c8d2bfc7290ce4", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/same-http.no-redirect.https.html": [ - "981d6c5a2ad536bbd6337fbbdbb41c5a6e30b41e", + "52a421f7428cd1dca2879505ab1c8c06c26611a7", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/same-http.swap-scheme.https.html": [ - "68233cd9b21eeb8cee00e1c38074694f370deff4", + "26ed43eca371636bc974caa31f9fd811641db4f4", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/same-https.keep-scheme.https.html": [ - "e702aef5b02d5260107286f07dad8b7ad765dcfe", + "6d10711d638f4748a864c28ca680566d3e477d3d", "testharness" ], "mixed-content/gen/top.meta/unset/picture-tag/same-https.no-redirect.https.html": [ - "b26d44db206e9780a46d216f713165ae270eaeb2", + "fe4da56e32a76755c5448b710c006f88b6597020", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/cross-http.keep-scheme.https.html": [ - "727fc11dc385f59e8df94fe8901007a9572a6d07", + "a5f903c2fd262253b8876177a0416195fd52a6bd", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/cross-http.no-redirect.https.html": [ - "9b416e87fb1434b37048d00afb0e9916a45abbbc", + "f3594a9c55c1dd90503a0b0567b462fabca3407b", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/cross-http.swap-scheme.https.html": [ - "fd6c3be8ae39572851ff5b3d0d12fe76d74d2192", + "1933b3753a23bb5a5b657c9888dba0f1697658c8", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/same-http.keep-scheme.https.html": [ - "479be7863485bd49ff87e1ca0b5d724172ae134f", + "bfc3391e7d4ad99ad2d1f9d3feec688848c8deee", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/same-http.no-redirect.https.html": [ - "c32977196a997ddff7a8272723ba8bf726927941", + "712f802dc160d1ee8314b1b408b30ce31458eca5", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/same-http.swap-scheme.https.html": [ - "ba13e682fdb2b710e7f930cf2d7f578681cfc09c", + "c70728730d811944707bfdef009ed248cb5b999b", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/same-https.keep-scheme.https.html": [ - "01b37600deeed9610f5f8fff92b2debbf2fb90fd", + "d58c20a049b88b5af4a233194c217cbd53468112", "testharness" ], "mixed-content/gen/top.meta/unset/script-tag/same-https.no-redirect.https.html": [ - "7d240ececc162eb02c01250efe2fd26de7b73980", + "3d29665067f481ae779acf4d8dfd21330fec92e4", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/cross-http.keep-scheme.https.html": [ - "9529cf7e8d3e5ea21dd9071aae907c98153c4c67", + "f40396db9383a2ef4e8390a67bb410ada4166199", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/cross-http.no-redirect.https.html": [ - "ea35f29833d4ddd3510b6c0b3c8e717cc2968abe", + "98fa4b69498e4e44489c2de41cf0ee68b4c0183c", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/cross-http.swap-scheme.https.html": [ - "4b469e65810eca0468913f0b6c9ba63e8455ebdd", + "d521ef72c982abd5313c44c5dfc7277f9554679b", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/same-http.keep-scheme.https.html": [ - "8020ee0e8ad2adf5f1409aa5f13c1004a0042931", + "5f4696c44e77e1d284b6e008e5692cdc118e46ff", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/same-http.no-redirect.https.html": [ - "fbaa49b7a9a8f96e59a4dd86946936c5bef55fff", + "4c3d2b8a0fe4a87b15f626d3d573389ba71ccfb8", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/same-http.swap-scheme.https.html": [ - "f0b76254b46e61df1f63338b7bae51ccbaab95a4", + "2aef0959dde342856a56489149fc1219b49a3436", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/same-https.keep-scheme.https.html": [ - "79b3c0a284824e37bad0910c63f2743928d3edbe", + "89f1f67de62d68ed9ef729273fe0c5ca2b1d81ea", "testharness" ], "mixed-content/gen/top.meta/unset/video-tag/same-https.no-redirect.https.html": [ - "c2c7f8723c4a54c1d78e195523d2ebef8bc4a922", + "2860df22162786e14fa502378dfe2f88fd092c6e", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/cross-ws.keep-scheme.https.html": [ - "18ec117f46185af05e8cc9633f9aca1a66e9b2b0", + "1c5302b12c4550ed3002f7f4ea3d547518472c3c", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/cross-ws.no-redirect.https.html": [ - "1673464aae0ac4dd1a2277302b2127b8cf9e0722", + "8437326b180101b12b71536dac8f2cbd56b08c67", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/cross-ws.swap-scheme.https.html": [ - "bd8d6fd79676c2ae39b66728fb069dc319ad665e", + "92fd464c93a63eed27a349700a0672c29036c7f2", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/same-ws.keep-scheme.https.html": [ - "b5080134174ee64490a579e5da9844f22dc2388e", + "ac11208f23e95a97f6213fe63cb959301d204637", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/same-ws.no-redirect.https.html": [ - "9f168b080faf350f0350bc8aad907f7f8f87f9eb", + "967445ee8d5dd64d2a9a71bc1b5413810519bbae", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/same-ws.swap-scheme.https.html": [ - "24445374ae51caf489c1ea8018a9b64d7d794c83", + "273712aad9bc9b07a5e0582ef934a11089900648", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/same-wss.keep-scheme.https.html": [ - "b397c4e2a61f687c9dfb248da432f32c46dbea17", + "47619170144977fa9bc212e7969d41136c00ff6c", "testharness" ], "mixed-content/gen/top.meta/unset/websocket/same-wss.no-redirect.https.html": [ - "d19674db08c4c8db3fed0d7f53353822dc034bf4", + "ed5c0ab8a77e14fb8b6cd7deb6ff2a3ef0b41b97", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/cross-http.keep-scheme.https.html": [ - "85290c11b7165a1254ce81159be354805cafce3b", + "8a915c29f9f45c37c998c4caa70f819c895f4d06", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/cross-http.no-redirect.https.html": [ - "0e125bcd8beca51cfccc70e511262ff21f50cc65", + "5aabf759341371ad8323399f83c9160407e3ddca", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/cross-http.swap-scheme.https.html": [ - "b92b11d0be8678052174484815d11ed9eeea260e", + "90c204d7a0d0dff099916a14a1eeebbb15dbc3e0", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/same-http.keep-scheme.https.html": [ - "213cf96bb28728d17dff6888b5176f9ffd66243a", + "93668db49e4f3d79d39ab72bc525db6353a4d74c", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/same-http.no-redirect.https.html": [ - "5ec4866157a941b1a9319af6ab60089a115b4aae", + "8521e37281c964ea9a226fd1bdcfc1dd33c169b6", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/same-http.swap-scheme.https.html": [ - "c75044d431019681931a0031d21c5fad2871cdb9", + "d5f79ad60212c6ec0b48a5be3e9c6a492d4b7a69", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/same-https.keep-scheme.https.html": [ - "5c5d73b35e9d76b8bb55cc56f98454bee4547151", + "042bd14fa8160b38c7852c168748a6c70484e4a1", "testharness" ], "mixed-content/gen/top.meta/unset/worker-classic/same-https.no-redirect.https.html": [ - "4aa31ce50e4f91198ec3a2c13ffcaa282993cd3e", + "05b13b680a532429a9bc73149c5249717f8b263e", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/cross-http.keep-scheme.https.html": [ - "adba87787174cc6734897d5211b367eeaf592581", + "60963f90586f89117f898378512ad682dee5e275", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/cross-http.no-redirect.https.html": [ - "7b54a338fdfc9e7f8a55eb7eedb0dc3116224a3b", + "7ced3b86cdbc9deb1af44a99f3060df26b4caa08", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/cross-http.swap-scheme.https.html": [ - "57d144abd756bf9c32b15ada1f7fab60c8b861af", + "15711a976bf846c784391aa816312950a05c001f", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/same-http.keep-scheme.https.html": [ - "cb127cf179284c4668d296994ba2cba6bc4603ce", + "4a1d376683949f31b147e1b3e535e36dc0837515", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/same-http.no-redirect.https.html": [ - "768fd4cce7fd8bb9eff831556fe5c26667a3594c", + "b8c53bae221bdd5ced76632eff13fe0b93ea04ae", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/same-http.swap-scheme.https.html": [ - "736f6bce3798287de07cb5d5928160d8db592661", + "be403a893c9ccef130b030c1f1857143510781e0", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/same-https.keep-scheme.https.html": [ - "5be23a031177ebe34b6483f5f2bcf5e496dba92b", + "06a8f47ae42d480c0d67bf08c9c6cef963fdc969", "testharness" ], "mixed-content/gen/top.meta/unset/worker-import-data/same-https.no-redirect.https.html": [ - "858a1528043a9d1a7132b37c299c5e34fa6b9bf4", + "211bd0d29981358e1dc754a3353f3a43219a34b9", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/cross-http.keep-scheme.https.html": [ - "a1e6f61e6b7e2db743dfb7027979cc5f0ce204aa", + "69dcfb7e5cb5b30f24e0b181b3b3968542673f35", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/cross-http.no-redirect.https.html": [ - "a95d2061b68e1c6df2cde0b52f82692ff0dd3bfc", + "816e3449092a398f12a7287b4d2715764aea56ac", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/cross-http.swap-scheme.https.html": [ - "c396cdc20baa6bc5ac49e52abaf58705c1350488", + "9e167de1486d409caf0ba5ef4b41d434ad06315c", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/same-http.keep-scheme.https.html": [ - "20414a3dac3157932300b5d8e284713af3994f27", + "75e103e634366ff03e22e11d32b0cefed280e1ce", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/same-http.no-redirect.https.html": [ - "9397a3523e89853b6e3c2df662c37666550f32f9", + "f9e963d8dc778e2f59687decd714421babb676ad", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/same-http.swap-scheme.https.html": [ - "0340366bdf20a1facd9f67ff46c510f77ef380c7", + "f0397f11b69a19ca884dfcaba8abd571d4ed1aa4", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/same-https.keep-scheme.https.html": [ - "da0e808f1847ef6614b3fce1f8bad0be41c114e2", + "b81758e5b79fa6fbf2b50c2118150087b06caef5", "testharness" ], "mixed-content/gen/top.meta/unset/worker-module/same-https.no-redirect.https.html": [ - "a009215e6013593c5ee461e35f247be61653f9d1", + "a7399e2dcd2647a9f440cbc77c92238758baa795", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/cross-http.keep-scheme.https.html": [ - "0271fd3694cb9425474f8a7ae4c09d484fced9cb", + "1c26e0c6e493cf60706e3dac9b527b18c12bfda7", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/cross-http.no-redirect.https.html": [ - "2a1158bbb9974f900dc1583d73907143bd1d62c0", + "3ba399bb528163ccf6ad67fb052dc51bd75dfdfc", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/cross-http.swap-scheme.https.html": [ - "d9f4916bee788fae5cb5c0cd5672d92ff33f6d34", + "b5950d9318f4ee0ca970b39299dda05a2fb1c5d8", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/same-http.keep-scheme.https.html": [ - "5258084ec5e95ff7d100bc5c59043ceca78987ec", + "b9a80c07de42b59b1cc1d6ed6154113749041269", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/same-http.no-redirect.https.html": [ - "437db2c854b14007254ab39eb3849d3aa6df36c4", + "1b2f858a7ab7a6cb620da2e322cad277cc568877", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/same-http.swap-scheme.https.html": [ - "48fb79a3021ca1f0c99c10f8533aba9f3b4c9bdd", + "6c8e517bf53137601c528131011d2571b80d5859", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/same-https.keep-scheme.https.html": [ - "49a5222cf78b89f65bdbae0222de68de3681a5a3", + "403fc3417d7736bcd08766fca50fe6bdc8a10b74", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation-import-data/same-https.no-redirect.https.html": [ - "b111698b904c7fab5a17076fdd5ce57c27c05c10", + "89f4bd68af83f3ff61d48c0adee951db5453cf54", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/cross-http.keep-scheme.https.html": [ - "5973cc7ef1fe8cf481e46c2689842cda3703c997", + "a2eff5fdbb029111ef79b73ba5faa9abee764fda", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/cross-http.no-redirect.https.html": [ - "6f8ec890f139482214c7a310c0d1a6c81412b83f", + "d778e5c873ce92ca21f4071f643c2af8ec8b8d2c", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/cross-http.swap-scheme.https.html": [ - "21e8ec651d0f349647ad38049c9911b533b6ee02", + "23b98c374e42dd018b0c0574cdd3fd2b2abcba24", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/same-http.keep-scheme.https.html": [ - "9f57d2e8d762400181cb5efd865e83057cae2a29", + "c35a70d5bd95e9f514599e2d158315ba176bb4ac", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/same-http.no-redirect.https.html": [ - "0e4e5dab66a511a902c6d4b45060534da2ae2bd3", + "b4623495821e4d2e66ad413030973de97d3a33bb", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/same-http.swap-scheme.https.html": [ - "97a512f434d5735cdcfe0342f7c6b031a19fb6e5", + "fcb0b175c356ff219ba1892bbef5d38dd2f1b72c", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/same-https.keep-scheme.https.html": [ - "91ef446211f449504bf435983728f036a493fcf0", + "1afc5a269779c869aeba2abd3bd4887c2e2f648a", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-animation/same-https.no-redirect.https.html": [ - "a5f042be15096ca0b6105a165051f369d8f5a375", + "ed7892242a975165bfaf66bbf3ef9ea330b1a04f", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/cross-http.keep-scheme.https.html": [ - "6e8da756204ef8c4fa3b9eec351ced53967a9b54", + "fedb12fcc32cbeac63f789f9411ea307c2cfe87e", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/cross-http.no-redirect.https.html": [ - "32fa16408b125824f00ca18b22ed9181342c7092", + "657ed84d2bb6d79968f5a62081d2327c6a1cd512", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/cross-http.swap-scheme.https.html": [ - "9fab4e28179ee55f8a904f04d278d6d823c61403", + "1ccb5f30cc515fc847094aa3a0afdd2f1ebac56c", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/same-http.keep-scheme.https.html": [ - "81a971be92176761e1e710901c9a11287df382c1", + "caa5f4b57e4e424d6e5953400eec225a4f760f1d", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/same-http.no-redirect.https.html": [ - "5d434c0504716491b0e44d97cdad252698aed425", + "7bf0db17cd5a7d8302b5a8c872bdfb26f6c6ccd6", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/same-http.swap-scheme.https.html": [ - "431caad8a022f1e5e255ecc4e3a3479403693083", + "4a91a21f0dd3b462136d0a536c417592376bd107", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/same-https.keep-scheme.https.html": [ - "e569aca97f8baf788a768754ed646772cf146ea5", + "d7d0f8c6b883b0b7b1fe73b2c30d14c030f951d5", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio-import-data/same-https.no-redirect.https.html": [ - "00a1085db0321eb9f9cca4e05959ad4c269334f9", + "78472a912426721ba3f6cd2527c27d3196ef389e", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/cross-http.keep-scheme.https.html": [ - "1f4d8e61eeea8109f658fe9a00a9347c651e76e0", + "2cbded7e61461bd2127d71b90fc8712d6fb04952", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/cross-http.no-redirect.https.html": [ - "4027b3ec8585f4638bdd9d7bd2b2c6362ad08cc3", + "4e75da94e531ff9b44f78948e4f53af04d6d807e", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/cross-http.swap-scheme.https.html": [ - "90d4553b6b8157c7b2fcb59a78f7b91bc59c2d0d", + "98faf005e955450e214f5738d9e4a9e8c8e6ee1e", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/same-http.keep-scheme.https.html": [ - "81bffa4220feb7340c3431216a4b52f876c64744", + "4da5197252c3b3afe8dfd230e63750a9110cf70e", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/same-http.no-redirect.https.html": [ - "31e123c95f9f8d07ef4a6e20994e0ff0d3561df5", + "709562268b2829d8c15ce542703a434dcd0b4c4e", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/same-http.swap-scheme.https.html": [ - "ae01e10930f4c8598f0614e07ea1655cc0a16a2c", + "991ddf81804dd2b2ef99579f74240d0069c69d2a", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/same-https.keep-scheme.https.html": [ - "131bfeb17377443b06fcfd4a1aad10eb06dd6e65", + "f199071a9596b8038a9c527f4aa5a5c7c81f91c2", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-audio/same-https.no-redirect.https.html": [ - "96e0e303b99129075c7c558bc20e9bb9e289b92a", + "76b119d51815fd92812aa7acd11a6bc3ac747035", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/cross-http.keep-scheme.https.html": [ - "d6de7f78362ee6d1e45a13beefef978106ff1ac7", + "4f5d2f6030a23e0280de1ff8edb1e7b6647e6243", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/cross-http.no-redirect.https.html": [ - "5109c5b45f1b8f9a53e9a0aa9402665939b3745b", + "09aa789768874951777302daa228bece783e959c", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/cross-http.swap-scheme.https.html": [ - "9e0eac105f48453eca8f9fd4aebfdbb3ba7076ed", + "345d3d600188a29dad5a129cd046d9c0ee8a22e2", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/same-http.keep-scheme.https.html": [ - "8c1d39e2e53273491463d19e272003285ce9e3c8", + "529c85c68fd2eac97bde46294c619d8abd5cfde0", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/same-http.no-redirect.https.html": [ - "da24a8a50b4915c521cbbb800637dc827985fcda", + "ff88cbd4453945cc18a3498190b2392e5ddb2ceb", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/same-http.swap-scheme.https.html": [ - "7ec5888d3cd899820e5838a074c029a338312ed0", + "5fd88554beea6c7cf7ce17679a35aef17544a340", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/same-https.keep-scheme.https.html": [ - "0609fa835c291b72ba50e374a7fb65b2e74321d4", + "f834427d90692cc606b817977a87caaef3d2d23a", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout-import-data/same-https.no-redirect.https.html": [ - "a55cbc20b3f17030d1a04b96505641d670085270", + "06138a35960cdcb54ae3ec22926a256cd92b2f46", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/cross-http.keep-scheme.https.html": [ - "e96a0649bdb469a62e75bb4db06139a23c8853c8", + "4bec395b89bccfb3078bc626dd9750ae4cc0ba7a", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/cross-http.no-redirect.https.html": [ - "9367a0e6ef6ba1a4ea4b7925d6e16d7c520aa836", + "5a98e96931578ebcca310c4f134ee5a2767f161a", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/cross-http.swap-scheme.https.html": [ - "5dc4ebcd7f8e635ad34efe46e1952769ead83b33", + "e4ebe6eec9eb13e494a1836b004d19a3e1e6d19f", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/same-http.keep-scheme.https.html": [ - "d2840c520801ef551795bcf055d05d73e9778f83", + "bee78809a5c5c266fbbb6018a46eff3cab6b54ef", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/same-http.no-redirect.https.html": [ - "b3b9c49faf3643d137cd7cad6814367b9be5eb6e", + "18102d6d2fa71d923f0cdcda2acdfe1c7a14b542", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/same-http.swap-scheme.https.html": [ - "ef03e297e96eadaf4a8975d23519b9b149090ecf", + "5b9ae888b2547d9d926a385f81d8b4cea7a2e422", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/same-https.keep-scheme.https.html": [ - "fc92036fbaebea1967e237a256d1141b14263797", + "a2211cf181ff97c5911902c86d604c1744e49ed1", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-layout/same-https.no-redirect.https.html": [ - "45dfa55e2129a68a9c250ce81574c0eb0a8fbfc7", + "c16b9831bcbb691ab36df73a9aa21e8a0f939920", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/cross-http.keep-scheme.https.html": [ - "e881494b92bdf7867c12ceeacfae285bc1bae4b9", + "a483e48787d47f703eabbbd38dfbfaa85aa826c4", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/cross-http.no-redirect.https.html": [ - "afca8013aad30e6d40c47918d1a681a9ca09a5bc", + "de0e2d31f32951c12ad99a82ac4a285e9040cfc0", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/cross-http.swap-scheme.https.html": [ - "582221b6ebf1995bdb581c765456be6776e52faf", + "bcc80e96055540d926691869c840c153a592b8b3", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/same-http.keep-scheme.https.html": [ - "fb9a3a471be6e5113d2429ed5465aeb251b0e9e3", + "8767eb58485a33cfbeaf2be7960bb38d8955b34c", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/same-http.no-redirect.https.html": [ - "1c5ac976e991c73e78737371ff01509f74d0dec7", + "a4dffc09951ecc621436e632ab92ee16682f88c7", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/same-http.swap-scheme.https.html": [ - "ff4a8e85b2b7b75ba501e914b1daf3909c04148d", + "5242d8ec951b1c1bf50425075441f23988f09ef4", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/same-https.keep-scheme.https.html": [ - "cc89ca597315ef4f7ad3ebc816f23e8c951e1442", + "b1814df609cc59ecf0432343ce46622281f9bcc1", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint-import-data/same-https.no-redirect.https.html": [ - "f61e2d7983a011d606dd0b3772a2f587b9af68ee", + "14fa0ffa3ecbadca27a40e67b81d3014d93d913b", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/cross-http.keep-scheme.https.html": [ - "8ba634d1be61bce28cf4ae7a626a16c13ad24f3f", + "b8a19ccdb2646485c84ab4ec53c8c340594a4b6f", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/cross-http.no-redirect.https.html": [ - "216be7f865046f9fc2b15db7182c002ea58c811b", + "01dac7c6e1dfb50e0e6c5c26fc6526925a82b0d2", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/cross-http.swap-scheme.https.html": [ - "1340df63bfbc16057a9ea171464ec6aa9fc2746b", + "92eea339a7c37bf8a6c9b3cd7febb272b961f28a", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/same-http.keep-scheme.https.html": [ - "a4ff29a8ba3ee2d3cee2539f1f6c42fe5d1b1ace", + "88bf23e9270120f407b0a5b073b14d4129495168", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/same-http.no-redirect.https.html": [ - "884c56348218c643122316d591242e3fd24ff99f", + "037008e4c66ed75581667404637f668b7d75cb49", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/same-http.swap-scheme.https.html": [ - "bd6fcbbb06cde492e30227b3110a2cc5044ac632", + "c758770f96bc8bf4f8b6109334ef60a3d0cc061b", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/same-https.keep-scheme.https.html": [ - "a6b18616e2b2d05fcc0556d74f3740f846412967", + "337c8745aa6e7df22692fff7f033cb7ba2a0f261", "testharness" ], "mixed-content/gen/top.meta/unset/worklet-paint/same-https.no-redirect.https.html": [ - "6ddc092c5d644d37c76db329f52dd9caf763b272", + "053785eed75c8d584f7b34c273f506ed3d90d870", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/cross-http.keep-scheme.https.html": [ - "9ff477cc49d68e3f55af822c71ea759fb3c27393", + "6d53b02630108b44f2e2dd5c3fef9fff31039572", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/cross-http.no-redirect.https.html": [ - "fbfb8fbe7f922e676254bff78e1d44977a19584f", + "963c4196c28dc34ce666bee3ab79f6ffe1bc70a3", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/cross-http.swap-scheme.https.html": [ - "fa55bdbe2ba2f6b73d565d9d7df1e63acedae3b8", + "17eec1450493217946163e73abcea52de23a10aa", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/same-http.keep-scheme.https.html": [ - "8522fa36fb36c9bb06b4b44139def2b2761636c2", + "792a2901f485569d7c10d0ae401a816987f4887b", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/same-http.no-redirect.https.html": [ - "1668b85c48be232779d448c5404035ac30816195", + "2feee7befe86f1ce155b2a2c18081beccc5e972f", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/same-http.swap-scheme.https.html": [ - "98ed3608031bd80cecc4c824c28854c9a744ce70", + "a976fc107d48fea3219817a3c32168c686076545", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/same-https.keep-scheme.https.html": [ - "e05e09b077fdb2293e7322f81cc561cb677ee1a0", + "cab77fe02d1601b852e5946535686f7424fed529", "testharness" ], "mixed-content/gen/top.meta/unset/xhr/same-https.no-redirect.https.html": [ - "0c58b6aadec567aa382189b85ae96e2fd8db4761", + "b9bc0f4f535c530672bef274a80a7ab3811074b3", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/cross-http.keep-scheme.https.html": [ - "9559ff59f253e902540ab29e6dcfb0eedea8157f", + "db3319196c8ffdd676d8525c29ce7e90ddb9f23c", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/cross-http.keep-scheme.https.html.headers": [ @@ -483706,7 +483706,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/cross-http.no-redirect.https.html": [ - "54aa6ef413879b3fa8612771f2b1e271c79e4804", + "259e3e3f0555d501f06679afaf45a914522352d2", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/cross-http.no-redirect.https.html.headers": [ @@ -483714,7 +483714,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/cross-http.swap-scheme.https.html": [ - "cb6fca62b349409f061a4420f4f6fdc34ba255f0", + "3b951b3ce925567df9f3a00121f3718ffcaa53d1", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/cross-http.swap-scheme.https.html.headers": [ @@ -483722,7 +483722,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-http.keep-scheme.https.html": [ - "f10f67ce9d0fb76c12ce6e6c3088f1a6ba2a79d2", + "6131d33a7a45de72b5304a783646109db310cded", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-http.keep-scheme.https.html.headers": [ @@ -483730,7 +483730,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-http.no-redirect.https.html": [ - "331e7df75c52415015b006fc12870eb7af9f86da", + "35e79ebb8335e9f9c43e198aa03bafb17f5e0096", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-http.no-redirect.https.html.headers": [ @@ -483738,7 +483738,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-http.swap-scheme.https.html": [ - "3d2410cc39e647b0df6a42b66e6f19c8d0767d17", + "0ee4ae798d3fac261839f97246422889726abb18", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-http.swap-scheme.https.html.headers": [ @@ -483746,7 +483746,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-https.keep-scheme.https.html": [ - "2f6e11dd59aec7f84c6bf9042c8034fafec3b711", + "100a3066d41df625c048e178c83152ba1caee8fc", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-https.keep-scheme.https.html.headers": [ @@ -483754,7 +483754,7 @@ "support" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-https.no-redirect.https.html": [ - "3e86f97729bd29e3c57da12480e81a8a98457c43", + "116fa4e0391b611105fec1ec074c7792c20b74a7", "testharness" ], "mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch/same-https.no-redirect.https.html.headers": [ @@ -483762,47 +483762,47 @@ "support" ], "mixed-content/gen/worker-classic-data.meta/opt-in/fetch/cross-http.no-redirect.https.html": [ - "a1d639e507020a4a7c80c356b91b5589622fdf66", + "f2c47e27ae0f6e7c0f75451241ca97d46edb93ce", "testharness" ], "mixed-content/gen/worker-classic-data.meta/opt-in/fetch/same-http.no-redirect.https.html": [ - "33e44590b321f294a570b84ad123146f2f2351e7", + "4584eebca895bc87312c1359f44f361238ad920b", "testharness" ], "mixed-content/gen/worker-classic-data.meta/opt-in/fetch/same-https.no-redirect.https.html": [ - "9e9efae7fc65ff47333e1817e5d42dbf345f57df", + "0a0de6ec532e971912d1ad279177dbacfd49227b", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/cross-http.keep-scheme.https.html": [ - "9559ff59f253e902540ab29e6dcfb0eedea8157f", + "db3319196c8ffdd676d8525c29ce7e90ddb9f23c", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/cross-http.no-redirect.https.html": [ - "54aa6ef413879b3fa8612771f2b1e271c79e4804", + "259e3e3f0555d501f06679afaf45a914522352d2", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/cross-http.swap-scheme.https.html": [ - "cb6fca62b349409f061a4420f4f6fdc34ba255f0", + "3b951b3ce925567df9f3a00121f3718ffcaa53d1", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/same-http.keep-scheme.https.html": [ - "f10f67ce9d0fb76c12ce6e6c3088f1a6ba2a79d2", + "6131d33a7a45de72b5304a783646109db310cded", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/same-http.no-redirect.https.html": [ - "331e7df75c52415015b006fc12870eb7af9f86da", + "35e79ebb8335e9f9c43e198aa03bafb17f5e0096", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/same-http.swap-scheme.https.html": [ - "3d2410cc39e647b0df6a42b66e6f19c8d0767d17", + "0ee4ae798d3fac261839f97246422889726abb18", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/same-https.keep-scheme.https.html": [ - "2f6e11dd59aec7f84c6bf9042c8034fafec3b711", + "100a3066d41df625c048e178c83152ba1caee8fc", "testharness" ], "mixed-content/gen/worker-classic-data.meta/unset/fetch/same-https.no-redirect.https.html": [ - "3e86f97729bd29e3c57da12480e81a8a98457c43", + "116fa4e0391b611105fec1ec074c7792c20b74a7", "testharness" ], "mixed-content/generic/sanity-checker.js": [ @@ -494062,1259 +494062,1259 @@ "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/a-tag/cross-http.no-redirect.http.html": [ - "7269ca1b26dceeb92dc7b3a4c4e0ca787fa1cf61", + "c44fee3779aeb4203e01a894bf1c644b89f9f908", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/a-tag/cross-https.no-redirect.http.html": [ - "cc10001e1afb0c991fad7cb51c1486e8eb3754cc", + "3b4ef7ebe0e97cc20d5c1e4f1a3320b8350c4471", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/a-tag/same-http.no-redirect.http.html": [ - "c4778882c09053062c554428c1436c6920d7a542", + "43eaa248162da3278e00419bb5b9b3a3b8836b67", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/a-tag/same-https.no-redirect.http.html": [ - "e412e74f879adab52672c655c6400b1be485efc3", + "f742a56db896a5805af6d8c74528291fdc0de01f", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/cross-http.keep-origin.http.html": [ - "fedb3811d2e102b7963fad2ba7522f66fa7acfb4", + "913ad186493a9e63a1b12039e215759243c21129", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/cross-http.no-redirect.http.html": [ - "d96a1d081c102f397dd15ca600933c80569a3ce7", + "844e13e124037b6944321c615284fc0733e6d026", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/cross-http.swap-origin.http.html": [ - "694e8a328d96893fdc438df74715144db0f66f76", + "e98b08159c274706f964d3dd3f626989649aee75", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/cross-https.keep-origin.http.html": [ - "22fe67a1868806985763448e3ca989827037e626", + "fafc95e951a4063a28eb8818a97921522c3e6126", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/cross-https.no-redirect.http.html": [ - "d59ed7d953b1310057eb8bbf61b48abfaa483860", + "239e995b1d6c84630fe7439ead34ba2c472695ad", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/cross-https.swap-origin.http.html": [ - "7d333bd1f0e6c7d28388072dc6ff10be1f874c99", + "c301a60c5113519a153876b8fdc3cd366984938b", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/same-http.keep-origin.http.html": [ - "6d74fa964196875a27cb01cbe3809ef522da7064", + "3bec1166bb5f9860ff36757a14e9b7d09ffbb5c7", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/same-http.no-redirect.http.html": [ - "80163171ec933855c24e0e1152abf4839e2052b8", + "7345a7fa474d379001711702311991899cd8dcf1", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/same-http.swap-origin.http.html": [ - "2b27dd5fa7045f1e38f8b2bb6f921acc1a34db0c", + "bb229dd93986bc064fb6ba9153ee2a30fed1f1a1", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/same-https.keep-origin.http.html": [ - "d6d4d6bb9d01512c2e569a74848a165e22a9bf48", + "3020fe48cad815d643901de832ffceb825c2648e", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/same-https.no-redirect.http.html": [ - "c7a32e5d0ee285498ecbdc0e0e272cf00419fb17", + "58d9c553e0707c37eb1991148ddcc93151220cb2", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/iframe-tag/same-https.swap-origin.http.html": [ - "04131b2b3350a88c0e2569cb2583d3aab0b93516", + "1f884e98d46f6ff9b2f0297ecdd09337d97f76a3", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html": [ - "91217a1b1f56d5979f948469782b508872ddab46", + "ce0748b7304b7c251a85cd799cea74f6d5258148", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html": [ - "0c9f3b9a3d7e9f216aae6b6f86b77dccb15a11c8", + "1febea391c10d66b6bf604d02365aa493a761bbc", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html": [ - "884b9eb1726adf3cf1e7ca3599e80e8aeb24f854", + "6c2c49c660b807b0e459f354d9756871ad3369cd", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html": [ - "4012b20f7c3d9a31102395091ae6dfc4747c9e3e", + "01a012540b0bcf445a5637a1ffbf4eb34d747048", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html": [ - "fdc199880de047aae7d92fd8a679846620f0bd0b", + "b966bcb7d74ba93f54ed20d75bb07b0fed834b92", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html": [ - "7c9fece456b8ca9aa4c8eb6acf0947516c45d525", + "45da014db790dd0feb69548d4c069a8c1da04c30", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html": [ - "7cbfb80140af15b336f8cff899b36daf7cc65d4e", + "443ddf03354ccb68b16d12ffcdc05f8f4af634df", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html": [ - "1f01d72ebbfdcce10c3839b6e78b49a23a4de450", + "fd22285abde54232de1e0632e6bc6a53dfa619f8", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html": [ - "16ec9ba4d28b661f56f6bce73e12ee41579fafd6", + "17e8baacc47b495b5175f6cd33a16b60a5c94559", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html": [ - "27b073035aa4b8acfdab394b0c164a07d12021fb", + "d0dc648bf05af69627572298764d0105f90ef23d", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html": [ - "5d5b14f492699ce73b56ebb304fb071ade3978f6", + "f3ac8e18f1fdb8ce5de3c6e8c23deda773901489", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html": [ - "7db51dbe340826138c3e00bb11d0f635e7e73b4d", + "d425a1f5029142661f3147fc4139f1d75794f227", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/cross-http.keep-origin.http.html": [ - "c8270f896ec1937f04efac4f740154ecaa57bf82", + "e0178946d8e6ce8e242813c4fc3d3cf191bc5a55", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/cross-http.no-redirect.http.html": [ - "da7d8dc24c46bbba81b46fcd6c989575a2770beb", + "2555b7afebecc82b7f45d8061668baba62a5dfcb", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/cross-http.swap-origin.http.html": [ - "908637bc501b4fa994a6f1e4597719cb12426c0d", + "a4e61555ffc6e52789ba98c1660853051a7af728", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/cross-https.keep-origin.http.html": [ - "2407b76de649b0b780964222ccd950f67dca777e", + "d29b9f372c2476432a81d74f0ffa2e5e4f412aa1", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/cross-https.no-redirect.http.html": [ - "bab2a50944b6e44880145bbbd156e8e3be333a27", + "e30b8b3e7ddd2d53cc57ffd1867afc8b3b6667af", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/cross-https.swap-origin.http.html": [ - "8d3a921c4acbf386983bff4958ccd24435399d4c", + "bd33928a418e1bbcb368e1b53456ac0537c81a0a", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/same-http.keep-origin.http.html": [ - "59e03982a279ce7325e9be554b83ba839185bb5b", + "fb3ba0e6933cc937cbdf720fdd76dc2d4acae3c1", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/same-http.no-redirect.http.html": [ - "6c44ba0e6a3135dae10dd6c86ce63c2148093fe1", + "d3458df7f0b48f6b2463b962aa002bd265d0ad93", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/same-http.swap-origin.http.html": [ - "3e74519b4bc70737d1d04606f36f3249d01e9f7e", + "ea91563734ab40401529ac4072044d0aa5ea6221", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/same-https.keep-origin.http.html": [ - "7a016b222fe68cb95ef74e16e474ae4767d31cba", + "95388c332793f86717c878e3bd5d535aedf73a93", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/same-https.no-redirect.http.html": [ - "64d75afb49abe8598f76a8e2b1ac6e72206302b4", + "298d1d1b7ef546874eccadf7ab90e82dfbe9db14", "testharness" ], "referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag/same-https.swap-origin.http.html": [ - "8d0f21bd0c67079a587e4d3fa3292edc83af87dc", + "4e35f806fba9385a55bd274ada54981d42ea75c0", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/a-tag/cross-http.no-redirect.http.html": [ - "7414c8e633ba78465818377aa2ade48f8f4b760c", + "5a974e5142e72df5f68694c9b32a7613db1cf20b", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/a-tag/cross-https.no-redirect.http.html": [ - "461d2fe43bbb3433bd971cb60cf741acb5ef4993", + "e1f171c4cf26b61ed71904a3e10ba2c9b73b0571", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/a-tag/same-http.no-redirect.http.html": [ - "364c688a281fb5607adcac76a554aa61a7de185a", + "6b6560ccde71cfa2bfbb233da2e45c7288dcec76", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/a-tag/same-https.no-redirect.http.html": [ - "8de257c500bebf2f86e648fd368f39497b1a0228", + "aac77a683ba78c1b362218dbd4e2258433a7f3b2", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/cross-http.keep-origin.http.html": [ - "dcb7c8b4c39e7896f0f395fdb517712946595344", + "4b9d88c1c14ed297aea610af4cc21247e75a1f11", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/cross-http.no-redirect.http.html": [ - "99a5e73d0640f02faa1b5845a188eb9af5ad2e12", + "2c5ff6d24d7216c2f1a0f2e617b3abf2764de36c", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/cross-http.swap-origin.http.html": [ - "4c394755f51bb0cdbf9a390e3d5c63b3ffcffd33", + "8608779f79673906f4e1f1e730d01129f490ccf7", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/cross-https.keep-origin.http.html": [ - "523da9325278940854f81bc4bcaae02fcb5aadb1", + "f182c76f3304676b0655e36363f9da1c02724df1", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/cross-https.no-redirect.http.html": [ - "0c65dd3bee32499de1eed979d5d44a016f02f93b", + "a0cbaf7997cf8942efbbb9a65a0bcf3a54ff727a", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/cross-https.swap-origin.http.html": [ - "50fb9baa4fc099dd7faf8ba070813419c14e7b4b", + "e2df19f2ca033aefa6ffa9046b67ec2ba5c2b557", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/same-http.keep-origin.http.html": [ - "8946cc15a1231280c58400ded5a5926994c84d54", + "74206f4af73af147e9e09e36f58b369a169d16ec", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/same-http.no-redirect.http.html": [ - "4037c2fb7435b35fa461c755513c4442d8588ee1", + "9f3b43ffeaacf5ff1a206fe28d46ec5a0cfd7c64", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/same-http.swap-origin.http.html": [ - "d9c17d636edc47f9ae4ebac467b5858b7646464d", + "a9dda250ca75973515e1c8067b9d676066d38497", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/same-https.keep-origin.http.html": [ - "8e64d48c83c6db280fdab7d21a3db920953f406a", + "49e18c3f2cfd03d8588b74e53e268a8910172cc2", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/same-https.no-redirect.http.html": [ - "d55ac0bef0f2f0dbf3d266e0e502cafecfae5fc8", + "affc33d286f60676b5fd31e8563e309600103df9", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/iframe-tag/same-https.swap-origin.http.html": [ - "1acc09e2c2d98f2e2e840b173fc2d868ebc1568f", + "053f4a6924d50bba2631d5e63d6caf3963ff58d2", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/cross-http.keep-origin.http.html": [ - "6242aaa9a388d7bd46860366af4da5844ea7edfc", + "150548dffd4ef682c49d55ff1e1226f1f0540fd1", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/cross-http.no-redirect.http.html": [ - "2016094423af2e8f6dd6693d219ffb3a7161b1bf", + "4b7f7186e2bd123675667fc8188024b4470b354b", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/cross-http.swap-origin.http.html": [ - "4c905c16579094f1db297495632029bc98d2d305", + "0b4ab2e534af496d2bfa7e2f1110cefc5d56eacb", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/cross-https.keep-origin.http.html": [ - "d62e9c01292ed1b73668fe03cfccff80fdb6aed6", + "09b2d692ceff5c65267b81bca28efedca8af1023", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/cross-https.no-redirect.http.html": [ - "1b77a0cf85ec3092ce6ea95856b93dce25a32a78", + "804384aed19185d0877aa9df447817c861639ff4", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/cross-https.swap-origin.http.html": [ - "40d2cff83b6b22ac4c2278ec3deea3cd2fe6089e", + "25b0ae358174cf0022cab955bc1a11ed619f2c40", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/same-http.keep-origin.http.html": [ - "817abb90d8adf90c05214a9df4745f31017ff8cb", + "84146616d1900ed302b8056be3c2328ec43de99b", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/same-http.no-redirect.http.html": [ - "7d769f3d141dbc29c3ef6119a1cbe3466441f767", + "d7cc5636c64650ab6bd0f1082720271d4505255d", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/same-http.swap-origin.http.html": [ - "2ba0de6dfe253f98fe58fa3e3e600ba8367eb0a4", + "7ad57b6b4fee912bdd04071002c617f6ef47ce4d", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/same-https.keep-origin.http.html": [ - "eda665dd94624cb33723fa01bbbfbb4afd575519", + "fcaec9cdd638829764d3a9466d85fd2b38aa1839", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/same-https.no-redirect.http.html": [ - "445aa4dc852b2cb80e28a0b8ae4eac1910d7aad5", + "3cc2cedf87cdc0dda6edad556b17b8c406a7aadb", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/img-tag/same-https.swap-origin.http.html": [ - "455c57ddc2f5cb336fb8d7b58d3003c5b9004aca", + "9894edc7701aae2cd52abacc2cbdab995ed6ca2f", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/cross-http.keep-origin.http.html": [ - "ecdf4bdcc2d057c304d16e633e44cea468504b2f", + "171dd12732c0734dbec8d29c4be8932d98e0bb95", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/cross-http.no-redirect.http.html": [ - "ad33e3c9e1c95f5d05e34a9a8e438118a010f27b", + "ed1b6c74dd03706531f3a815580e1c17a21a32ef", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/cross-http.swap-origin.http.html": [ - "11851635644a3da52eefda7c5283d8f03eb7cbe2", + "7cc3f5af651ba0ad8023f4ffded96fc51a87e43b", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/cross-https.keep-origin.http.html": [ - "34ab7265257e003ffd1a17babdd86a8830bd09c9", + "d33fbb45400f2ff7536e7843f7c8db9c865b8559", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/cross-https.no-redirect.http.html": [ - "7e54f3659199b78da219967d5019d3575fd9ae65", + "6b5a967560ce652d2a2be77b8f4a54028f0137f7", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/cross-https.swap-origin.http.html": [ - "f7d5dd5c3ed56ac4576ee6a6266e21f01265654e", + "b95304308f351a7a178430342e32e6063ffd67f3", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/same-http.keep-origin.http.html": [ - "f98f0455aaac0d3a6be00de91ac788abefe54e16", + "bd64cb26715832ed3eb424df02b18c955cfb69da", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/same-http.no-redirect.http.html": [ - "a9f08ff0780e0a25f26af0c3a83b78276c835df5", + "5eb920b2db81c5936fa29652bdac35c99570d617", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/same-http.swap-origin.http.html": [ - "88c43cf7067ebfbea7b6d34ff69ff762dbca7499", + "f22781e81c84c1ab16d8c0e302e1b313f44e026c", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/same-https.keep-origin.http.html": [ - "7336f7f4ca323caa06a4f76fa979d835187cbd8b", + "6135f65a5beeec6ca7f9944439ad97ef84f03d5d", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/same-https.no-redirect.http.html": [ - "787b4a2ff3c1ae16b4cabb145004ecfd29b9c14e", + "dcfa5b02ddbac818a3b855806eb01db2ab7c448d", "testharness" ], "referrer-policy/gen/req.attr/no-referrer/script-tag/same-https.swap-origin.http.html": [ - "4277eb4be02be6692a918b2c2a70cfa385c04570", + "e2d56eb61cfb920ab74b38392e82dd3ffd189147", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html": [ - "e7526ed42b2e910d03202e1fbf87672715ed3ebb", + "8b1b2a43120f2562d0e20b1b70eb9bc9e5aa5add", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html": [ - "ffd8de6743f528d6c3e6c05dc947acb319459196", + "f29fb4bba1c0e45c644d8376a29fff12161b6af8", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/a-tag/same-http.no-redirect.http.html": [ - "845056de54d0a762871fc1f4d81b933c1c86953e", + "220f8abb26054bd033461684ad6ee1381bb28e57", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/a-tag/same-https.no-redirect.http.html": [ - "0000efd20a8355996f1cead4b3e4ff3dfc576c2d", + "4d184fa1992cf45b45fa26a81721d03872b5f12f", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "b84d1d8760ffe046998e6299b75192969154a18d", + "8260e81eb422944f11c97024b8da1de25f3d468c", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "cb44bb09dad07cba9d712bab9d69ee3890432888", + "cb89e64d209c18a531c85c19c79473648d2faf4e", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "2ac5dc65c37f4ce66f34ee1755ae794cb531e0da", + "0a9f5674ba0842aabd79870585fdb24c37bc5675", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "eb22b5280bc3ba3545725c6671db1693276ae54c", + "e7a54248f5c4b4553bd4336dd92e5a2ba9ca401d", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "b986b32cb61ff77db9bb9079d58c1887db2353f5", + "94da78b15531a1b91d2eae0b37c580e31ebf3a77", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "59e06f468dc0a2e9d3325d32475f7bd42cde73f8", + "22397a90b1bce6a2d7f4f433be6ad01992dd26dc", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html": [ - "d13cccd36372c647832ab61a8dc9c5b41ed90021", + "db0ad8b0b2100a9820c5a3c1c93901a4710817bb", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html": [ - "c355707ad51e1678954af094fc48756794530e02", + "7d93d07ae5a368bc122216337cd8d829e4c9bd80", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html": [ - "becbb554fffd3786fdb161361c93ed436de6d546", + "9d2819f6ee5e450c9cbf55b90115c193d4d5999a", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html": [ - "584875a8ca4bc7ec02a6fb03563ef72a9aee8c41", + "635ddb24ea87a40b1007b58dd3b172716effb8fa", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html": [ - "3a18143a18451ba593665b9eb99dc4b0672b91b7", + "cc3ed504053c0363bfb553c4f0541322d5a8cc05", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html": [ - "2c9c5689460e1c50995a0d1632e5cab3955623e6", + "5c64af45705db5b7becf71bb7163bc7ba321e63a", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "21643724a492f6f599cf990000109db22fa15f2d", + "1ad788064a47ec5d4e74833d76c4b225c2afbeee", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "52b471e48c93c34d4c6effa38c2079e487f3f90f", + "b233a53e8b8f7be3f36a1d5a03b3b641c4362ef6", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "cfba1967b2d9523db3d70204cc2d34f449699dd0", + "2bcd1db97dc7d648169f77c61ca79a36251bfe1c", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "e94dfaa4e49a24e19794f78cbf9240c2cec4bb8e", + "91b6e99edbd0fd47dd611220bfd6766fec7332a1", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "89446bf752b16815ffa2fdf09460f0a55aecef06", + "8a24d43aa59f0e8456036a4e9dc5d0f01e1df032", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "1946d0a2f7ed5c668af82fa3d5c34864a83f496b", + "209978e39351a449c7f8b2537d80b847bcc9503a", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "a41f9c33fa707b7adebb9ad2d80cd6707061f63c", + "270af5b66cd903bd239d76900629828fdd6bc858", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "60fb6ad337707de33eda5d3a08e3747b6cdbe3d2", + "e99dd16221c3dc9389497946f0b5140e54b45010", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "bebc7b516800ae7faa832ed62c67165e38069335", + "599e7c1a9f54094b4a63196659cdea7922d865d8", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "ba8139583fd69afede49e74bed77d6ae9783d7e1", + "0accc8042d345da3e9c7f54ccb3ab185e623ee56", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "5aa87fe3ec785a8c2a04ac21c31fcc6e8f3c497c", + "48bdfc47c308f765d1d7ade129bd0c532443a855", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "6480f77d1ca0f213fa30af9fa8ceec33c170dbf4", + "98ba7cbc5f299878ee8231305b088a39a3955f5c", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html": [ - "bc09370307c681b6fb103f357741eca97912cf6a", + "c179cb9daa87572fb4f9a0fb8bdc4c4ebcc4a2c6", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html": [ - "1e408c3702f1bd8f6a232d32657124d0f5f51724", + "335eb306d1617969c4a6c83273f3745f906b7c53", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html": [ - "3faca3ec745972d807013a9b14eac268e0fb0a64", + "e7992c5fa431aa21a8261391d31af3de99bfc4cd", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html": [ - "8b91e88211ac9a978970078c0485107f8e371623", + "be259c735ea7649aea892b7e512eda3deb554d11", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html": [ - "e3d695f03168f4bb5052b7d96d494ae57e8fbcbb", + "36794c291e68b3b753290cf0c991672d0e47bb25", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html": [ - "415c63aaf320870fb1e8da8976874a5d19dc9e5e", + "5bc56aada0a84a56915c27a23abca2663157de8e", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/same-http.keep-origin.http.html": [ - "b175b501b3fb17528540d38cfbf52fd15bb09db3", + "a2456dae170b907f2804fb4df75e1acb6a8af2c0", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/same-http.no-redirect.http.html": [ - "980f9fe51956d087afd146462bf2a4a015bc04c4", + "2bcad4b870d479a88c6bf39991d1c0880253860a", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/same-http.swap-origin.http.html": [ - "c1fc591386b327a7fce513739496fd394d30e1cb", + "598bfaae10cd4b900a7dfa5920e2311a314f8243", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/same-https.keep-origin.http.html": [ - "a3eade8bacebdc1ebcd4096869d0722a428e8faa", + "7714855f343142f34479d1cbf702ae057507d221", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/same-https.no-redirect.http.html": [ - "5368c70113c4e30a0968d4a8d93963eb98cefa4c", + "01d76e15dfb1dc934cbfac5e992607baa0d4a00f", "testharness" ], "referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag/same-https.swap-origin.http.html": [ - "4e41cc2b99e081405737f541edb0201a9039b5e8", + "b9390a5c5995697c41feb7a20d8f75d70a104f82", "testharness" ], "referrer-policy/gen/req.attr/origin/a-tag/cross-http.no-redirect.http.html": [ - "6a499acc7c1bdd7307d58b6f658762816b2f39bb", + "9d9b1bdf662c71b77e30e8c84c7184345203d520", "testharness" ], "referrer-policy/gen/req.attr/origin/a-tag/cross-https.no-redirect.http.html": [ - "e2a69816bb7c96d4ae82aca719c96480787db05a", + "f162894e7960e2dc86f2688c5bd9926d865f855a", "testharness" ], "referrer-policy/gen/req.attr/origin/a-tag/same-http.no-redirect.http.html": [ - "83b4dec24cd2d7343fa39c15162a6f4083efad66", + "0b313b05257c1823471b0f474a3816dee551730d", "testharness" ], "referrer-policy/gen/req.attr/origin/a-tag/same-https.no-redirect.http.html": [ - "03f7ee3ea9a7cb59284f99a02f44af486123f876", + "0128704e514094d2c5456020187b42f026ec6c4d", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/cross-http.keep-origin.http.html": [ - "7e1d06ba4cb453f7c97e3fac4b1e2fe4474aba58", + "00761ad73cba6621c6b2b398777c76997cd650b3", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/cross-http.no-redirect.http.html": [ - "ebcf709852448194d23de67b5ad3ebc6851c306f", + "f1cae87b0a2bf8a699ba02a88e58c438b5188716", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/cross-http.swap-origin.http.html": [ - "a7c55c2bb8ad54e55904244a77da3d0ad54c17cc", + "62ae86ebbba741aac450ef2a2b9b952cd6f5945a", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/cross-https.keep-origin.http.html": [ - "9715246e6b99dd8ef7902082275f217500bb35f4", + "c93a1b1792570bdddfa5007ca256594859ffbb93", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/cross-https.no-redirect.http.html": [ - "53565249109dbac64fa420c517d8b93a33a8722d", + "3fd1d70d8409fa4b604d5d4f686be9bf79873e8a", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/cross-https.swap-origin.http.html": [ - "a8d20be3e5261a1dacc6edb0bcbbd9bda13bf211", + "abe9474d69a9d0e044044c08ddaef5b4eedefc5a", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/same-http.keep-origin.http.html": [ - "67087b4a2f7bce5cbbfef87b7176ffa9c49235ca", + "5d7d67b05b1321489b6cd19e08cd0061651b7128", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/same-http.no-redirect.http.html": [ - "26f80cdb3f9fb9098ed8b32a88cf29793b1c34a5", + "319a779d9f25ee842877c4ff7d36b58eb5d0bf4f", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/same-http.swap-origin.http.html": [ - "1cd4e595610d06c7fb19fcd5bd9f43509908d03b", + "e13bef6dd3af4c48f88746ff554a204e8b2b2151", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/same-https.keep-origin.http.html": [ - "354e69c6e2f91a4f744c167d8129c112220a7a7b", + "63adf811f6ef3fd45d331582109ed441a30533e4", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/same-https.no-redirect.http.html": [ - "6306053db2219d899b8ede170233b7b02735582a", + "75586b60e722025bf3ce960594facaef6fa12c54", "testharness" ], "referrer-policy/gen/req.attr/origin/iframe-tag/same-https.swap-origin.http.html": [ - "3aafb5ab78cd1d86626acf4b08b8607e85dc5755", + "712f03f877e9c65f114b1627c053c3e914479634", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/cross-http.keep-origin.http.html": [ - "3067e3d6573d3a526c837c782389720935cbd887", + "8ce106cef9fd9609dc3190bf0ac2ccec016efe8a", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/cross-http.no-redirect.http.html": [ - "15776d7aabcdd9fea9383555af193f80d1bfaac8", + "5675244ed7d1f5532bda6d8a0601d60211a760aa", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/cross-http.swap-origin.http.html": [ - "c4876ce475f260d94a21e958854b41f74666a187", + "931513b3050f523a76b12a77c8f76f8ce423e0d9", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/cross-https.keep-origin.http.html": [ - "916e625b5af96f14673c8c0cd7d1662f95d42689", + "5e4f20c5685c5fae25ad39cdf29fdbcdad202471", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/cross-https.no-redirect.http.html": [ - "22a136b8ff276e7c69e1a18c56ab82db8a1251c8", + "0083ce1dbe7b10b2b0c48215d3a02f9f45736c1a", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/cross-https.swap-origin.http.html": [ - "795ea3142752d25314cde116ad5eff32d5860fbd", + "122d9db4e3fc51580c6cb26b8686697a3caba7de", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/same-http.keep-origin.http.html": [ - "aa74072ca00daa35516ac81e4fcc8df4f2a8c67a", + "2b1ad4e980928bedbb15c2d223380eb52d5daa03", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/same-http.no-redirect.http.html": [ - "32ae9474d96ead56346dcb9996f395932fd46c86", + "7380faa3f19a7351fd551c0da0971bf0ba2815b2", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/same-http.swap-origin.http.html": [ - "4938c5f49bb6f2c64b85b980f6308f8943fdd9bf", + "d2bec8fdb4a6a93760137ddd647e474f1b8615dd", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/same-https.keep-origin.http.html": [ - "b298ce7b893ff9bff63a3b8c3c31a73c815cf84b", + "d6a5bbab61dc586fb33b0f27d4f184ba7223f217", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/same-https.no-redirect.http.html": [ - "4a768077cf4b902ee630e67a4e3a1d119b854924", + "ab218846c11f7e0a510158e03df6f1f66fba4c03", "testharness" ], "referrer-policy/gen/req.attr/origin/img-tag/same-https.swap-origin.http.html": [ - "7fa0b3d1a0eecdf5f895a5d5bcc3641bcd6e2646", + "b54fd752874e99131e04d968fad53a331dd9ead8", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/cross-http.keep-origin.http.html": [ - "8ede2b4197f67d54c637b7adea14eab073496417", + "2cbb8d5fa9f1096705fef75b9f57decc34d06a8c", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/cross-http.no-redirect.http.html": [ - "c3a7d773bc334cb9113c00bde693997693fd34ef", + "26876438a6f4737fc9a02c9e38b6b2980eca768e", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/cross-http.swap-origin.http.html": [ - "d6417c69efd5eb59a47cfafa3c82ab066ca9e863", + "430d1d6a946a3dfe1e657c40cf94f93c5adafd2b", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/cross-https.keep-origin.http.html": [ - "26f266bdd3f7a8efde096bf6ed57009448274d7e", + "3378092acc9ad363b0ef4828204a1abfe59783d1", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/cross-https.no-redirect.http.html": [ - "736342479f3e3127fa833ad003f00f958e67ecae", + "be20f467dc5df32e0bf66330974a4b953eb037e2", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/cross-https.swap-origin.http.html": [ - "9f713c5013622d8aab5ef59e0086e550f41c47b1", + "bc0087c13149dd1bb7b57285147270a4d40ea0a1", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/same-http.keep-origin.http.html": [ - "6e3d7246ab857705d8f7afa666f2d5d61a204e6c", + "8ad0755180b4e3a9898cf5ed65b12a7b91d47cdd", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/same-http.no-redirect.http.html": [ - "04ba8e7d4af25272b3eed76f5be1d627d3dbeb8f", + "eef9696f9eb253fc1a276fd0e569efee5b90ebbe", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/same-http.swap-origin.http.html": [ - "328bbc01bbc2515fc5d77515d4fda6b36a9d9c65", + "54f0164bee48f928f442bb71d42dab2cc1f96383", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/same-https.keep-origin.http.html": [ - "a87ad9b9b21b8a548dc02a6c7c0eace401bb69a2", + "3c64bb16efb13c1464c92ce1b9ad16717192fb4e", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/same-https.no-redirect.http.html": [ - "c7c88ff222f3309f656d880fa210420b1c0a8889", + "15f5ac3dbf98396f37479ba0507bb6469d79bad3", "testharness" ], "referrer-policy/gen/req.attr/origin/script-tag/same-https.swap-origin.http.html": [ - "80cd677c0dbf88893d403bcd124ecbbb33da9996", + "f6086fdf270aacd28d4e08d6a69945e444501fef", "testharness" ], "referrer-policy/gen/req.attr/same-origin/a-tag/cross-http.no-redirect.http.html": [ - "c132af5e9e9ed19a2470c8b4ef3ea22eafa698d8", + "3e5532b52f25c056f399aa0a5c7f84573bd63a03", "testharness" ], "referrer-policy/gen/req.attr/same-origin/a-tag/cross-https.no-redirect.http.html": [ - "b00a34e07ecbfc696565408564e987e0d1b879be", + "573cde548bbdfb9afb6418df2e3f8f2e8ae11dd0", "testharness" ], "referrer-policy/gen/req.attr/same-origin/a-tag/same-http.no-redirect.http.html": [ - "0daede6e6551c9a1bbce0b592a5384d012e70282", + "cd85233e2aa1e759ad856c8ccbba7a724d8e7c29", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "e498846d95b2c2948f6b46286d738cafd610e0a0", + "fed49b9929820e80606e50cc8de8df025a660972", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "90d39202d501b723f77d67efb916062f7023e93a", + "3ef48104652971e60358b1ce1a02e70254d334c0", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "596d3da28dd189e56612e00352b9d97e817b7be2", + "8e73234772df5d7f29431d9f226ffaffbb49e31d", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "45ff588abb3bb71abe87a930592840a8da334654", + "8aef178125c51a4b897617f5df30084446e07e5c", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "bb6f769acbf591d465959354ebb3d4e94f141f88", + "b44ea31883123c8d256c414f53cd73cee2a47a17", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "a825c3bc179de8915ab9af18db9061b5776cbd4b", + "53e57b9f1cd9d18bc36bb29df2c63758bc08d3ce", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/same-http.keep-origin.http.html": [ - "b4d54468708d7dab3d6ba311b9bb78b4f5a81ce9", + "03022ade244d8f6e44ff628917069def65791535", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/same-http.no-redirect.http.html": [ - "ddf2d81f900d7cdb025920b35cdc9906f1abc9c2", + "4d52accfa4191263a6a0915a1d0db44155536ace", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/same-http.swap-origin.http.html": [ - "10e3141377364ccd0c1b68f9041bde06802ad6c4", + "5c13d6d9929caad7db578f5d6b6e1cd0ea24cf39", "testharness" ], "referrer-policy/gen/req.attr/same-origin/iframe-tag/same-https.swap-origin.http.html": [ - "7f82d17b46bfa212e546a8eb5abc9dad62b27f2f", + "a9022228931a6c27169c0fa2ec92d63081ef7b14", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/cross-http.keep-origin.http.html": [ - "ac8d2f6cf3a2d9b92cd04786cde04aabd173a0ac", + "937365ce55901d4d7154a12713b23475ddbe7db3", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/cross-http.no-redirect.http.html": [ - "ccaeff2096aa171962126d59cadbaeeacda04ecd", + "dfb394b72d81c8f818d2f86818d7e8fd0f2c468c", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/cross-http.swap-origin.http.html": [ - "e831f577b6e9bba754a1f9947de3e52abf2805b6", + "c526d6bfe4a22f535fe5fb5e8fdbc28101b26b14", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/cross-https.keep-origin.http.html": [ - "a8f6e1fffb5195b86a5963cfe4d9cecafde6757e", + "57610c1eb7878fee89aa0aa8c7e2913679f3bfa0", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/cross-https.no-redirect.http.html": [ - "e46908ace43d31d59efef4bcd707e820f8b10c16", + "fe450105df6631db82ddd97313d7acf941c69f01", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/cross-https.swap-origin.http.html": [ - "9f818b1e1a8f3101867f89364d1fbd1439c9943e", + "15cbf00cd1e8bbcdd6e1f2403ec36a72195c6818", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/same-http.keep-origin.http.html": [ - "6b953dff155c9c201b757a695839790e9bd69bf1", + "7b9cf7816a24e6f70363ff59d07e51a54570907e", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/same-http.no-redirect.http.html": [ - "e452225b58b22a4745afb07b84ffaa1252ca3cd0", + "def3201c00cc4d3d20d7b31ee0f83ddbde2450ad", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/same-http.swap-origin.http.html": [ - "43736c1cc4895133c43a6271a7bc74ccdc4c133f", + "d989feecc88e88e59b9ed52fdf667819da165d3b", "testharness" ], "referrer-policy/gen/req.attr/same-origin/img-tag/same-https.swap-origin.http.html": [ - "a786c73b0a6940852d7b400edc0bb4db60beca77", + "c2f6fd8358e83a2f482be72eb886bcac773f8602", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/cross-http.keep-origin.http.html": [ - "ee30862a973376a98e8a059ba313c826065dfdbe", + "068e98a40bbfc19665916366ff4dbb0c097e98cb", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/cross-http.no-redirect.http.html": [ - "aea1e262c60eaad0146b51e9cf58a137dd3286c4", + "e3b6aaafa7e159ad6cb6896303d4e64f664204e2", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/cross-http.swap-origin.http.html": [ - "fd2c8b97ce1a95a369ce443a90eb6cea32a4f52d", + "e2cd2fb68461a2ffb802c13aa20aaad4850b7254", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/cross-https.keep-origin.http.html": [ - "2a3a5ca9897d77d19c090aca69e7021fbf5c4e60", + "2df9945825acddda79547c4e51f5ac265587a06d", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/cross-https.no-redirect.http.html": [ - "3c7dc4e66aa38e72ac10981d33d37b1f6feb200f", + "33d92f252124a72a11af88709b5ede66498f49c7", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/cross-https.swap-origin.http.html": [ - "6048d78bdb3c2fcb57917021a3682bd85c2230dd", + "9f33d1c4d5da7df7895053f892f3baaa767e6cfd", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/same-http.keep-origin.http.html": [ - "1bf3ab30f6b7d9da0a6203c461ef04b7220362a6", + "030faa9691d8a5088cc408d052d2d7e95626985f", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/same-http.no-redirect.http.html": [ - "31e1c71a682e79763c1c42f740f73739d0fd1cc9", + "57ce65ba5abc7069470e49a20cff3a673503dc51", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/same-http.swap-origin.http.html": [ - "15d8229a683bd0b55b614ecf2dd11325793ac72e", + "cd28b806852c1eaa6c94f6e51b949f7ae3b25fc5", "testharness" ], "referrer-policy/gen/req.attr/same-origin/script-tag/same-https.swap-origin.http.html": [ - "bf6268411a9e1647451ee123c79ac4b7d581f747", + "696ede16efd8a285fcb2e61e886e997bc23067b5", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html": [ - "aea84a0db2e486fab48537dd2b61a07be04e6bad", + "325ce556409d6c34b25f60e7d555fe999e63e2c3", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html": [ - "0994a345db03ea311815ce39ad209c2d5247f280", + "c196fb02e2a2306e1d8e14dd06431463086b1c76", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/a-tag/same-http.no-redirect.http.html": [ - "bb0dc705be8e8871840986700084536d66924b5e", + "5b650463733c734e7cf96530f93836eba0f6687e", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/a-tag/same-https.no-redirect.http.html": [ - "d899449ff739528211197914087adadcd46d85ed", + "cb23c09dc4b22407d3421f21814a1ca108be4c69", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "b66b1b01428a032b1628326e0c10412f4a84a7cd", + "b2694ba3bced16d7e112f2d54fade5ac94f89d9e", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "ec985b1804e23ead7899c040d9950dd38a657b26", + "6248afd88ed5b47a16b1fc0da535d6b8b79afc43", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "e597c1dec0734dc3eceeeeea24e3693e960ca2f4", + "5b04e9f7db3e2efa8cb1711b40d7ba3c02eee49a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "e932d3cd3f1aa68a74ccea0f41fb8372f5057fb0", + "9cb21a406d10194e81e49155badd4518e4709256", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "83f05ada593fd486fef5b485c295a504b78376af", + "ba995602ca6aa8c2153a325f26a969998c45e4b2", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "23c8ba77856c24e0a28ab3cfcf8d6cfdf237178b", + "7538d3b323a0c7706ae2bf26a71c8dfc588f4a8a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html": [ - "d63e2f8ab0939d103afa68eeba948d0e725141f6", + "e8b1a64dd60a55f47c6f9c009f13f64d2d34891a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html": [ - "6e266233bb1ae228b7ba134e206d16357a6fddd0", + "7da4311182f666bd905a4aa266373a5d6fb96da0", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html": [ - "c4ae13388b91d16296cc846ba344fd5767accba6", + "4d2d67e9e9d194271bd72eb3a5beb208f04a3943", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html": [ - "5cf1e2fe3e186888d5d7980c31b31eab3802942b", + "9cbeb0b6cad5ba8169c7b9313484c512963e46ff", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html": [ - "0ac920f1482c2016fcf68e507c6f14b5824a7cb7", + "7e49773117b07619c51a266a6b8f25264eae52a8", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html": [ - "f6dd7e9f0b352543120828afa70af73373acc0f0", + "294e449e55b16084f9012b3a4de8046fd52c61e5", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "a69f7cb4a23c0af49cb9fa77dbbd98e50f743572", + "e4f989d7af465002a22af28feae5f086ef04a473", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "35d1a5c941a70d258724a4c17a0ac1ca55912e95", + "c6070e687952c2fc206c35ee4660da4417a9afc6", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "b4dd950391bc965e49a8d91f3aae3dd86f76e2be", + "e65abe567020a8e6111e77265be04082017f5083", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "1872f9e76cf4fd580b77acd51e6f99149d9fe30e", + "492cfa1dd3a5ee0a3e27a5891cb6ae5978036477", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "f27cb2dc197ada1d0a1832c580e559dd72982a8f", + "99342cd5f2d2d4ba20be7b9725866bf208a3e7be", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "cf687c5d3f92a1c7d6f23bfda8be252b799c7c73", + "5ef973da8458a75097b6c1d6c1ebf81383d93b91", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "9e01d7b1bb8b5299d6f65b55c21c958636c41f60", + "50542680131693b6536eea5513646727b8900937", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "06ce423ad62720cf44bcebc40ec9560f10fe17d7", + "888f6b035ebd0f152464cbf2c47375362a4d8327", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "e7a6839a0962dfc14cf3f50cc874d777ff5f8aa7", + "ee84fa635ac8f08139c4d89928990ef7c6508f18", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "eac87cd5179fe0814109c63af49e8e511837d7d1", + "d9d2f5fc9653d03176107eaea1e576502a88c21d", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "f03eef841837854f638b51b6cb4b2903601d676a", + "7c297e28c32f7ee7758486e23abe93bdd3d24c17", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "15714477f8e7220410239c8c35f1125dcd3d7c2f", + "49c6b5717d739e48a9323bba91c3ee76523c39f8", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html": [ - "bc00f9f80931d102436218757138b5379456564d", + "a8fb6ef5148faa8302ed0749fd200c32405260d0", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html": [ - "eab14c17716019e92199b27a9adbae7039f147be", + "b19373043b8232508eba33af99cfae616bc5b3e6", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html": [ - "6a100c67e704689a4f2163a7eb5b00d755aebba0", + "161b2d594841d660430a97dbe1357b74b2c41d2a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html": [ - "c02c82a7d2d7f4e574ae94b73737f4bfc96ffa83", + "9e7fa6a432c9495e1dc3a6afea8ec03182e759d4", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html": [ - "c9886904738373a8bc4a7bd016bedd30f33ab113", + "8ca02232be2989244974aa5add3cb5bea3978543", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html": [ - "3f8a555d7ee9e6eb977f28b4884d91cd56e3036a", + "88382eb0f81f207579ba1014eb496d2c74480cf4", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/same-http.keep-origin.http.html": [ - "f722ac89a7d8e6fc191418bc3295e70b9e8054b8", + "0be2f856b9d62981a38a81bff467a6e97a1d5444", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/same-http.no-redirect.http.html": [ - "b73d5f4f297d2f3549121bb18efeb68d7af21ae6", + "adf5eaf5ea894d631650d50becf3d7d32ab82d8b", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/same-http.swap-origin.http.html": [ - "116775c576ee1738b2fb8de2801218fc1f1e414a", + "c387986f3c3fe0fbaa62ed92d24b19e3ce2145f5", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/same-https.keep-origin.http.html": [ - "e239c323e67f8baf97e156173db9d0e74283d9ee", + "f2e617ce5a99c50a9fbd4de06ecd6274b9d4a061", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/same-https.no-redirect.http.html": [ - "0562e65dbd95b75a28bdd7840b77ae39741c829b", + "4c997eb2c86d049ac3a2ca84b038d69aad5c2131", "testharness" ], "referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag/same-https.swap-origin.http.html": [ - "8b4e58faeb1ca1f388b542f777736ef60fb0d8ae", + "78295c33fe6a9c09168f066844e66a0c45162dcc", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/a-tag/cross-http.no-redirect.http.html": [ - "8b976a674f2735fcf52f176af988d92f89ce59fc", + "bd605239a47973462f9db3dee02f1e0aef3a0d16", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/a-tag/cross-https.no-redirect.http.html": [ - "5673e9b451c47a494f892116e12937b718d57f12", + "1752200d26aeb6eeda4a7f2de3ac851c647b90b6", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/a-tag/same-http.no-redirect.http.html": [ - "735f518ac55ddbc74e5a8cbd2c9c3c6326515d7c", + "6dd3cdfe87f598367fa9dbfefccf09a017da6a85", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/a-tag/same-https.no-redirect.http.html": [ - "cef1d596319e765532fcb7950ecc9b52ff59cedb", + "622ec8dd2d33b6eca0104bf6f6f4f86e2d9a7ea3", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "be5d9d7d80f00b6220170186c3c9d3c3f283caad", + "8c34508b4c58396dcfd2f6e3952dd90013a6cb1f", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "2902ab2ed4296ff4b609af98f94131b3e1e98916", + "bae4e2639002ac92343d856029bc6553fbdef66a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "6beef10200848a37c3386c82bef364d5fa39b715", + "5baa0abc9ad2753512b225b055d1ac1bad01dbf3", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "2d1a59457ef50cd4b5bc522c52d972553b6e8f92", + "78a9ed73b86c2ead95ca68ff2ce6c1f1dd245d2a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "4c024eaa5c39b3692e9f9c8354a019cad0245201", + "02f50c15c9ff935035fef9a125ac92283bc0e63f", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "a1b105c0f765357f56fdf2a096b95969bfbd09b9", + "da8f02835e74aae20a787358be1e968a78fb837d", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/same-http.keep-origin.http.html": [ - "482e55d4eceb34a33d6b74bf076ffef7100c9898", + "8706697dec7c8bd1ee9be951ece2197758ac65ef", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/same-http.no-redirect.http.html": [ - "25a79af681938bef99fd0b28b80a8db85772da74", + "389acd12fbf1ea1b4fdfd3a653040ba3be301c9f", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/same-http.swap-origin.http.html": [ - "ddc5e1120d6baca650bc7f92b6c4cd686ad0b3d4", + "477c7e0e7c97fb2c67811bfd7848b57df1d364ac", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/same-https.keep-origin.http.html": [ - "57d41772cf993f2208d380cd0941a2a6458c39e0", + "a11c209f17776901f3b06831e0da4e63ecadd404", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/same-https.no-redirect.http.html": [ - "d1921eb211c479d07824436d9d02b9319e2c9d51", + "7007de57a613254052f0fbc19034ccafc9763e22", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/iframe-tag/same-https.swap-origin.http.html": [ - "f40f2eaf6732eb44e063817ae0c7e52d3f30e690", + "b0a5a73e37182709f72b41e2810138ee1ca8cd5c", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/cross-http.keep-origin.http.html": [ - "9e6ab78b9bcd785f93434098d9e9fdc55bd1c924", + "f2af0cdd2392acd3e023e4a4b40f1d30b4198e9b", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/cross-http.no-redirect.http.html": [ - "a0812e5b0444c7318043e88bd1187fb085e5a126", + "7ebadca3993a063f464291b07293d66f70b402bf", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/cross-http.swap-origin.http.html": [ - "f68375a2c182dc9607d43f0e93eabe267946aa94", + "c944ba31a082719c49f9de2ab6c910c79dff7d32", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/cross-https.keep-origin.http.html": [ - "0aa611098f9909b9b500e05753cbaac55b4b8de9", + "9e7d44161684d43c183ff9b828d829ead5aa1c3d", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/cross-https.no-redirect.http.html": [ - "699c949d1c2adc40ece9449a1612661541aae15c", + "4c98969ce1b22ce6393266911f52ad30602a92db", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/cross-https.swap-origin.http.html": [ - "edcb7e6fc8b40022cdbb3d605dcb01996e792f5f", + "c7bdb8fca036cdb8114470105071d6b4847f648a", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/same-http.keep-origin.http.html": [ - "280d9773dc92f73d099407cc1425488d2ca8ed63", + "2064a1139275749a43ec8176de230de7dacdfe7e", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/same-http.no-redirect.http.html": [ - "d79049c2dc47ecf546a37805bbd49ffa6787e9bd", + "46615b08847afdd84518b200f276df332223897f", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/same-http.swap-origin.http.html": [ - "b1287ef39fa34d0fa9eeaf41ec81bb79dc481ad0", + "b575c0f76f9ce46298cc5a4e9080bc44c6351433", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/same-https.keep-origin.http.html": [ - "f98975f3ddf738f3f45095c8533c8b0af9c3520e", + "4bfef3725c06617b1e666717ff6e69501436c1ef", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/same-https.no-redirect.http.html": [ - "85afeed9ebadcee57b08693cc5cd1abb67886a49", + "0aabad4311a9dc956359133889c9254719619678", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/img-tag/same-https.swap-origin.http.html": [ - "15f1638f9707ef58fd73b6c298cca228b4aa6201", + "edb3036eff87838aa900abc553717b1a1bd7cd0d", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/cross-http.keep-origin.http.html": [ - "f95dec72e052bf5fa851bbeaf1c1b78deed5e095", + "826028837a1e17cbd00896ee90846111ef19cc9d", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/cross-http.no-redirect.http.html": [ - "67bc6a27f0815a9fd1e501809cf6ba5f5ea49a66", + "944014e95527cc029a42014a3f763067530b69d3", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/cross-http.swap-origin.http.html": [ - "747ee1a2a87e6a5d67d596d6666e0851c5545a5e", + "2c5dc87afc21338c80a28ea88ea90eee230bc941", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/cross-https.keep-origin.http.html": [ - "31911f764e0f7e4703018224a8f3f669a4f79818", + "0d2d6e2c5bcd8844e3f3da5f30fb1c1124be7c7e", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/cross-https.no-redirect.http.html": [ - "ea5cf7313f3e04aa4dddaa00dad80321fb94241a", + "7b29aa477beef30ab2afc65395135b716442cfd7", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/cross-https.swap-origin.http.html": [ - "efbf5f7fbab1ac685053c9ae5ca59539725cd3f7", + "0dab8adc77755fbca889e75ec651df8c5f7e2f13", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/same-http.keep-origin.http.html": [ - "91a80a43818630d2de6f012b0a9a0be3acce126d", + "4b87d5ce52cfb25295f8b01c8c2eaa3e9c4e5a84", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/same-http.no-redirect.http.html": [ - "99b1133e510eeb9a4c4974c3cc1d14eb4a69f3ff", + "2accd88f028fcb3e1ef2014aa98f7b3bf1f2acd0", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/same-http.swap-origin.http.html": [ - "ebcce3142973307c6448e21783dc2f0fce56b954", + "1ddbaac9928a04cb162c18ef42f43b599872047f", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/same-https.keep-origin.http.html": [ - "dc1687f9660f9594697ebe083161c5396f34e657", + "d1f6dc24c6503ab8ba9f032d57b4539ca0c189a3", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/same-https.no-redirect.http.html": [ - "51b104eb43409c210047f174aeed5def5f0dce52", + "727c7352ab0bb198082a34379269b430d7b535cf", "testharness" ], "referrer-policy/gen/req.attr/strict-origin/script-tag/same-https.swap-origin.http.html": [ - "8f4e1a60fa01c2b67f1974c63c56997d12fdde04", + "da7cf0d38f680511c14dd3f2f1e898d88ad023c1", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/a-tag/cross-http.no-redirect.http.html": [ - "30dc74a8394c05b306f7024baf7b680caa711ac0", + "fd9dd2cee91e5737b6ddc4b2761d6aacfca3a870", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/a-tag/cross-https.no-redirect.http.html": [ - "7440fb41e24cfd29b309993be49ae78143ee7814", + "88ce8ceed909ddedc47e0ea68edcab33d5de4aaa", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/a-tag/same-http.no-redirect.http.html": [ - "c6ecdd72b9404a265d568031a1bfa62fef8c3205", + "b1cef3313931255f029f1fd1244d4b80c286b65c", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/a-tag/same-https.no-redirect.http.html": [ - "83bf18cc55faa01908ab171b29a812faafb280d4", + "637521db6e9b3d703f06de96d3139f5c38cfe204", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/cross-http.keep-origin.http.html": [ - "6a0e12fbfea5f8f10c9f6f1bc8ef3e4c443d2328", + "24e85ddcdcf3f91d96df762ee0da6b35396e8b3e", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/cross-http.no-redirect.http.html": [ - "927d42549dc4264d3b092d44bcb8b8a11de7dc0b", + "75376cf614648f14058f8d730fe4c64e4eb2a22f", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/cross-http.swap-origin.http.html": [ - "04b8b648f8a0098792f3de9f3420045a36bc7002", + "75fb99ce09fbf229f0d6375700f421441c571ee9", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/cross-https.keep-origin.http.html": [ - "5991dea7169017a087a1f6a71054249f07789882", + "f7138b9755899ea69030c2e2290ec1d22fb1e8c2", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/cross-https.no-redirect.http.html": [ - "08b98abf5f377d6b88b746acfd7a7a9f42208f98", + "d5a25909c073bb4f35e36be73cf1a12915f4b623", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/cross-https.swap-origin.http.html": [ - "f55dbf24c216f3f82a25cffe59c0a4feec85f858", + "2229e59ec07d21cad4f185d4b3358b116b0f32d4", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/same-http.keep-origin.http.html": [ - "a072402183ab5f98d5458921a20313c47fde092f", + "5db085795a442bd65153e054eef8a318b4075cec", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/same-http.no-redirect.http.html": [ - "183cdcc2bd6e32d4c147e1c1afc2c70d702ec7be", + "44351d534fc14beed3fd84a162994f475d96458e", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/same-http.swap-origin.http.html": [ - "1cdacdbcb474aa3d51a7281635218adc0db0560a", + "913cb289a28dd6ab0b1e7ce22257a9beea71363c", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/same-https.keep-origin.http.html": [ - "2b936140ca23696ff0b3393e9eefe73708fb1600", + "76ad177546b38527f22f5fb52e1c8ddc80349f7a", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/same-https.no-redirect.http.html": [ - "2b86b1abafabbbff4f7f6f95cad8590d5be74aaf", + "8e43576efc988218c2f236f9d7994292cfe39d1f", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/iframe-tag/same-https.swap-origin.http.html": [ - "c20095f114c38a4a4bc7b1dc079826806b082cdd", + "a1b580de8fb901d2cd0b0726806c93bcf4bbc4ca", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/cross-http.keep-origin.http.html": [ - "ef9c8061684b4c04dd99c1650aca5260eb4a175a", + "b33395f373225e5a164724275491cc1fb50829fb", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/cross-http.no-redirect.http.html": [ - "66c1237f80784c9e8a410eee845f5db50c301c63", + "c70df3e35b7e46e39701b9ab1378bc51d492ae41", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/cross-http.swap-origin.http.html": [ - "82264806897c7b47844b3548b887c04351edc25e", + "2f7ed240400bee1ad1de21c44dff9a8c229cd2c8", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/cross-https.keep-origin.http.html": [ - "bcd8e106913e7163dff21467c3988490cfad8e9d", + "d7ead3adb0755eeb31a68baa7320290c81c79feb", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/cross-https.no-redirect.http.html": [ - "d31c60c253bab68b1020dd7b0e66d8a7b4a1c45f", + "1e49b665814fee6cb264cd130b8b6dbe800856ed", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/cross-https.swap-origin.http.html": [ - "53593ca4db1b0304745ba2a1bea196c4358fe837", + "30b7794bae3e77fe6dd2ff5165f2affeb6c7007c", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/same-http.keep-origin.http.html": [ - "55d4f02cc4ff63d8272bb9834946f778449125fa", + "768d6ae83df944176de15f840f88f1c7cd0151cb", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/same-http.no-redirect.http.html": [ - "970f734cc72b43b5effd42fbf27991af4febc2c2", + "6675a82864e99bb31fcc766c7a608126de52dc22", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/same-http.swap-origin.http.html": [ - "402e089288db32b1ee8ba272112c0e1cb1d459b1", + "85e5b3d4365f024632ad078767ebe64d2f66647b", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/same-https.keep-origin.http.html": [ - "755b80e6743934a65e57593cdc623cb5bd796063", + "0245978ae2461b97a5f8113003971c92a6e87f12", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/same-https.no-redirect.http.html": [ - "df3a93a736e203da7bd6721150024d865cec2d3c", + "4c6d9d947d8df1795473dc1afe98fa8d5e55417b", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/img-tag/same-https.swap-origin.http.html": [ - "4e1ba92a6604b0d3c050aa24472b4f89875c8601", + "d07f71df2072a620aa677ba20b4b6b2e5e17ed43", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/cross-http.keep-origin.http.html": [ - "1404cb50cf638c93118155162a071052a1ad2f63", + "d0e4ac8fa12b77c758c7e74299bcffc5ee0581c5", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/cross-http.no-redirect.http.html": [ - "7c3fe13e2615ac280dc602f64102c329423a212b", + "16636872c0207581c32c595014959af0aeed4bf5", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/cross-http.swap-origin.http.html": [ - "749e5963912f2691bbe8dd7d3efe599e35a6202c", + "e1ac5e29da6290cc62f9e4fc715eb14a936533bc", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/cross-https.keep-origin.http.html": [ - "83a82e30cc65ba677a182cbefe523535240a9f73", + "96f7eb9705d79b266c86c03e2f1a9f2113cbf953", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/cross-https.no-redirect.http.html": [ - "49b86fb31eecb2e6e4c3f644f100327ccc22346e", + "a923529a17e0bdc5515c694cabbc4a35af013e35", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/cross-https.swap-origin.http.html": [ - "6d04bf37d00e054a045aeefd0dc1ec3cc68bda3d", + "e27f8e54fba82bac0d1f49cb5fd317bc400d128c", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/same-http.keep-origin.http.html": [ - "a0fb08ea0b98cf6e95d3fecf9e998c2b2ab8e7cd", + "ce44913a5ef2bd038b87429f8ee70e8471f2bd44", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/same-http.no-redirect.http.html": [ - "10b61b10295b25a9d7a0fa195b7c8f877942a4f0", + "9c39758a01ae03d8de123e6cd9b328cb0a2801fb", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/same-http.swap-origin.http.html": [ - "787f55ff2124b698dea27794003aacfb1d4e09e1", + "5d7cdfa8d5dbe045e0614dc6d927570b9e2affac", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/same-https.keep-origin.http.html": [ - "6d379ea9c775a78f9cc2c1289d3e6da60bce1e46", + "333a9f0dfbaf0cac23ff4f95b02316bcf8004630", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/same-https.no-redirect.http.html": [ - "20d6a05ecd8d5933dc4bbb7189114c567e6d1313", + "cad091685b3ecd0ea8c94460176b7c5789d4318a", "testharness" ], "referrer-policy/gen/req.attr/unsafe-url/script-tag/same-https.swap-origin.http.html": [ - "d14f4b465cf45f06b8fd6d3e2dd23b8872fead0d", + "d0dac9ebd247578782d61eef926a57ca741c1fc7", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html": [ - "6fcc2e48410f1df1fdb31a692683b9dc88f8f123", + "ee374dbf768f63d0b76205871a2f51c0fdc6d858", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495322,7 +495322,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html": [ - "12e41301c9459f833b92c8573b303e9f310fe984", + "f07855ee68e9b6f895ad694f967cfecf9d417720", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495330,7 +495330,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html": [ - "e9da6d9e804b03671beaa9f4a115fcbd7772df5c", + "0bbd1f69006dfb920e6a3328dd2d4005c1e9ebcd", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495338,7 +495338,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html": [ - "ab80ee87cbd8ddf0db5aebfc16d31a51d20cfd24", + "a124514793870f18c93ab2d09a42032ed896ac3d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495346,7 +495346,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html": [ - "fbde28cf9ce1a707d08cd35b6faf0c347e3c1d95", + "1ed2c9b55058f7fa2002196517f0e4d74c7d3701", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495354,7 +495354,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html": [ - "5acd29b81583d316bfb4fda889198fa2b1dca03d", + "c67304f7408cc36711abe4cbf2ab154b60cfe637", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495362,7 +495362,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html": [ - "bed037e0617cf5403daa215353e3d7d2a0638b76", + "3b1075f8a291f934a3267096d16ce1beb8988584", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495370,7 +495370,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html": [ - "d33cdb5c99b646a42761a46153a1cd851f486a33", + "7dbd2db9326b696dfdfc6a6d3d342770e73fc93f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495378,7 +495378,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html": [ - "2d81ef0fd42bc06bcc153bd739b08ddee3a2493d", + "381020458cff130222c33da6da7d709e3a21a94d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495386,7 +495386,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html": [ - "248935bd6f186d92be71c36b44a4fc49a962482f", + "d0e645740e6e9e1d3aab40b755babbd8cd49e2ac", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html.headers": [ @@ -495394,7 +495394,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html": [ - "029653aa7a93df5955377db4b14e4039b8a0b264", + "e2a92885d699e284acf3b7b9f1173a516f9ce90e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html.headers": [ @@ -495402,7 +495402,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html": [ - "b316385e01769767297e71279087c0f1a37c1237", + "b6bea77b14be464fd7dbd434585eceddb2cb5254", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495410,7 +495410,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-http.keep-origin.http.html": [ - "3dcdae2799d7f8b0d04483b2fdafada94a1ca304", + "a13393de325d16317259af29da298d544efe66da", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495418,7 +495418,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-http.no-redirect.http.html": [ - "54e35080fef42129696d0744a0f5d78e7c3e77b8", + "2d98e36788bf4cb7399fccb5b19a3b3532415087", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495426,7 +495426,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-http.swap-origin.http.html": [ - "a12aba37ee9fb0bfbe5fd3c540bf27a0f5c6f534", + "dbdcf2f993991dbbda8f24add1caa4ea270855ec", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495434,7 +495434,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-https.keep-origin.http.html": [ - "75a3ffdc15ebccae634c937462a19f325c343ec1", + "4caf1ae86b53ad57536dd2999fae79a32c9be645", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495442,7 +495442,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-https.no-redirect.http.html": [ - "6cc9885e30adab087d65aec377f41b2e19a9e645", + "2758b19eb7b05ebc5f8c96f7042b9916e530deff", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495450,7 +495450,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-https.swap-origin.http.html": [ - "4a167e2691f168d679703570ce9b1b1e768f69af", + "cfcc2e04ba15653ddb495028f1109ef1844b49db", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495458,7 +495458,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-http.keep-origin.http.html": [ - "5f3f07329ca1dfac78c72c20d2f843175a13daaf", + "88610a132c267d09a92da765c0b6a929ca65ea5f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495466,7 +495466,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-http.no-redirect.http.html": [ - "917e3df21a19e0600ef31087b4c383552ea6076d", + "7b6ddfe88fc81524ce1bce738fe72167b2eae529", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495474,7 +495474,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-http.swap-origin.http.html": [ - "3aaa4bb2ebc7f78621f2959a31d905167987354c", + "72280322d99507cbb22f4555a84379497bcbad23", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495482,7 +495482,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-https.keep-origin.http.html": [ - "4af2bcabd55d7d03e25f2e75d22e5df60649ae4b", + "965470028386e52b6dda246887f03136a63f31e5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-https.keep-origin.http.html.headers": [ @@ -495490,7 +495490,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-https.no-redirect.http.html": [ - "92ec80bf7b2082073aaba831016795f901ca6baf", + "281966fc330ae2fc18dd72f583d62818b8fa4fe2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-https.no-redirect.http.html.headers": [ @@ -495498,7 +495498,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-https.swap-origin.http.html": [ - "4004fe51decddd0fab935f106d4f28e517b9be1f", + "6ea37da5a2024c393a5e98558616cd9a0d8adab5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/no-referrer/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495506,7 +495506,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "5271514501f0353a4c3e94012994bbfa100a70d7", + "67073e8b4a8ff09cd186e73c350727b548ca6019", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495514,7 +495514,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "2e1d92a34ae88078bcdea9a827bfc9569779d83d", + "f5796dc7ec510b0a36e7d990d5925505988e56ec", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495522,7 +495522,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "ada402d0dfd40d06565140059baefe2a687a34b3", + "c7a33cd1af56feabe631576239b4ac4a2ecb7b93", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495530,7 +495530,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "fc8fe6678dd2b02af433df363263c798010cb394", + "14ca80dcbd6165ed91ea92b20c560e56bdeb2233", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495538,7 +495538,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "4fca6e923c59627883555ddeaa61412b410b2d13", + "6780c2af124e7c9ee46d4b3479c2412653a19af8", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495546,7 +495546,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "14fca890bd262719fe724b924bed2ba5fc9d1675", + "27da471a0767de0866fc7a3aa146d4d17de708ba", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495554,7 +495554,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "e265aade7ceca9a136d83bb6fc386ff81ed2c596", + "8f4f9d2156fbdd54009b53b2aac51f8c3c895a9b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495562,7 +495562,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "0f91cfcee72c97b7d13d2ef14369bf0e46b7d7f1", + "c00ffbcfedb6f4d2af7eefed58e42b0e8205518d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495570,7 +495570,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "ecd2cedd8089ee87515e823cf8c83c6e7686142c", + "9e6f4549c7c5418cfc04e591d7e5f3411d627c05", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495578,7 +495578,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "7f67bbb8af9b87b86875d32e7375abe9adae88e7", + "36d65e21affbfc532b1d0c39ddc23361043e2a74", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -495586,7 +495586,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "0e5ad8a433f5affd3ceba5e2ce48e7e405f46bd1", + "81fb47c872de9a5f3326a83749280bdb849ca979", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -495594,7 +495594,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "5f53a1ab6bda4a3048b0769fbee136ef697f7359", + "e8ea9b35ee0b98e425d2adb9ed63c1f735171349", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495602,7 +495602,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-http.keep-origin.http.html": [ - "7bf766f7079b74b473ad43bcdcb8e2f3a9f28136", + "247a4419aa736db17aca4a796b1d76da5b8ebc3f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495610,7 +495610,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-http.no-redirect.http.html": [ - "2499907edcd214aad8db760c37c86ddc7a4328d2", + "0fdbc84123ce342bd2958ff9fae8ae52b0cc7690", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495618,7 +495618,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-http.swap-origin.http.html": [ - "df82c1d6077ac177fcd049e594bbd51f4febe95b", + "7600c3861e97a1d9d3bb20ba54917391490b56a2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495626,7 +495626,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-https.keep-origin.http.html": [ - "b01e532a957e61d5fba3cadf2c90ffbb827773a8", + "501653ea807547434fae9db6d3ee22fc5c22a80b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495634,7 +495634,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-https.no-redirect.http.html": [ - "35bdacc127ecbf66d3327ef12eaedfa7d57fe949", + "f9a475e9826fab8ef78c32c9113f44ea18f011da", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495642,7 +495642,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-https.swap-origin.http.html": [ - "1308365f06639d886ec6a529847fe57eea867842", + "6922e02e9ccccb79db2934cafede02b302b3fe21", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495650,7 +495650,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-http.keep-origin.http.html": [ - "2829b4d582b0b46955d500bedd583410202e6feb", + "0c9d34a9f4812989f81e2d7f468f4d8c257f73e5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495658,7 +495658,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-http.no-redirect.http.html": [ - "ffae5396c1891821369bcbf7b1ca731631a6c334", + "9f1d2a8b3ad609680c3bbcb6469c912b0f18f8f1", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495666,7 +495666,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-http.swap-origin.http.html": [ - "cc9d8e8bf7665765e669e5731067df86f364bd02", + "6cd4fb74815887764326894147eed51042d25f2a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495674,7 +495674,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-https.keep-origin.http.html": [ - "9ad407a50433e9b0492a9b929bf0906eaeae1c3e", + "1ec5f02f71914174fbc5f5ac487e323ab4576fd4", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -495682,7 +495682,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-https.no-redirect.http.html": [ - "99b61473a4ace3e8dd55b17ae6c173a27a485333", + "2bf9d443bcb71136c764146b360a500e6cd72e6d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -495690,7 +495690,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-https.swap-origin.http.html": [ - "870752b152868555e630d49fc13c6bc63fe0503a", + "86e619b3f7f3d049291a3dddf5cfa91a151355df", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495698,7 +495698,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-http.keep-origin.http.html": [ - "60f1ea68215d9ff44ef777aff3609a77e4589738", + "dcf44f75b48471df7235fff20c31dc843821ce8f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495706,7 +495706,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-http.no-redirect.http.html": [ - "e23fab8d843edf8b3756da8f51b970d33b21efe5", + "effc5f815165093a693d695e373e56356aaf938c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495714,7 +495714,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-http.swap-origin.http.html": [ - "c4c588c68929ca640274f3ce20548dffcc04a7b7", + "d0cd5e0abdc73cd60f70e2a14d58c510da9c7546", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495722,7 +495722,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-https.keep-origin.http.html": [ - "852b1235372785368a5855d86ee4dedae87153eb", + "1f01ba13835d8ed46c396444245fe33e7387a84d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495730,7 +495730,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-https.no-redirect.http.html": [ - "905270aaa738d0bdb66f5c7715d3cb8ee5f45932", + "c028b78a476b6490d8070891196ba9cd4b672e22", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495738,7 +495738,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-https.swap-origin.http.html": [ - "faa4c95cfd8b8d80d3e6b67727864a7c8b47026e", + "b314058597f0657274a496a0bf1d01fb2059dcab", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495746,7 +495746,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-http.keep-origin.http.html": [ - "33f945060b7457c6a2528d14765b0e0bf9d889ca", + "87ea9f082da4f08ec21bcf5a9ed47b6f87b9c279", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495754,7 +495754,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-http.no-redirect.http.html": [ - "94de2118260e20a03c8069cf5d76b53b0ac19431", + "d009c2b4aede641cf994a3301f9103d6fe7df86e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495762,7 +495762,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-http.swap-origin.http.html": [ - "b830abc6ce695aa5ca0a85086fb96291db03ebb0", + "cd91112d52883fc87e40c43f8f5fb1916090a51f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495770,7 +495770,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-https.swap-origin.http.html": [ - "56802e32559f2c009226d11e64d2d2009ea36daf", + "6efa1dc56567a3265ffb319b8dbd80b7e978c16d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/same-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495778,7 +495778,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "1c3f7101333dc568ce48c04f412aa5fcfc6afee7", + "c05839c7d525c17ff9f079515510b78afa9a5c9b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495786,7 +495786,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "42d5bb7ee1c9dc749dc5df3945be71680c533688", + "f7434f91cd87a020f0136984a76feb22f9e7a708", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495794,7 +495794,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "68dcf2c4d32486ea7d1f927a0e4d91ee427e3531", + "da127b6dd12aa3d0f4982a0ba29e2c35c77a85c0", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495802,7 +495802,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "da2ccc576a26832c7aec8a427466bf1eca53938e", + "bb222956dae439fe0dba3f5f4241c67cd906d7b8", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495810,7 +495810,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "5f461dd44bc599dff9e730fabed2dbf414ef5170", + "2b4c9acd80c8b30aa85a7b7727e25368ae805d8a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495818,7 +495818,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "8b5ca0cb32dce2a16ab9c0510328c733cb1f0c8d", + "6534263de0239edde5c69f5d61d616ac9f725dbd", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495826,7 +495826,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "02e82e344e05b4b703945344cfd385deb6e354d1", + "1d2003410aa7a7073b75d4cda6c28635045825fe", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495834,7 +495834,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "9974b08f9058c74880a7557f53aa79be5b32886f", + "e72281613517b41062f833dc0ed02fa0dad2872b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495842,7 +495842,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "71255af62be912ce8c770dd12d1089247dbaf18e", + "3bd8c2a6b3739aa1e6847e0b25a1c2dff40ae6b9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495850,7 +495850,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "7627c3242776ab774bce819570974f29921a23b8", + "3d88338d55afe9d3ae879fe4e6dfb2983db2b54a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -495858,7 +495858,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "588c39a8a746eef67c4cb008dc78fe5002786ec4", + "4b84b70673b574fc6074a6f06c200844eb3282d3", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -495866,7 +495866,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "9374e472301a8028744b9588454a7a21dae66a90", + "cceca42b52f2bf3236aeb75574a3d982a994e4c0", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495874,7 +495874,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-http.keep-origin.http.html": [ - "27f377b5479e4f2f257820eb49bff083a51e4d41", + "f5bc1f0282c837dfceb4589f59d209d16e01d86b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495882,7 +495882,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-http.no-redirect.http.html": [ - "3073e88ca2235b75a2fe9b4dd156cee76b96a59a", + "050e8740045194f5ceebcabd5af050daf4fbe0ba", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495890,7 +495890,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-http.swap-origin.http.html": [ - "cb7947261a6218e91d401af2418271c61f799258", + "14b3b906afadd3dbe4ff0190045741a67269554a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495898,7 +495898,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-https.keep-origin.http.html": [ - "71af3259014a6f1736507253b859befaff4e0d3b", + "3cc34473467d4f3cd78ee724a793c14a999c78b2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -495906,7 +495906,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-https.no-redirect.http.html": [ - "81d8cd1a670b5db54e18fa1b1cea1b8dd212b678", + "01a026681f1dee1bf0c179ca7ab147f87c2864d1", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -495914,7 +495914,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-https.swap-origin.http.html": [ - "fc3807c8f532538d226f65eeb4caa3691f8bdad6", + "573a019bb8f939200e52325dbe81b8d00a24e59f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -495922,7 +495922,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-http.keep-origin.http.html": [ - "86a50df759b5199ce24ee025efbb5cc0f93216fa", + "99414a5e9d4e4c97022ff391da3291bcaed93d4a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -495930,7 +495930,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-http.no-redirect.http.html": [ - "c6e0d03023376ffb9da91c62e4b5f16304200997", + "fcf931ca354d6c74bff7ed321e028136b336f402", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -495938,7 +495938,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-http.swap-origin.http.html": [ - "5d536fc2d2b9501bcc5478f5b254bc75312fd95d", + "caabd002d300745a5d496b41b8e04b6be4b95d9d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -495946,7 +495946,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-https.keep-origin.http.html": [ - "74bd3a07ffd0bdcf3a07f4efd190975f0c175f98", + "6b7e6a80b0464b103dc516f81122197fd4fd78d9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -495954,7 +495954,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-https.no-redirect.http.html": [ - "d21bc0c63a24ea9ad8a27ecf88c0943e43dce1c0", + "997119a03c9cdfa53ea8b455b69dee2656b06c84", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -495962,7 +495962,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-https.swap-origin.http.html": [ - "6b265bff090dbaeaaf3f2c5e263ac8a7f126ce29", + "0a4d8e06b8dd87abe2b2888227e7102c3a1dc1f1", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/strict-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -495970,7 +495970,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-http.keep-origin.http.html": [ - "8813bd80517772cddb07701e0df94759e0383b1f", + "6680d9a81091780fd8797e9fcaacc7bcf7cb72bd", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -495978,7 +495978,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-http.no-redirect.http.html": [ - "8465399f8e6c237ab0fc15cf60a0b8bd7ece2812", + "c0f490f4ad6a8bf72e9adeae9973c534c62ec737", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -495986,7 +495986,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-http.swap-origin.http.html": [ - "13645cd4ff9aa2d1cc43e81cf783c45669eb203f", + "04a8cdcf1e5e980cb9cf4b0690f30037ab3d3109", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -495994,7 +495994,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-https.keep-origin.http.html": [ - "a669d0a024da1f9e8eb198ba999d1fdfa0ce510f", + "f25896a4d99140ba6bd73b83d0150e02a278fe75", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -496002,7 +496002,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-https.no-redirect.http.html": [ - "cedbee9f67f1b3a58407c769163e913ce54ae1d2", + "119db9da9a0ef6e9bc68da24246caf06f8a4bb86", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -496010,7 +496010,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-https.swap-origin.http.html": [ - "5b2dba40f94c2ca57309aae5eeb755117b9ee5de", + "24fab1eec6e2f85e1689c7257d22cc5d67849825", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -496018,7 +496018,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-http.keep-origin.http.html": [ - "909b92bfd508e7a13d36761443ba897df4569d01", + "80d28c9ab4c4ddae4f6505bd3c45862219d2d81b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-http.keep-origin.http.html.headers": [ @@ -496026,7 +496026,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-http.no-redirect.http.html": [ - "4c207021bb78a1e773a86bf2c025cc78e36c7167", + "1cfb75020a0d0478ced77d2de3f46ad6f55b979f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-http.no-redirect.http.html.headers": [ @@ -496034,7 +496034,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-http.swap-origin.http.html": [ - "a8eb7fe9173ccec09654b3f226a47c58bf70195b", + "e72ba1547c27948a97ba8ca15b3fd9c27433205e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-http.swap-origin.http.html.headers": [ @@ -496042,7 +496042,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-https.keep-origin.http.html": [ - "d131ac349dd63be99721edb5a9bd2dd16510d332", + "bfeb494d66fe6e2abeace3d888a2c700cf1bacda", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-https.keep-origin.http.html.headers": [ @@ -496050,7 +496050,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-https.no-redirect.http.html": [ - "83d055f7067eed018c001b827843e0745c246b94", + "9ed0e1bf52ce223b37348c5fbb0d7109731b1212", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-https.no-redirect.http.html.headers": [ @@ -496058,7 +496058,7 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-https.swap-origin.http.html": [ - "a8570a0ace064766ab88a6e5732dba761b2fe4da", + "f976183aacc8e1a51e9e60f08d9729c29b615929", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unsafe-url/img-tag/same-https.swap-origin.http.html.headers": [ @@ -496066,855 +496066,855 @@ "support" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/cross-http.keep-origin.http.html": [ - "6f7a990c3628e5cbe9a2d875276b7ed2d911f05a", + "f35f4f9d62898a9d45114090703ca2ca468102ac", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/cross-http.no-redirect.http.html": [ - "372dc54da900f8d705fbe8fbc325aef4e0d04221", + "46e50330aee9532e366f915a618696637bcaf9e2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/cross-http.swap-origin.http.html": [ - "a7c824ad849ab94026204112d3b6b0c2924121dd", + "7f04abb3832c589c03fd6c313f23ceaba01af459", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/cross-https.keep-origin.http.html": [ - "a6b479af2270cc9b67253a50ff1d72115912628a", + "ce045a716f08b163a6541f2b2b780539ecaabd6a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/cross-https.no-redirect.http.html": [ - "adf1a64ee3ab05a82f222c256835bf3cce909e21", + "533660ee47967d603304233e9c3e44caa237f7c9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/cross-https.swap-origin.http.html": [ - "8a5191c15d7c09031fc1b0d04a5a1592bbbda70e", + "4e35fb2b7d46c72349e015163f36142f9ca45e39", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/same-http.keep-origin.http.html": [ - "3399f87e517082b35d4f195c292b6a6c09cd949a", + "2ffa21d9791b85764fe49d465aca693a4076c69e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/same-http.no-redirect.http.html": [ - "7c650385210ef37f91209d0691cdfc10e6b00850", + "74e83f43373ff7e786b02e2f931f0653cafccf8f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/same-http.swap-origin.http.html": [ - "e5c6ef5c92ba207dd33407feb383eda057bfe4b8", + "028f7da6a1c45a6726943d829ac195bcc9d0bac7", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/same-https.keep-origin.http.html": [ - "548db299dc676347e51249a4e9a98fe43a33a36d", + "bc777fae384ad3dfb34227c5b429cabb3f938c9c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/same-https.no-redirect.http.html": [ - "966c035869b2c7c5c8450588c6dfd9bb206dae1c", + "9389f18bb6f2169267120731d4581fc020b65806", "testharness" ], "referrer-policy/gen/srcdoc-inherit.http-rp/unset/img-tag/same-https.swap-origin.http.html": [ - "c195ca6fbf17ec8964822593dea02d22cfd4c86d", + "761bffa81c557369ccc88c2efd8f9e2280064d2a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html": [ - "373a9d8b424df64de229e452f44c8d0fde787931", + "2950bba1a75e645068b2f57df444b90695be2f39", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html": [ - "003e81f97cc71cefb1ae845484740766d52db0c5", + "be2e12b89e21582dc1ffebe22dcad68bccd8b1fd", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html": [ - "c2ac0fa7c58504f5753bd6e68ee469949b96b49a", + "1d299ff465bcf4e808ae3173eea10b2e889e485c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html": [ - "5d3fe70c29f26496c38e7fd557229fa8552ae5ae", + "de6243fed8b315c93e38d21a12e72aeb3e1f35ce", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html": [ - "ae5b1bccb9e71e4e81b15a13ac544f745120a380", + "af4d19e238ec43646ea224c54822c84f6706c642", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html": [ - "6fc4bf67a6e0bde78cd54ea9165dd61fb5df783c", + "6ccc1ebc335aaa805d1aa106280572a286ce2a4e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html": [ - "13a02941aae3f83dc6b549874ddcebde4aaa8a2f", + "1d4a6bec05f8473f0d0ea7b9429622c9079314f7", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html": [ - "018e4e1e31617765986d38036141917f12dfe890", + "8a91acb59b4d8a8ceecf7aef84bcfa6fc140b4ba", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html": [ - "db653dd595df891c8e1ff96915e419198aa0db2b", + "d682ec14538ff4ae37eb5cbb30f5eca0b999d6e2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html": [ - "d40e774764d873cbefef8b1c70264ee6625b49e3", + "43b67209f54ecb55ddcb75de68e8a72648dc9f84", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html": [ - "96d38f157ce565300a60eac4702bec9142b0e636", + "8d10af50ad3858876f34156769507539ed24ab66", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html": [ - "d03f111c04ded484a9abd550be71459f475b212a", + "7c06426b42e736027e4cf31c941f0fdb5d846a43", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/cross-http.keep-origin.http.html": [ - "7cb49559443abb6e79934d0559ad920d85dfaaa2", + "0e0cd8f42096069769db6d36a933297809058991", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/cross-http.no-redirect.http.html": [ - "2761d9697a3574791661c2b2897be63d5943bb94", + "c7e2bafefa249d55551d67eb88c71e3eec37fe02", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/cross-http.swap-origin.http.html": [ - "2bb50f41cd50b4750fd5a66e017279b11b916461", + "f04548cf899d3c80ffc92032c5f70272a3d0b0e3", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/cross-https.keep-origin.http.html": [ - "383626d315ee6d98e775ee04fc03fb75dcad91bc", + "ad29794a1ce53a3c35eb0d1ba76f7df4f0da231b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/cross-https.no-redirect.http.html": [ - "5e55b6dbf849a4bb714043366ec45aeb74212528", + "4387d0cf4ac9ff451d5e50be0f0a493adcbc505d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/cross-https.swap-origin.http.html": [ - "f8c89cfd7714b32b013183821b6fdf633d9f81a1", + "545b751f4f8059046daacbf70ab6a6b9fc97e504", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/same-http.keep-origin.http.html": [ - "cf127d3c0760bfacd57d59368d36b33609820abf", + "f8a81a8af3363fcf9818d4eea40ec2850b903a9d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/same-http.no-redirect.http.html": [ - "06ed034cb3018fc5ea1b96b098b3389d4823d889", + "e0e31503ac528e70355ab81cbece73b28667324e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/same-http.swap-origin.http.html": [ - "5e718a4ff59b681569812b2539dae59a6216672d", + "02576c22a67c3eaab5c677d626148c65dcff7a8f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/same-https.keep-origin.http.html": [ - "e7e5b117869c7ba6357d2edd4471cf2c037beb85", + "e9f8da0057b4fca11a49abdea85e21c88d0d0c00", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/same-https.no-redirect.http.html": [ - "ce595e64c30a824ee4a95ab59d465b31f5bf39c1", + "47a215cc5b1af26983749ec2ad36ce21967f5045", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/no-referrer/img-tag/same-https.swap-origin.http.html": [ - "35e1331279f56d3dcd556259a33a9b8393ef03de", + "fef59b4619869715c29f0aca220ce1cf1b1aeaea", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "3ad010c5bb82e9384acea653de648fb7fbb9233b", + "0b3d4a144e1e3d3745860b87d5dfa98ded8b4f3c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "e0aed40e21e1ef417333b8fbf594de5e983af090", + "c1bab0c9f879982a5b0d734ada003f8a53f0407b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "6d1b9cd64b14a1d02bfe24d35e8362c742b9c577", + "4ae3a00e4310ab0570b30bf1e123ac9ba2d4dfd3", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "a9d89ec6e67f1a3608c189ec255a248b4f54d6b5", + "4f178a66e431534bfb9e2507d38e9ea597ed38b9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "1a8fb14d32c17073363f79282683b61ec4543530", + "e3e0887b888f34023fc60bbe760963de2dfc79b5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "fd4e31303624ab3d813bfd9ede590b5966c1448e", + "be2eea323dc3726f4343bfa307a39891ee89c7b0", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "7a0cf11776236fa0cbe65e48d6d50b03f161c461", + "4f9345f3ea0b31aad44bd292a63ac6abc4893e3c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "a9d77675af77d3b46e67d7f42f3236a80c382c28", + "e162101d56dbbc7c535d703bfcf6e852d66d657c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "6b1232ea83a255a0377703f9da1e74f777565c1d", + "05e47dc0f9934d8c907d8af57bffe54188c73b07", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "24907de0dddf2eb79f70607e780166e029df7ff3", + "c7a0e1d8368b05c3b5d2207af2a55a03f67d6443", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "f378b6a78b9b32b7f9fbf6b9364161cafe4d3a03", + "04e3160a659a11557887c2a97bbeb9df87688b99", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "a2b9830828cfa80c86cba1e1d8ea2e0157f8befe", + "d9734ad707a3fd4cdfe1befbf663d60fd811aaf0", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/cross-http.keep-origin.http.html": [ - "094228a3afd60c2b5d656f39c75438d4a3964842", + "6c810a7a7e0806c877296d3a3a83084b8202dfe8", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/cross-http.no-redirect.http.html": [ - "5f9428c18c7312f9c8c7528dffac801883afb9d6", + "6aec28f4d0d4a0053666dedebf8dedc78554ecae", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/cross-http.swap-origin.http.html": [ - "26bc34564da8ee175d27b33984c7858286b60e2f", + "973d27c7e867e04075718627647dceaf870b6f78", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/cross-https.keep-origin.http.html": [ - "70733ab2c0dd61fcfca1c4d8e13d1e941467080c", + "a58c210d4b4674e1ffb917e42fd9fcc82837277a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/cross-https.no-redirect.http.html": [ - "23913adba9bed4814fb8f1f348ff6710d4e1e7d8", + "45be6a1c2456827b50f7cf6ac4c1208e466dee67", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/cross-https.swap-origin.http.html": [ - "0ea5027139c225e38c5e68306264d27b48aaf1e0", + "0058103f504f509feb854aac66119f6f9ff041d9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/same-http.keep-origin.http.html": [ - "9fdd68c95bf3c010d9e0cbbfe5e4cd219a3938a8", + "fa51fba2bca2e2c936fdc9cf0666eb1efa301c15", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/same-http.no-redirect.http.html": [ - "568614792d4109980fb47c515a93eba406c2673b", + "e863e5bd5de691753f9550531b19124dc10f58c8", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/same-http.swap-origin.http.html": [ - "f40179f1141fecdc18e3f2db34cfc12bcfd4aa0e", + "5b24542ef6940c77873a4af8292c40b200109642", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/same-https.keep-origin.http.html": [ - "1d5e7900eff4efb6d0fd0fd36aaf40b412a991d1", + "0ddf2ba683aa40a8c990e215797da973830b3577", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/same-https.no-redirect.http.html": [ - "8e7a1f533c5d1eb70f710a020661993bf6710edb", + "cad81813e798e526f2ac944cf1098bdb81e9ff16", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/origin/img-tag/same-https.swap-origin.http.html": [ - "ed7b1d9509e779183459025a64bf1462b329804b", + "0eb837ec08bfe8347f0bc501a2f6f38e47c821c0", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/cross-http.keep-origin.http.html": [ - "5c14128c986d07dd91f703616c56d498af377663", + "882e2bdb30c86735b776f458464b89bdd5e6583f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/cross-http.no-redirect.http.html": [ - "3b7701e517776b5c7b78872322e683b70c04f3e9", + "0bd6e26710c738aeb95a1f8f9b42777dd69a2b05", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/cross-http.swap-origin.http.html": [ - "e246c04f341a0cf2cddc25dc5cc93ada08ff372a", + "f14573ac4f1b505bb9e07cb5652fd7d79683adde", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/cross-https.keep-origin.http.html": [ - "4cded5e75da38f89356019251675e4d43d5b2e55", + "2685033ec3ad033b45c14d79acfa0899f9d9cf5e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/cross-https.no-redirect.http.html": [ - "ed77770515050b44db2633303d0bb5059132ede9", + "566c7707e105706a5387294b10100860ba2c7df7", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/cross-https.swap-origin.http.html": [ - "561c181557a515c4809d466809710fd8d9c82388", + "05a331609f2131993e3fe122ab47a1fb0c663d7e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/same-http.keep-origin.http.html": [ - "146db70d656d5da6b6c23210f9c471e8b46d0c20", + "4dd3fbacf58425fa953d15366ce5e2a3cd9194ac", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/same-http.no-redirect.http.html": [ - "3873d734875f2462c754794b346c623436b9627e", + "d0e4063153cfbda13aa7cb9967aa869cf06d6742", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/same-http.swap-origin.http.html": [ - "35ee0075ae63111888dc94382d6ebfa7baf11da0", + "7b9571af516c57ef22231c9ebec0852c0583a572", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/same-origin/img-tag/same-https.swap-origin.http.html": [ - "91ba1db649367dab27ceb143e083f449154408a0", + "a8919e6e6d62e7156aa1ace5b33def6afb067986", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "f78530b97168a7c502fcee262ade4c5962c7fc45", + "bed8df8fa8df0c9c0595368fd01b9ee329ced87c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "9a1732e53a1c0352108d5a2ed7adeacc5a93714e", + "279a75d9c8688e87fba4638a548dcee8d1eab5bb", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "74bbb2a16230f203f66ba5f204224641af2828ad", + "017ef55cfd0a096c86684857f176563e12ea99e2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "0f535518d652f4920374565cb42fc07e415c85a7", + "648b3a3408552d1fdd39b2a3c84e8357ad7712c3", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "15c3bbd4d637734a15072830ef4133085275dd64", + "e06fcf8dd3d52d20b54d04e915cb9d403af87bf5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "be4657ff223a65bdf8d26b3c479c88213100cca2", + "1573879b70081fcb3b32c236a6a9615b6f86d830", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "294746ee0d36e710da80cdcb56cdbccdad35d8b1", + "8de9152129342180272cb1f9c8975b9f9612e94d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "dbaab80be69738669095d2b4c82621c92a948a17", + "a912f8c3353b3c3a6dcd95dff6d161dc351e2bd6", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "9eb466a64bc1304f53208d565b453d01ad40adce", + "9343c0f844eef5993b1f97484b071fc7b2ab66b4", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "9394b8586ed8df5aa20000cd28da66036d0045d8", + "804b2d319f084e7a1901fe552987f98ff292734f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "1c7639d2bc68a5ce46619730dd24c4c6a0b04916", + "3f2d5c87e6bcf3bc118c2094446db717c6f30b24", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "0a88d3fddac3fbd03bb707799b2e1c7846e32b6a", + "867558acb76ca1a70294d29106020cdd20a3fada", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/cross-http.keep-origin.http.html": [ - "37ac098b52c2496a6ab6b69647cf234ea5743bde", + "ab1bb44662b51d8eefa22e6d43d5fb15f8f8ae12", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/cross-http.no-redirect.http.html": [ - "baa6526c61855a531044825faf9e3952ca8f3dd8", + "154fcdcdc9eebc541ddb9258a31b95d3af34e797", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/cross-http.swap-origin.http.html": [ - "94775ea99e5f1593fbf7b665177324bb73022e86", + "d24f9f72ba5186da2b1317315912e60d386bf4d9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/cross-https.keep-origin.http.html": [ - "a3b8554b4cfc4614aff1bfd3f5620ed95bdc68e6", + "e69575707d3ed16340f99652860c5b230199b824", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/cross-https.no-redirect.http.html": [ - "084f3dc1574e5f2e57bced7cb508800a8bafafb4", + "a97ff758e1bfe23b4cafb35908f0f9af939431bf", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/cross-https.swap-origin.http.html": [ - "aa7eab66ffe6122d1756e723bd45ea01836b8e13", + "f0998db7eca69cf7708f545dbad6fe8c578ce3d3", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/same-http.keep-origin.http.html": [ - "8e17a98987e785357904f82f5b948524ec7ed505", + "98761398f61ce5715436688a2864ad832d6bb2d5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/same-http.no-redirect.http.html": [ - "28878e2b1c24cb954a9f557c87dfa2c5bf456497", + "2e9ac8c3e49bb2ce4ff8f2b83ba2464ea1c618d1", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/same-http.swap-origin.http.html": [ - "40e8f64bf2dd950c4a5dd5e0cae1195fc03744fd", + "16b2fc085f5f4e36a763e98e9a6150f9fabcbbc2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/same-https.keep-origin.http.html": [ - "b8f40d6493b2bfefe362ee18a1f8ba3d88405435", + "098365ba4d2261a43c661deddcb8532282dc55fe", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/same-https.no-redirect.http.html": [ - "d287d5e473137845e93ac023ab2d9493e8cc8af1", + "2941add0f67b0cc72ac2b9ece06726e59f045284", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/strict-origin/img-tag/same-https.swap-origin.http.html": [ - "aeb97eb880967f71f284f6618cbb0ea1a127d46c", + "b6b4cbc6d8b6341acbec81f1289414bfc0ea64e8", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/cross-http.keep-origin.http.html": [ - "f06f701b30afc7736f7627f34c10d48631b85ef6", + "3ad3d020d7f67570775a4726443b57b6a5a2c322", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/cross-http.no-redirect.http.html": [ - "e0d56f42938dc05a6a21c27a71e2a064a8e595cf", + "fe66f6614d4870a3f72265003c362bfd945889d9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/cross-http.swap-origin.http.html": [ - "9cf8b085f8d26b196ed00db74946add27e0871cd", + "e3f2f3bd1c9103c970d0a06f55fa60becb1bf71b", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/cross-https.keep-origin.http.html": [ - "c6536bde928e5d6e75d5c0dd4741985443a74d21", + "3528e78c77c316e90ff1e41111ebcd131a5ed4df", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/cross-https.no-redirect.http.html": [ - "d43e6a2cc4b3a06cc09359b14389107d93debde0", + "a45b53d2228935ce1deec30f158b4743a4131237", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/cross-https.swap-origin.http.html": [ - "06fbbb9e1fe0e28077440dd992f60dfc1249a330", + "b6789f90c1c22a2a6bdda8f468409b211be4cdba", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/same-http.keep-origin.http.html": [ - "bb76971c646f9c30fa5905c73762bdfe19040a1e", + "d1105d22cd8aa86151f56e674dd7eec75c3b5524", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/same-http.no-redirect.http.html": [ - "f28611bd39f09ad53364f8f594686924624a2f91", + "a3b470858f4d3f25c24c664a44bbd0eb531ed7d2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/same-http.swap-origin.http.html": [ - "c52383aff712992c66900d49d5d30788af82aad5", + "4fa99cad125eb7cccbddee9f92f087575c54f5d1", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/same-https.keep-origin.http.html": [ - "ebcfe405b0e9b8435899bbfd6573c0a1a5ca0146", + "d54987913014ab20cd0e1e8c423120dcb035419d", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/same-https.no-redirect.http.html": [ - "9f7d448282bc6a2591016a624991bd67b0637d05", + "e06f10ff2b2b9798e89d4c6e8afc81de8642e7dc", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unsafe-url/img-tag/same-https.swap-origin.http.html": [ - "208c7a7a139ef2a50ea58023db11d746cbf5c649", + "a412e4c220c4bcbc086f149660926cc442b6fda5", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/cross-http.keep-origin.http.html": [ - "6f7a990c3628e5cbe9a2d875276b7ed2d911f05a", + "f35f4f9d62898a9d45114090703ca2ca468102ac", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/cross-http.no-redirect.http.html": [ - "372dc54da900f8d705fbe8fbc325aef4e0d04221", + "46e50330aee9532e366f915a618696637bcaf9e2", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/cross-http.swap-origin.http.html": [ - "a7c824ad849ab94026204112d3b6b0c2924121dd", + "7f04abb3832c589c03fd6c313f23ceaba01af459", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.keep-origin.http.html": [ - "a6b479af2270cc9b67253a50ff1d72115912628a", + "ce045a716f08b163a6541f2b2b780539ecaabd6a", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.no-redirect.http.html": [ - "adf1a64ee3ab05a82f222c256835bf3cce909e21", + "533660ee47967d603304233e9c3e44caa237f7c9", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.swap-origin.http.html": [ - "8a5191c15d7c09031fc1b0d04a5a1592bbbda70e", + "4e35fb2b7d46c72349e015163f36142f9ca45e39", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/same-http.keep-origin.http.html": [ - "3399f87e517082b35d4f195c292b6a6c09cd949a", + "2ffa21d9791b85764fe49d465aca693a4076c69e", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/same-http.no-redirect.http.html": [ - "7c650385210ef37f91209d0691cdfc10e6b00850", + "74e83f43373ff7e786b02e2f931f0653cafccf8f", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/same-http.swap-origin.http.html": [ - "e5c6ef5c92ba207dd33407feb383eda057bfe4b8", + "028f7da6a1c45a6726943d829ac195bcc9d0bac7", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/same-https.keep-origin.http.html": [ - "548db299dc676347e51249a4e9a98fe43a33a36d", + "bc777fae384ad3dfb34227c5b429cabb3f938c9c", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/same-https.no-redirect.http.html": [ - "966c035869b2c7c5c8450588c6dfd9bb206dae1c", + "9389f18bb6f2169267120731d4581fc020b65806", "testharness" ], "referrer-policy/gen/srcdoc-inherit.meta/unset/img-tag/same-https.swap-origin.http.html": [ - "c195ca6fbf17ec8964822593dea02d22cfd4c86d", + "761bffa81c557369ccc88c2efd8f9e2280064d2a", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html": [ - "37f6fd2a404aa1855bad3bbb0ef4bb22dafeb903", + "2d7e93c906b2cbd898e48a527ee2e23a1e2335c1", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html": [ - "2942f9ccf54222ec8fcb0f79501a87ad9487f1d8", + "016ffb87b5f8d302755a6b1e6745443e9ef1132b", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html": [ - "a3659cfe9ff416c00c46f635f08603cd60e4173e", + "18766cc98a954ab1dc24aa3b82da256979986ca2", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html": [ - "6583977d468f963623d011deccae6d77fb50a97e", + "862c7297d51bcc539fca121d89cc1cf323e5d318", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html": [ - "780138004f927a366ca8ee794f21da27b0864e69", + "9413546b07d6229e3f238ae4290257fea9ab0ba7", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html": [ - "b914ad4d7398c41492be97e92099273444087c36", + "5661283ef0b5639a6424ee106256258e55db4734", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html": [ - "d2f057da0254b49f5154b82a8273308486a1a5d1", + "c2b0cab8a1721a4d3738e6f2e6a9c3d343b8d986", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html": [ - "fa5f521e4bd8add320875dae12521962c2466f4d", + "67a7cf11cd9186e15c5fa235674bafcdbc32cda4", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html": [ - "ed1728d5e296e300c2907b4db9f0ebdf3c592d0f", + "435d78e20d2cc68eafbbd13d0d9223d6186648bf", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html": [ - "98105d7714acefc476b1f4996a6e1a774fc91bd3", + "e945b6bdb6ed91232d53077bebdc7bb31d38a397", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html": [ - "20f880acc54cea49054115d3def89c08af7ce150", + "9c5116465bee8f00f00e17fef5c83536c2abb8fa", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html": [ - "a454f59feabe78bafe88536dd528af020321199b", + "d8d0e2642db7247bc7bd61a8e37e6b5c53a8ae60", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/cross-http.keep-origin.http.html": [ - "09d2082111a9f992fb7b75a099b4270c9e38189e", + "0e867173f6acfc435cddb6d9636f299b2b6d95c9", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/cross-http.no-redirect.http.html": [ - "508eddd0980aed13bd6a9a52d1c6bead6a61dd02", + "32babc6af8d6378cd76d425942941bf51c56ca41", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/cross-http.swap-origin.http.html": [ - "326e2dfee704310541e5ba25ba04ab3cb0f1361f", + "ee52a7773e32d3fc7445024abafc1ac679a68223", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/cross-https.keep-origin.http.html": [ - "876cc6eb2ca0f91c213091186978cd45ce4f1926", + "93e73e77a784088f7a405dd15c0e540b004f2cbd", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/cross-https.no-redirect.http.html": [ - "5969cab93a01431727677ed2f2bf2c43ad3b8fea", + "d67c6fcf20f91df4c5145c223091c9971b64ad95", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/cross-https.swap-origin.http.html": [ - "b3f753b4c33efb9392abb81b4a7ce3762895fb15", + "0f1f958b931f6e96616839322c2997e9cd019723", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/same-http.keep-origin.http.html": [ - "2292457180dbb44ac9f0632336ad243ab1784680", + "ad9edec08d61535216e3702459c23912e88a06fd", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/same-http.no-redirect.http.html": [ - "79f359fd826e944d3ad1d1c52dc1d6eeec696036", + "337521b5995975e0a8e568ccdef92c5cbbd128a9", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/same-http.swap-origin.http.html": [ - "cf5648454600042a4f003949febc665d580c642a", + "98d39e522de1b2156571c9e071cd7c9b8348d0f7", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/same-https.keep-origin.http.html": [ - "de2adb477b7fad358051016b183a27f35b2b6ef9", + "6ba35c7fc320ece3c74370ed7010ff5f693fec6b", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/same-https.no-redirect.http.html": [ - "bbfcbd3d48e8a94f07f07f846c7e36ae140dd685", + "f9b850b9237e935d837567a91c18e7208996c31a", "testharness" ], "referrer-policy/gen/srcdoc.meta/no-referrer/img-tag/same-https.swap-origin.http.html": [ - "7e7bc2003695109109132bf5326c61d9fb192a2b", + "bc62feeae0fa264a0ef2729e3dfafadbec83fbe5", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "3c340cb6ddd736c9d3cb6317cfcafac3388561ec", + "5d061f4fd38ee1aafa3c2fe9dda8e626c0ef365c", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "4d9c9ad4e2b7f63813d9ba72eb2a5965622b7aef", + "ceada990e70059428064895bb19b74d976eb03d9", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "65828ddbe43e6d0495f35ff8e2b1283e94262d5b", + "ed500f68b73d4cffb573bbf7475e586d3d1c911a", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "205e957b4475a190efc34f53765edb2acee6ae3b", + "4d73ccc71114a3b47dd2b2469bf9409b704c9740", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "11360c8396411f9d68344670b06acd647c016b0a", + "fcde2e4b56173f4c7d6d6b22712f2b6434dd34c4", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "11a17fa1a5d4204dd7e3a38a569998290923243a", + "2a97d907933a1b6b0c664059fba3dc231f11a9fe", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "67c954be9ebb86f3a7a0582012dff00ef8688509", + "bfb05f04fe5cc10e50fab8ac9653931a43b95fc4", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "ea8a89bb387054ecb6acf1cce94d6232567b5441", + "5bd8cdf1e89c3305c25a6679fc5e11655ab09ba9", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "084d24a38ce79c28d9cfbc1fcdf86fd33d986725", + "6624377f8ad0436f4c693d9a549f0312e2643d96", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "1e8247776b0845913a4be367c26e1f39ffb770ec", + "41d8e411e71c22bd052123c1693b68e60d29b296", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "bd29bf94c24b17d330053dad9b906e77bc6dd46f", + "820c6a30064f4da63aed73228d2bab7b21d5bd23", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "58240b9faede2c039448a30448feeed35b6df23b", + "0114621aa7cb6467ed2ea17261deac2eb86dd0a2", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/cross-http.keep-origin.http.html": [ - "fdcec2041e476318cc7981f0f662da2acb641878", + "c6b74361d5a0f5f61ecfdccf6ef4614261cdeae7", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/cross-http.no-redirect.http.html": [ - "c436821e3b0ff4a385f5e844cf2849e56b580317", + "ae5804351b0b8b8be01d777ef93af6495df6c9c8", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/cross-http.swap-origin.http.html": [ - "15d16ec79937db4c31e7c3e5d617f31e9e723176", + "33c96640cfa164818e1123aeb248fd83fc49c588", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/cross-https.keep-origin.http.html": [ - "b5aa883d3fe45df1751107ea3bae94727dcc0146", + "0316addebf6eca4f4a8c9098bb00f8f815ad9444", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/cross-https.no-redirect.http.html": [ - "c823f712f95c1eccf39dc6b42bad14a3bf9c2175", + "5521177869cf8469ffe2d0d791da5df981db5fa6", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/cross-https.swap-origin.http.html": [ - "7bc80256b5270c1982086697745e17ba78997a79", + "e77bb3b0cf1cdaf6cafdb3949031379cf78d88f7", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/same-http.keep-origin.http.html": [ - "ba251eb6af55cacb9476904ac8360cebc63e82eb", + "fdcc1c93a8a11e2c577a35f0ee91f2780e71fd94", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/same-http.no-redirect.http.html": [ - "5790465c573165501418ca586b5cb8708a35947c", + "70bd6bebce5fee9207d56fbfe9b0d06bb1fcee9d", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/same-http.swap-origin.http.html": [ - "b1834ef253d9fbe2183d2cc27d89ecbe5607ed01", + "a94dc36b05741bb659d4df68a09380ef09d5ef92", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/same-https.keep-origin.http.html": [ - "6b942390a10f35f7b386e61105884a6c0e111f27", + "2810f98857939396d125c7537d48ebc36419a68c", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/same-https.no-redirect.http.html": [ - "9798816924ae99ba6b8b4217527ed95f70fae7a1", + "6a18555b9a228f5ed92092e7f3dc3f09667e5c15", "testharness" ], "referrer-policy/gen/srcdoc.meta/origin/img-tag/same-https.swap-origin.http.html": [ - "56f71d7a497ff1f03781d3c4c620600d2c330b42", + "812ce1d19e71f2ee2dc359bb671e76e12a8625f9", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/cross-http.keep-origin.http.html": [ - "3da9967a951584c680aba99f2d63eb385c8f426d", + "e18fcc77d55292486c81676148b47a1269e7b830", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/cross-http.no-redirect.http.html": [ - "c17b37bc438ecce2659e893015c2222b373f7551", + "63ad650a18eea0d32ef1547dc856889e6025f768", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/cross-http.swap-origin.http.html": [ - "cc3fee68658edef25b7c92e10f61192dc452f862", + "0bc77a7bb82b9f461f4ad935182784322af6364b", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/cross-https.keep-origin.http.html": [ - "ea91c863fb941e7a461853316165efa8f395744f", + "f7131c53137a3f8ebf1dbd58d7eaaf8cb843fc12", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/cross-https.no-redirect.http.html": [ - "71a1ec3646ee0c337c39ef73bf6506993b23c3cd", + "83a1cf8aab42aee555e36cfc2c11ab401e92a312", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/cross-https.swap-origin.http.html": [ - "737fda730ff5672b042108ad7d612642397d30b7", + "ced54f76ff4fa94d2a43495a463781d628e6ce6c", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/same-http.keep-origin.http.html": [ - "5a62982a6eb1cde102aa3701bc3250c46752ab0e", + "68aa52ad260a62403c6a7fd4dc1f1f09c40171cb", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/same-http.no-redirect.http.html": [ - "e3b14f52ca002045b4806fe316d9cf028329949b", + "e831c0effcb7c7c780a02801189b3b55e47b992f", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/same-http.swap-origin.http.html": [ - "effeb0a9a885cc0f9965bd241945401180be43e2", + "0f74309a16a0d45291af6de14412b2101542cdde", "testharness" ], "referrer-policy/gen/srcdoc.meta/same-origin/img-tag/same-https.swap-origin.http.html": [ - "4a1aee99c9819bcdf20fc6da370e944609a89e89", + "6687a674b7a2fa79dae572929cb34e4c9cbad820", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "a817b0fff97b2a4e2fa34ac93fd9e415e156c7c0", + "1c0425ce109a9abaa3a972b178c69b60fde00890", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "03ca6e5c4c24a898af3debd43448778e9d8b2e1c", + "ff10415547bfddd633e1668e6b257307bfea4284", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "54756e4e50e10c8d6878aff300caec80643e617a", + "206cd9c25108351c44e12546e0923e9948893c59", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "2496ca3d6013a8706edd5a29d53e6a2b7c5b4c01", + "493de2bceddb1a1bab06c5509b099d82f74cf28c", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "665229e526bfee640496d75f9db0ac96f379847c", + "6489ded73f48dcc2b67fe6a82d88889f8ba43636", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "cd3818dfc3a4c0eac29c87275e1233f2b6461d51", + "3a661a3f495ac4eb4fdb90f01798e58828832ef6", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "ed018a7e87e6092ed4e957d0acbb68dc66551dba", + "f85f0ba58e62422444d142bd9c5e07583a22c022", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "2429d19198dcc8716d3ae7c3b8edb931f119c241", + "cfcbc8efce1ecf660765cf350f72f08d580dde62", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "3c6c42b904b147695b80147fec78428901f23680", + "45f9cfbc85d5e071bd8427787de8ba5bb35aeaf6", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "df259116fda7366f21998aa717f50351be9ac24b", + "20b1362308b4fd13e341b204d30bd89ca27b2c5b", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "c0ae8b64bd06fe7427e4468d15dde5186b3e157c", + "99b9c46bce949b2f9a9b0a6c5ef770f80a04fd1d", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "3a4a73da09b968b5a7c46fc97fb778f49bafc825", + "26d31e7d02e119a00289d40a167947da3f814d55", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/cross-http.keep-origin.http.html": [ - "65d4d275b117fb0534825b882ce227548c11dc4f", + "b898c979e966c615f344950223ad8bea9c391a4f", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/cross-http.no-redirect.http.html": [ - "5b2e032f1cd659d75eff7dfe43c529b526faacb8", + "0f93a0d381d9941f7e0d86291adb38975adec0bf", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/cross-http.swap-origin.http.html": [ - "5aaf2f75b78a629c0a2683815c6d85a8ac9f19e3", + "5cd7090cf90ef3c3bb9d2952dd144de539aa2e32", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/cross-https.keep-origin.http.html": [ - "27058b1fb6206cdf1340e2d8b2b40a198569dfd9", + "c1673ccd9312f2700777a95682d7f0614b296e08", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/cross-https.no-redirect.http.html": [ - "6eb54403f3cccb4653b2e841ad1a9d940d214fec", + "c7ef7f1ec78aed5a627fd0f6acb5e435c1234a32", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/cross-https.swap-origin.http.html": [ - "d23a00666e75f0c45fbe0cca695b48f05623376c", + "b67bf41743f5db56614421906cebf1d959ec57fe", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/same-http.keep-origin.http.html": [ - "cbd4999e4024ecc3ec88b0fd6a67089ec6f270cd", + "c3f6792d6a4a2d6ca8912c83eedf34bcb607960d", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/same-http.no-redirect.http.html": [ - "271183fcb4ebc797e8dfedb24327a2dc0d02bf5f", + "491f6b3cb5261e517aae233aae8c84cdae614399", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/same-http.swap-origin.http.html": [ - "ac2723008ce3a747524a91887dd596b24c6242cd", + "df34928f99387040b094ccb4ecf5132fec0d577a", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/same-https.keep-origin.http.html": [ - "a388de9a4ca5632d75a41e1bc202c7afef6c0b5b", + "8bed4ad1bb2affc29142663926c0693d173ce219", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/same-https.no-redirect.http.html": [ - "ba5cba7294d82943ea9561fb657e841cd3efba5d", + "f3d1691d6c152dafd0f9459dc2dd9c03c6f96de8", "testharness" ], "referrer-policy/gen/srcdoc.meta/strict-origin/img-tag/same-https.swap-origin.http.html": [ - "61c17e055278e0ff7a5c329bb60d826aa8cf5bb6", + "538334723522e3a705b6e126b7f35fb9742a248a", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/cross-http.keep-origin.http.html": [ - "42ad5ee0a386b9d6786d1962dd58d724b34682ee", + "949ed772ff54f7591d9d0f3ef5a8bea0e98dbb12", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/cross-http.no-redirect.http.html": [ - "30af7d2f956297935a7634c924fa4802c20d3c31", + "8782ec3a348d8902838fed9c02b5bf0310484c68", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/cross-http.swap-origin.http.html": [ - "ceb66ae165cc39ad702ff2e219f1b8db6efa4ee2", + "42971f4747787a4ac91c7720a0ec41488e05a92c", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/cross-https.keep-origin.http.html": [ - "b9ac57bd605b1d076304b5a5c0b29c8963f11470", + "86ace00858d91b01da09b5f58207b259793943ac", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/cross-https.no-redirect.http.html": [ - "94b29642faaed82861b235c1437f04e5e9610afe", + "c719ed4e40edcd1dfa7e8520e8c4c5448b17e0f3", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/cross-https.swap-origin.http.html": [ - "9ae52af191891cf8c09fcf01342c68732b195ec0", + "95d876e75c537331475b1429169f4a3ebec0bc41", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/same-http.keep-origin.http.html": [ - "80d2ef3d637d15eabd3e4aeae9631b2a7e81d93c", + "64f671f5b5256c81a458ada62bc90fe48d911426", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/same-http.no-redirect.http.html": [ - "54b16bd2f2eac3e8db05566f4595ce0a7e4d26eb", + "154a3be99a4fa448054c0c77b5610c3e7247250f", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/same-http.swap-origin.http.html": [ - "d1a1d0f94f1ea2a772f95ac592028c8194157267", + "5c0c60396432a3d3f7cdebb3451985e0d1dbe314", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/same-https.keep-origin.http.html": [ - "4c39915851cf4859fbf8ea6ac492fcc628b4d761", + "b9b13627877db8877d16eb9a5278ffb4b32b9eb6", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/same-https.no-redirect.http.html": [ - "a577b04536ddde1ae73fd7538de45f0665e356ed", + "c346912a14584c2eefa43593873804ab4de928fc", "testharness" ], "referrer-policy/gen/srcdoc.meta/unsafe-url/img-tag/same-https.swap-origin.http.html": [ - "cae58dc05836b17fcd8182b7aaab4da9b04c56ab", + "e634871612c91ede938dad5ab2fbb78a456d178e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/cross-http.no-redirect.http.html": [ - "18f5f7e78364df6e306de16ba02697e6a7bac03b", + "6c9682c6b2484f012ed8e5436390c197bc7e013d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -496922,7 +496922,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/cross-https.no-redirect.http.html": [ - "7608b8dd81dfb4cf88d571f1428dbe59e1c32733", + "979a6c859db0261525c70141733be72e59080e1e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -496930,7 +496930,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/same-http.no-redirect.http.html": [ - "e61405026d57b17410976d3441445f8d7f86912a", + "55d837ef0f0b0e302d82bd930159c656db7a5746", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/same-http.no-redirect.http.html.headers": [ @@ -496938,7 +496938,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/same-https.no-redirect.http.html": [ - "227bfb014ab007075a80637c882a6c875642dc3b", + "53b50b0efb4dee17e4f2255e8276a0f97be6da0b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/a-tag/same-https.no-redirect.http.html.headers": [ @@ -496946,7 +496946,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-http.keep-origin.http.html": [ - "b103557d52fbbc249f3a9c46eceedab7a593b042", + "ade9ba3304c763d2df6457d3ed2a0adaa6e09b67", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-http.keep-origin.http.html.headers": [ @@ -496954,7 +496954,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-http.no-redirect.http.html": [ - "1945521974f7923d465257b99a5e40ce00b20692", + "c37a4614ef5225df7a4fc0249524a428c9eaa825", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-http.no-redirect.http.html.headers": [ @@ -496962,7 +496962,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-http.swap-origin.http.html": [ - "794a5d82dc5ae76d16008fa6cff7fa0cff39bc9c", + "7935c4c0c88ceda962808d36cb97da5f0936e5ec", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-http.swap-origin.http.html.headers": [ @@ -496970,7 +496970,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-https.keep-origin.http.html": [ - "5c04b74bfdbd461024e9098fa91d530f21969189", + "ed7e92b3c528d372a6f11d98ed4c853745217579", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-https.keep-origin.http.html.headers": [ @@ -496978,7 +496978,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-https.no-redirect.http.html": [ - "2d6e05388ecbc3147353f7cafdd8b988cf0d15e4", + "495d9569e738a09592ff06ec6b1ab36b799cd5e9", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-https.no-redirect.http.html.headers": [ @@ -496986,7 +496986,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-https.swap-origin.http.html": [ - "8374abffd934c31efda9fdc0a285fe2f908baf4b", + "bde07eb0c937e1284b938e603c0d7958f5cfd942", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/cross-https.swap-origin.http.html.headers": [ @@ -496994,7 +496994,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-http.keep-origin.http.html": [ - "faafb3759309ad54b751ba7de725a38795a73151", + "71e1b673a58f68ea9f19bfda2859e7aa99987ac9", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-http.keep-origin.http.html.headers": [ @@ -497002,7 +497002,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-http.no-redirect.http.html": [ - "00cd1c9a4c723799e03b25a90eaef5a0fb72ed2b", + "d2222b6feaf7119ca8aec9d5a4ca57e8439c247c", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-http.no-redirect.http.html.headers": [ @@ -497010,7 +497010,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-http.swap-origin.http.html": [ - "34abf8e3166a98b7cc20f17bbafb2f0bfe3c856a", + "30af1009de8a8172b8abc4d335a7be1bf7178d63", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-http.swap-origin.http.html.headers": [ @@ -497018,7 +497018,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-https.keep-origin.http.html": [ - "540695000e925bfd3cf50b021a230cf1478e63b6", + "fa8f2ae0cccba932f18a4a076d0b8a6c95b9341b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-https.keep-origin.http.html.headers": [ @@ -497026,7 +497026,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-https.no-redirect.http.html": [ - "91017dac64e41de0b6967d576d70b1f571813443", + "d3dcfababd61ce4fc7e428a28efddc027756b8d9", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-https.no-redirect.http.html.headers": [ @@ -497034,7 +497034,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-https.swap-origin.http.html": [ - "69934afdbe58e538baefbaf665b1b31275c9d58e", + "ed11cb5b040ae039d2e59ad04b8f0203c97b48a2", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/fetch/same-https.swap-origin.http.html.headers": [ @@ -497042,7 +497042,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-http.keep-origin.http.html": [ - "bc51d55ed10e4ad3232087c8e335847371cd11ec", + "6db93695c79d1b104a52c082c7c6f86b56e61088", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -497050,7 +497050,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-http.no-redirect.http.html": [ - "6ae3dfe0df2e7e54b528000b3f61a481da3df75e", + "4e77af213712bbeffac62ecbfd449bc22cb0152e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -497058,7 +497058,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-http.swap-origin.http.html": [ - "310a25c9d7a3b5193a303c068376014577f90d02", + "8cbbf1cfc7e0d6cbc300bb7f51f6a5dfcc8d6529", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -497066,7 +497066,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-https.keep-origin.http.html": [ - "c6e652dbfb831aa6d50efe111cf3e19f4f532a06", + "eb3623f74b1aca67fac9df22ba25a995b5a72ee8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -497074,7 +497074,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-https.no-redirect.http.html": [ - "13002bc2f2bac9ea40b8bfd4729f7758f0604081", + "b812f085f0eb46e0bc28805a8ec1e91529e66030", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -497082,7 +497082,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-https.swap-origin.http.html": [ - "0333192ce9e2b78f7e0edd76fa1aec1e07ce8b3e", + "9c5133009af66b9cdb224c02457f5bf53e37de4e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -497090,7 +497090,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-http.keep-origin.http.html": [ - "411bd2378ad8944841122a89262f8f11cd34d5cc", + "f74bbac811db5cec4dde456f3f2eba7f05ffc2a6", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -497098,7 +497098,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-http.no-redirect.http.html": [ - "ab458a3fdc055f710841de6a2bccd9fb0fe59f5d", + "86b2560b7d6b2e935ccc822a162881f6474ce1e8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -497106,7 +497106,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-http.swap-origin.http.html": [ - "3d7a405eeb1dc5ea5d350a01e7d63a0ebebffef3", + "c788359120fd3b4bf34a0b4a39bda40ca696bb33", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -497114,7 +497114,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-https.keep-origin.http.html": [ - "439e0ad2f3ae12852aa47ae66ea464efd6cbff44", + "ff16c2bbc22e773b55563084a736f93d95b467ee", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -497122,7 +497122,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-https.no-redirect.http.html": [ - "d3a5b39ca80ce4d989ffce205be87b410c131d65", + "15fb9b2a4d660c2c0b5497bce3488dee77fdd6ce", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -497130,7 +497130,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-https.swap-origin.http.html": [ - "01ea8d525a3ae04db9d40604034933298d9f9f6d", + "c10fff1aac437d02d29f8c0467678703a8575de0", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -497138,7 +497138,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html": [ - "f172633825118e6ce297acbf9f228b65b2967476", + "71ab849c76b7f97eaf0f2720f0a1e42926c8471d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -497146,7 +497146,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html": [ - "9c2ba561f6979837bb666e86c00c9c71fd43d2c1", + "ddf34a6b7bb23ca35baa9dd1365990b2e1440491", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -497154,7 +497154,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html": [ - "681e67532c250c508f54ae9081a520336b9bb0f9", + "2b143328b4bc4546eff85f6e34c95f67d455280b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -497162,7 +497162,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html": [ - "399bb9ea0fc689e4be30676fe2d5a11df427f1b4", + "2bfbc263018a1881e07bb8174a893169fd4a2446", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -497170,7 +497170,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html": [ - "65826f7c85d55c200aaf20e04c57f7adf4387fd6", + "aa96e23a25d6414da8ded37b88eb75a55008a2d4", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -497178,7 +497178,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html": [ - "73efdb753328ba2b67fe573903254c6a995e29d5", + "bce09ce6866183b28e854967bf43b9a12b8518ab", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -497186,7 +497186,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html": [ - "761a7e349ea4a6bf71d5e24f35d5de2dde15277b", + "fe82a2f859aa55a2c1e0f118657ad53edc8a6815", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html.headers": [ @@ -497194,7 +497194,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html": [ - "55309a1d31e5c7d68647b0c3ed94a9267d85baa7", + "527f27da5c5156cd695128981b80c3e441c8ed8f", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html.headers": [ @@ -497202,7 +497202,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html": [ - "228985630e405a791755f8b605fbaf7bc8ffc3c9", + "2af8f5538f88eb07550eff9b6400dc743f765469", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html.headers": [ @@ -497210,7 +497210,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html": [ - "d87b9ac71a698906e05cd2a151587a12e2a417a5", + "f18c37f4d434f0abedd406be3c16e040b73a504b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html.headers": [ @@ -497218,7 +497218,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html": [ - "be33a5498be1b31fc28370b97e8a0e58411b6bd6", + "c92703d274f1f313497967eb1af26c4f0f2e9f1d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html.headers": [ @@ -497226,7 +497226,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html": [ - "52750a374b1db819806ab1736a38acd84d78e836", + "51464011540cece8828e20d748affe76f5b72fa3", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html.headers": [ @@ -497234,7 +497234,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-http.keep-origin.http.html": [ - "643a7809abea97b5dffc0a26ab21f730681e4a01", + "bfbb2ff96fcb81ef8461599f4970a210758fc2ca", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -497242,7 +497242,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-http.no-redirect.http.html": [ - "b8c3ca8405ca7f78a0b9d1e50a6b132400772767", + "460116ebce93b049e7d8157726163a111807d426", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -497250,7 +497250,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-http.swap-origin.http.html": [ - "f9c6b33cdb837b2ef25e847ab14e345c6ff80a54", + "4ebfa352e041631d8e75727162ac00d8d094b8ff", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -497258,7 +497258,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-https.keep-origin.http.html": [ - "1d2de6d2a13c016efaf412c717d4c64231ae8b49", + "4f9b358e3942f3e4899a9f0000053344f10f28e6", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -497266,7 +497266,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-https.no-redirect.http.html": [ - "31328d457407451c43af427ce8f89a7a3c280376", + "f0ac944aceb70a3e3cef12533a701e18b16b93fe", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -497274,7 +497274,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-https.swap-origin.http.html": [ - "717cd564712ff8dc4db75dfa543f35adafca04b5", + "556ccd4c23678667ec0eacfbfa8959a701c90309", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -497282,7 +497282,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-http.keep-origin.http.html": [ - "93aeb304aa094aceed695887d144d4159de2015e", + "103678ca070c9115bdd725b1f40dab42d3b9eac9", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-http.keep-origin.http.html.headers": [ @@ -497290,7 +497290,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-http.no-redirect.http.html": [ - "32dcbabd9563dc7df5abef0ddb257245772491d8", + "3e68258c56bfdb621193ebf5aae7e672a588a02e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-http.no-redirect.http.html.headers": [ @@ -497298,7 +497298,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-http.swap-origin.http.html": [ - "9c0f9300cb416a9bbfcbe49d38a9ed0de7e9ede6", + "b2382583a1cd3ec8f4da8a9e85b3ce8f0fc08157", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-http.swap-origin.http.html.headers": [ @@ -497306,7 +497306,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-https.keep-origin.http.html": [ - "d0d99bf8db59f3b19145ee640f53ad18e8ec45f2", + "b0d57326991e1e9ff25ab67a522c5aed5c981864", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-https.keep-origin.http.html.headers": [ @@ -497314,7 +497314,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-https.no-redirect.http.html": [ - "489607530db690b1e6f7eafbb837aa315ea87377", + "5bffedaa3afbed4962942d853200c774a38d954b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-https.no-redirect.http.html.headers": [ @@ -497322,7 +497322,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-https.swap-origin.http.html": [ - "8d7c2e4e116f746793f2ce9bc1c31b3ea29cc175", + "9df184c35f8dd6fd13c8555952ac0ba809a6ca40", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag/same-https.swap-origin.http.html.headers": [ @@ -497330,7 +497330,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/sharedworker-classic/same-http.keep-origin.http.html": [ - "0947e01737a117afb785793853376def3ce20913", + "17d44359222f17df03e28924792f77536f82f325", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -497338,7 +497338,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/sharedworker-classic/same-http.no-redirect.http.html": [ - "0f27e978db872c570ae5b0f6565ea749028c265a", + "1138d88ebd284c0713d9e3ce5cd234d9561177d4", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -497346,7 +497346,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-classic/same-http.keep-origin.http.html": [ - "88217e8b3f09b681e6023443e2f650ea2965d110", + "a6f8057809dbf1abbc6bf76b6bf920e3de8f52ff", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -497354,7 +497354,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-classic/same-http.no-redirect.http.html": [ - "4371c15add6120b805593500023c95c95672e5dc", + "9f523e3123a6a23fd73a10f3ba152a1704ddf148", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -497362,7 +497362,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-module/same-http.keep-origin.http.html": [ - "bcd98e69823a18eb7a1709008ceb3b7ad708e6b4", + "4c831d17355f6f6028ab28fa4d3171890b1547b3", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-module/same-http.keep-origin.http.html.headers": [ @@ -497370,7 +497370,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-module/same-http.no-redirect.http.html": [ - "200d64bbb6bb5a2379db13683e489460a18a4f39", + "0778be7183ade09962ffce10500c5871f5108b17", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/worker-module/same-http.no-redirect.http.html.headers": [ @@ -497378,7 +497378,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-http.keep-origin.http.html": [ - "a83a492fdf7d76a08386ec5c6bd65fd65fa0a8fa", + "30eaf1a707d254dbb84c3f85d157b42931eafbc8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-http.keep-origin.http.html.headers": [ @@ -497386,7 +497386,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-http.no-redirect.http.html": [ - "55a055025901be50db54c48930daad9769ff169b", + "b7a5de235c515f28b03b6899687854a977493e72", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-http.no-redirect.http.html.headers": [ @@ -497394,7 +497394,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-http.swap-origin.http.html": [ - "d07af49677e9d0eed7c30204967239721d6469fa", + "1ce5a65db107fb6d74b9ec3e022599d25891afed", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-http.swap-origin.http.html.headers": [ @@ -497402,7 +497402,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-https.keep-origin.http.html": [ - "bb681309a8115b3e3181f0027728e2e2d5e1da96", + "0022023089d35fbdd8668bb142386a5663b322e0", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-https.keep-origin.http.html.headers": [ @@ -497410,7 +497410,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-https.no-redirect.http.html": [ - "f493ba675f09d44880374edc7218a9124ab6b5a8", + "6cd8c6738e9a591e9bbf07adf556d25c50b8303e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-https.no-redirect.http.html.headers": [ @@ -497418,7 +497418,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-https.swap-origin.http.html": [ - "c0c3284332acca9cbc098cfd73ad309e96f8ab34", + "504db6741b35044e1850f23d0d1a2fcb6efdcde4", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/cross-https.swap-origin.http.html.headers": [ @@ -497426,7 +497426,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-http.keep-origin.http.html": [ - "8b1519a47b3ad42cd0e7ee9ebb43757775ad3002", + "f8ba7575e2b0715b4127c2d55caac5dc99d06eee", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-http.keep-origin.http.html.headers": [ @@ -497434,7 +497434,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-http.no-redirect.http.html": [ - "7fc6be9d0a7558c1bc95a684eb17e57dbaca02b7", + "9d01a07ef34841cb29c0a3286e6bea1046e4dd15", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-http.no-redirect.http.html.headers": [ @@ -497442,7 +497442,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-http.swap-origin.http.html": [ - "d00ccc947a3b7ea74a4b68b2b96f1c6fc36a9a6e", + "6d36dc316f419e3d406f0ed0f76e7359431b7bdb", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-http.swap-origin.http.html.headers": [ @@ -497450,7 +497450,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-https.keep-origin.http.html": [ - "285b3eab42ee3f223e8cc6453cbad6bc338522c3", + "950a580fe73540f6f5802612133cf7cc7c0b11b8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-https.keep-origin.http.html.headers": [ @@ -497458,7 +497458,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-https.no-redirect.http.html": [ - "d6f5fd26091db6cb7571c30864d57219be653c99", + "2e9ede068bc7921106aaed371629a88daab18b1b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-https.no-redirect.http.html.headers": [ @@ -497466,7 +497466,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-https.swap-origin.http.html": [ - "e7d9c7685cba8520c4c21c227fd2ecbe11afbe61", + "7eaf8ce04d20e4f9c5ccadef9c2de4e4cde52095", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/xhr/same-https.swap-origin.http.html.headers": [ @@ -497474,7 +497474,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/cross-http.no-redirect.http.html": [ - "3c3e39e79710d5ec6419d5af3f7663c692a7b7be", + "1e9ee507e11a9c567e1e5fc069be0e0f61e8eb99", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -497482,7 +497482,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/cross-https.no-redirect.http.html": [ - "20a4881d258a2efdfceb565c8bbfd453c1c05d2b", + "4a06e8400b83a93b0c0d9624b22f36fb0bcfbd01", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -497490,7 +497490,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/same-http.no-redirect.http.html": [ - "c45b1f4c7a3c481a670f1f613945bd650e0b752d", + "6b04a7e8cadd72a412013a856df7d88da85d25a1", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/same-http.no-redirect.http.html.headers": [ @@ -497498,7 +497498,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/same-https.no-redirect.http.html": [ - "0a34f109e159586b033d80505971061f3d499f40", + "6e8c27b09faef2a7ff818bad9e18efb74d318360", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/a-tag/same-https.no-redirect.http.html.headers": [ @@ -497506,7 +497506,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-http.keep-origin.http.html": [ - "1662580623a0b41f8cd135c85957b94ee444de63", + "16d2d07132c684792e0f7ffd9fafc58fb85f6eda", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-http.keep-origin.http.html.headers": [ @@ -497514,7 +497514,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-http.no-redirect.http.html": [ - "b05452f5f5ab8b41d8a6f8076f172d774d098d4b", + "eb37f1326365345ad16243ef00e5ffe6b2769b25", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-http.no-redirect.http.html.headers": [ @@ -497522,7 +497522,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-http.swap-origin.http.html": [ - "cfd7990f1f5cd65b697f12960f5200706111dcf0", + "94bdab2ab22d9e7409d53aff904f950615cf89cd", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-http.swap-origin.http.html.headers": [ @@ -497530,7 +497530,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-https.keep-origin.http.html": [ - "fa89fe78b6811144288a55f46b25f03c52ece17a", + "9693fbad391de5d083e54ce3fe3ac8c4e37d8000", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-https.keep-origin.http.html.headers": [ @@ -497538,7 +497538,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-https.no-redirect.http.html": [ - "8d5e2b0776a349685b7d4b9cee4462efc94d424f", + "70665d2bb08765315bb2af14b659536dcdad9fa4", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-https.no-redirect.http.html.headers": [ @@ -497546,7 +497546,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-https.swap-origin.http.html": [ - "cf2e2054acd7e557586347b4b922ad08922714a5", + "e932d32a89d3d579454905e322c87773031f3ef8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/cross-https.swap-origin.http.html.headers": [ @@ -497554,7 +497554,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-http.keep-origin.http.html": [ - "59ec4797c2e509b470911f8bb2a8c3fead5f815a", + "97f68e0858af0dafb308937d6949fba4f9e47148", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-http.keep-origin.http.html.headers": [ @@ -497562,7 +497562,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-http.no-redirect.http.html": [ - "f883d367e7fe57bf03a626d35667490193d8a438", + "4524c2db38570906a7fc62d9c382a1e0b0e9d705", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-http.no-redirect.http.html.headers": [ @@ -497570,7 +497570,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-http.swap-origin.http.html": [ - "fa64998f81f8802ccdf518a2074e96c54391938b", + "1e685b2293123a7dc124ca9c6b7c9cff46c06317", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-http.swap-origin.http.html.headers": [ @@ -497578,7 +497578,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-https.keep-origin.http.html": [ - "5eb42a75a5c45bbea47132117dec7e6d8081d69d", + "41a1ac3178699e8ce23c9212ee1a46503d97d63b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-https.keep-origin.http.html.headers": [ @@ -497586,7 +497586,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-https.no-redirect.http.html": [ - "80c44e16cd5d48f1048d3985212f051a2263d69b", + "7358d86b643c2dc771cbdca9506b67f9bf29bc00", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-https.no-redirect.http.html.headers": [ @@ -497594,7 +497594,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-https.swap-origin.http.html": [ - "8bf62ba6310381d81d689d759f71f67b657c7f41", + "7e1c06d3b12c1e7d0f2e931166fac9387e3cba8b", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/fetch/same-https.swap-origin.http.html.headers": [ @@ -497602,7 +497602,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-http.keep-origin.http.html": [ - "a11fb4309272c4c018a049c805a2c7f38618a1c2", + "0d40b8c774140aeaa30d99d8e35ecbd3fcb9a822", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -497610,7 +497610,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-http.no-redirect.http.html": [ - "4ed4f0ed555b2e084cae07644279bdcb4f075cd1", + "99176391e206e0c14c7df92cb45ea9e671f2e379", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -497618,7 +497618,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-http.swap-origin.http.html": [ - "66270486980dd2baefb7e4a038113291ecb8a366", + "3b2746d4c3587556efe4472d3dff38ae4ba5da6a", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -497626,7 +497626,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-https.keep-origin.http.html": [ - "0e1f69de7d89a18b4dfcdef551aecec4f8b6f836", + "059a2d6756578975f231b5470fe53075b854be53", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -497634,7 +497634,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-https.no-redirect.http.html": [ - "1d4a266b9008efe4391a0d9ddea8774f7037385d", + "d43ae0a4ea76cdae732840a4b3ec041e0f245d4a", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -497642,7 +497642,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-https.swap-origin.http.html": [ - "37af269c833e3475544481fbb930e445408dee02", + "9692f56e25ca32c3190f33c0cddb623a196882b3", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -497650,7 +497650,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-http.keep-origin.http.html": [ - "ee600f00764c25d5d3d3dd92a9ae4a865cf185bb", + "c2e55e279c10b07739e5f3c60206e8c1ae71e040", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -497658,7 +497658,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-http.no-redirect.http.html": [ - "c14440818446770c2cb1f80e1dde2ec264983ea1", + "78774cff2b9464a01a2b3a972d68d6878c99ad05", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -497666,7 +497666,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-http.swap-origin.http.html": [ - "78d874cd7b4caa18c1bdcebdf3af99e1f2ec6487", + "08b0ac93aea84fe2c829cb1197928e73198c83dd", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -497674,7 +497674,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-https.keep-origin.http.html": [ - "05d58994cdb4ed44c674fcf7fc80e62ae4969f09", + "cb32702f78493c604db2b5ecbd3b3fba679a0d44", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -497682,7 +497682,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-https.no-redirect.http.html": [ - "180b42ddf552c33da7cdde5e7c048c06099dc9b1", + "2838cd9bcd0ca9a101fbffcb89b03ef67265955c", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -497690,7 +497690,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-https.swap-origin.http.html": [ - "8efb1f5871be4839dea5f45e1fa65774facb9a22", + "354dd98840e8642effed7a6db7997dc85702aa2d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -497698,7 +497698,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-http.keep-origin.http.html": [ - "112b9268f431394b8617a1ee482aaa9801e5b32f", + "18bad3a68da62f7847c474ec55a5cea576c9052e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -497706,7 +497706,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-http.no-redirect.http.html": [ - "de4676d67cdc3794c676eb49ca9f8efe78bbd0f4", + "89260d61d108acbdbad8ee28d485a7fc01636c38", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -497714,7 +497714,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-http.swap-origin.http.html": [ - "4ee121ff97c701a7043611c2c7208d7749449d0a", + "67abaa5dff91004787da80588ee72ebcc07db531", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -497722,7 +497722,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-https.keep-origin.http.html": [ - "025968b66e391b58ffbbef3ea558174cc9e29bdc", + "ffd380ac39c3a099a11873639ae8fc162a290551", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -497730,7 +497730,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-https.no-redirect.http.html": [ - "54a0de2c93ba0c27cd469f8afd0d06d2f7bcba99", + "df378f645f634c542d24540be64479a8aa6b3215", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -497738,7 +497738,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-https.swap-origin.http.html": [ - "b155363e0584298bc48cd6b13c88d83f84169518", + "5b6b84d9100cf1b7202646bb3fc55097807fa807", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -497746,7 +497746,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-http.keep-origin.http.html": [ - "7fea42178ce0babb331bf4ccb0a02c9e8e077fbf", + "244d330474d0a9d924d67205d98b1133c69fb59d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-http.keep-origin.http.html.headers": [ @@ -497754,7 +497754,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-http.no-redirect.http.html": [ - "2401b8f330bcf6c72853b4ebc7d93165c5543ca0", + "56a2eb97e0f6eba3826619c5e6ea3b91dc5a86a7", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-http.no-redirect.http.html.headers": [ @@ -497762,7 +497762,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-http.swap-origin.http.html": [ - "fa53b0b436a75a7ad70ca40d50abca45fb6bf3ee", + "85bdbc7409a26c7e84cc8c7bdbf724bb6c3c4a34", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-http.swap-origin.http.html.headers": [ @@ -497770,7 +497770,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-https.keep-origin.http.html": [ - "ec819af693132e233949090f67d36097f16e7a12", + "8e0f8da23944a90f5341b9313e7cf10aab3e44c8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-https.keep-origin.http.html.headers": [ @@ -497778,7 +497778,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-https.no-redirect.http.html": [ - "4aceaac58f97a7d727170903e5e28f6497e2a899", + "3107f0de8a7ae569d598c0ca0033525c6555fd42", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-https.no-redirect.http.html.headers": [ @@ -497786,7 +497786,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-https.swap-origin.http.html": [ - "cd8fbfe9098abac4a517ab538e754809852810e9", + "f106363aa73f980f099f0afeac0d33d2a362b5cb", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/img-tag/same-https.swap-origin.http.html.headers": [ @@ -497794,7 +497794,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-http.keep-origin.http.html": [ - "68f9e48740ecd28658445c36b0ec68b85bff4c4a", + "be1caba6b6d9ea3f94e1556a379b32f253c23456", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -497802,7 +497802,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-http.no-redirect.http.html": [ - "e50c977d248029702e994bfaba1540eec7330ec4", + "7a0acfad933dcb6a3e8a275b8a1e009e3701a524", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -497810,7 +497810,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-http.swap-origin.http.html": [ - "fb2648dd4b7d174d74af6459023cb2a44af4c8e1", + "3493b25ccc1afd43fdb042f4171d8e71f57008c4", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -497818,7 +497818,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-https.keep-origin.http.html": [ - "18eb49cfbb0703d86d285029524a466ddd270fa7", + "631371477feec6a14af58f520e0f5f65a75dab90", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -497826,7 +497826,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-https.no-redirect.http.html": [ - "a0843338a23fd425c7157cca53e62598490b8be0", + "8a09a0a99e295b0452ff8c72f5b5c7be63940faf", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -497834,7 +497834,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-https.swap-origin.http.html": [ - "346a5e64f1f337c5520e145d08567e6fa2afcb5d", + "62dc281f9e75aba4fed78ee354afe5bd74a5ad2c", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -497842,7 +497842,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-http.keep-origin.http.html": [ - "bd3d2fa8e1b61e446d7f8af024f7589cd58b31d5", + "76fea0461780213a36dc4d628edbab73cc7e2d3e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-http.keep-origin.http.html.headers": [ @@ -497850,7 +497850,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-http.no-redirect.http.html": [ - "9ba377679514642c1ebf631f9c6f48b71fa18a6d", + "bc909a690d1c90d6c1c39e8291060344f9557bf8", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-http.no-redirect.http.html.headers": [ @@ -497858,7 +497858,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-http.swap-origin.http.html": [ - "1c874e8f24910af5e172675b4af38775492ec315", + "fd9d14b3c77d7733c25b539ac1de10a91375299d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-http.swap-origin.http.html.headers": [ @@ -497866,7 +497866,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-https.keep-origin.http.html": [ - "baef78cb21e17f21b12668d52cbd40f64b238c15", + "abc4c33ec5a37771b47578f3b205a653a3543b25", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-https.keep-origin.http.html.headers": [ @@ -497874,7 +497874,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-https.no-redirect.http.html": [ - "51c81ff6fa00072070224a4306270f32d8f71c4e", + "7fd5d2a88fe466a2f8ba68cea31408abd18e29d3", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-https.no-redirect.http.html.headers": [ @@ -497882,7 +497882,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-https.swap-origin.http.html": [ - "f2c03ebcd99a295aab2fd145db5a7b2d1094dc6c", + "15c9a665d71911b388dcccd35e76c9cc07809054", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/script-tag/same-https.swap-origin.http.html.headers": [ @@ -497890,7 +497890,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/sharedworker-classic/same-http.keep-origin.http.html": [ - "f1a249f24384c32a48e7964418cdfaba71b3d1ce", + "ddb27f9b19798c8d6816797d6d42b63acf2c94f1", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -497898,7 +497898,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/sharedworker-classic/same-http.no-redirect.http.html": [ - "1f836c6f2c0c05ce8f3f3aa8fc857c754a03fbf1", + "f85e49053ad3389c87a0f2baa72e31a86121f650", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -497906,7 +497906,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-classic/same-http.keep-origin.http.html": [ - "1158bc7e5e541e432aa4523a7d552c3ee569082d", + "95b183366aeac9b40c4142859cf32de28d56acf5", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -497914,7 +497914,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-classic/same-http.no-redirect.http.html": [ - "de67fa3aa8bc5f8c620f40fdcd3da173d2606604", + "6f7bcbfafb9bcc6967a5532a003cc912570d5374", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -497922,7 +497922,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-module/same-http.keep-origin.http.html": [ - "b6656c669a72164fb9a2f206d319faf73842ed01", + "143c9fc5111dfb63df7b7011e08f36dee7111777", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-module/same-http.keep-origin.http.html.headers": [ @@ -497930,7 +497930,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-module/same-http.no-redirect.http.html": [ - "552e926e44c49a336fb42bb2d3be3dfd24f7d4ca", + "ba4d39931d7fffa96415f934a75b38aef62b0916", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/worker-module/same-http.no-redirect.http.html.headers": [ @@ -497938,7 +497938,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-http.keep-origin.http.html": [ - "c77a423b3cbc86cfd32a98f86040725f200d496c", + "086414ccc48f6b983a73691ec50a428b63eb7e51", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-http.keep-origin.http.html.headers": [ @@ -497946,7 +497946,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-http.no-redirect.http.html": [ - "3cf0e572297c3532342077e02dd841f32546c674", + "5d7ad100bcdfab652e0dcf957dc94fc5e73ae6b1", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-http.no-redirect.http.html.headers": [ @@ -497954,7 +497954,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-http.swap-origin.http.html": [ - "7a82b1abf34650b1b85331251dea0eb8807b34f2", + "30f2b3953d7de29a624f664474621599beed93e6", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-http.swap-origin.http.html.headers": [ @@ -497962,7 +497962,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-https.keep-origin.http.html": [ - "41170c6e4ae9d7ae3ac57bc4588e6c94252f0f99", + "47b798d7dd765d13fe4fbd4ba67c9323ec0c6dfc", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-https.keep-origin.http.html.headers": [ @@ -497970,7 +497970,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-https.no-redirect.http.html": [ - "220ff8170947d798a3f32af44d50e2a6dd028b76", + "d5a55105add54d342c22f1c1f136af73cc3f7e06", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-https.no-redirect.http.html.headers": [ @@ -497978,7 +497978,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-https.swap-origin.http.html": [ - "3ea97ac350272997d3a0d8f36fc895992c7c2bf0", + "176dc4852f713590fe767a69b5c0262266466c8e", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/cross-https.swap-origin.http.html.headers": [ @@ -497986,7 +497986,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-http.keep-origin.http.html": [ - "28f38a4a700beecfc7711ef9ace273dea16fec7d", + "3f51d82eddee1205370a0f6e803b390a9d1f371d", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-http.keep-origin.http.html.headers": [ @@ -497994,7 +497994,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-http.no-redirect.http.html": [ - "6e8631db1202a695fba12a3c946dae25d518fcfb", + "95684dd25477aa9891bc20b0f0f225f883d2fb02", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-http.no-redirect.http.html.headers": [ @@ -498002,7 +498002,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-http.swap-origin.http.html": [ - "af6dc67f3ff90287d2de2db24d8e545f748155ea", + "b1de49c4c061f0314d74e77743f3beac3ec9a06a", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-http.swap-origin.http.html.headers": [ @@ -498010,7 +498010,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-https.keep-origin.http.html": [ - "51a52d09cd1cf34c79b1d0b4722a2b34335365ce", + "9228bb6af2df1ccc841b4d44754ca0c2d42ffb61", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-https.keep-origin.http.html.headers": [ @@ -498018,7 +498018,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-https.no-redirect.http.html": [ - "6bf08797e016e83a50747044a00d3c68b86b4ff8", + "96bc099560df999487385ee81615ad240192dd7a", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-https.no-redirect.http.html.headers": [ @@ -498026,7 +498026,7 @@ "support" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-https.swap-origin.http.html": [ - "1f0626a09d99df8bd7141a8fcba3a4656d6c5d38", + "f25d5fb9af03081aa61af56e7fad90e5746ef8fb", "testharness" ], "referrer-policy/gen/top.http-rp/no-referrer/xhr/same-https.swap-origin.http.html.headers": [ @@ -498034,7 +498034,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html": [ - "e332d57ae86a8fa3683eced1a3dd89f7058ffcc0", + "fab257dd738b95c67fab0ffeb1efe2598ba6538d", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -498042,7 +498042,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html": [ - "790d5f73714b89d9dba5854317c381111496e54d", + "bafedcf3fd6a6f523e68bc42c951f1a7315a3689", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -498050,7 +498050,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/same-http.no-redirect.http.html": [ - "dd506fcc066f87a95c7756cbb79270598e011978", + "d8ef3354aef88c325c2b238544e52d5c632c21d0", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/same-http.no-redirect.http.html.headers": [ @@ -498058,7 +498058,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/same-https.no-redirect.http.html": [ - "7b5468e47bdd9f2bb5941216b1f02e72543ca7ca", + "0c25521be74eed0617e2c35347dceea515969438", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/a-tag/same-https.no-redirect.http.html.headers": [ @@ -498066,7 +498066,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "c58cb7c4b548f252c60ffb52baa53997a5a1eecb", + "c6dea13384d6020d2111a2fdf825d62dbb962225", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-http.keep-origin.http.html.headers": [ @@ -498074,7 +498074,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "3d5df31d9433322f0ca2b3eca28d1a0d9d33a103", + "9be5c2e15a39a4d027ba56ec784cb46430f3927f", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-http.no-redirect.http.html.headers": [ @@ -498082,7 +498082,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "e694f13dfe035bdf35e4ee53874f06e9b440ca10", + "4f797b6d4be050c81fc9d4353311b072fd73a40a", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-http.swap-origin.http.html.headers": [ @@ -498090,7 +498090,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "0cbc3be83a2493427ecc988547e925a0073d6d47", + "245b5ecf8602a2fe7a10c9af1923755941403cf5", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-https.keep-origin.http.html.headers": [ @@ -498098,7 +498098,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "12b6a96104ca903dece23b95fa3f689180ecb69e", + "ff54b29fe69ecfbe1b713cdf7dca429697dd906f", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-https.no-redirect.http.html.headers": [ @@ -498106,7 +498106,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "e528b97d5f1675f28bd9787a031e99c80be24e63", + "1eb441d07eb0979cfe73934787c5374fe54f0932", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/cross-https.swap-origin.http.html.headers": [ @@ -498114,7 +498114,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "350d7cf796a1f2a4837e3007635f8087dff5d562", + "010d99253f7a0c129de8f92251a327a0354661d2", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-http.keep-origin.http.html.headers": [ @@ -498122,7 +498122,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "850a8e81232d913198f8a78d44a8664b5574cfb4", + "cada33d19f424f5fb3f3faff23c51afda1dc54ad", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-http.no-redirect.http.html.headers": [ @@ -498130,7 +498130,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "d222bd295df903d3d713bbb105bf3b689ee6cb97", + "8a8151fbc2c385fc99c2816a5f80b0de805504dd", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-http.swap-origin.http.html.headers": [ @@ -498138,7 +498138,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "694a57d412ec2dcf1bd123d4507fe6e62ae9e0df", + "fab78eb6062ba510e43dfe4eb8745e6af11615a8", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-https.keep-origin.http.html.headers": [ @@ -498146,7 +498146,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "459cf30238e17e1f7ad68b08cd72ff72d97c2a77", + "43e3a20798397d2be96a99c1fcfe679f7a04ad4e", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-https.no-redirect.http.html.headers": [ @@ -498154,7 +498154,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "1e951faba7b1d7ceaf07a021a6682989e8ac7f59", + "febb2ba21992c37e62ff43d4079f51ecb6ccc6e7", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/fetch/same-https.swap-origin.http.html.headers": [ @@ -498162,7 +498162,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "8ef8fd6b89483efe5216afc051e97fa60ea92f1b", + "9de1045c62e72610e63c1c7494100d0dde11af8a", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -498170,7 +498170,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "aa355566bb6097fe433dc4b43bf3b4f3c74a44d6", + "dd9a07848a01ee653bf81a66fabed277ee1fdae0", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -498178,7 +498178,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "4d789df9d53510597ea2c3dde0d32dd3d682d74a", + "19122f3b194c8fc0fafea74f1c92d58499ae008c", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -498186,7 +498186,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "acecfefe3b226812a7d31b5a1ff294057083c000", + "79c31cf3a767d9175e028485eb268fc908f63121", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -498194,7 +498194,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "ecef33210a6bcf27cb894cf991858af0282c72fc", + "48d694afec1ddfb590895166243dd6b6ba7d2501", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -498202,7 +498202,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "1de14dd530cab75b6a86d97e3977b20f2eefab99", + "b163b434fc96dac541d4ffeb039135c66aec328c", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -498210,7 +498210,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html": [ - "5f94bbb6d1821868328e823584fcc6e0d3a2bf72", + "f668a45533fab3a548f7ae5f99a713cb307ea676", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -498218,7 +498218,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html": [ - "6863810352d120227114dfa5ddc8830bdaa23a2c", + "0b2179a805bbc5e9fb9038aa3df828abe39bfaad", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -498226,7 +498226,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html": [ - "cb5e36377bf4ebfb8cfee96be703ec8ac0981b65", + "b63b06151eabc5cc5cae1bc41c01ae4e68416f38", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -498234,7 +498234,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html": [ - "e8a9ab43f198fc710994f5b9d1869dce21182616", + "c14a96273089f69096a4dd09a480b97a327f9782", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -498242,7 +498242,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html": [ - "9f9813e75f81654cbb4407a406af2e715f46130b", + "0dcd4ceecf38c7d0233080c10feec08faf56e5de", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -498250,7 +498250,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html": [ - "f4a8058f8d4d428cbf41886f36e2fde1fe9ab29e", + "39eb627d30090a14cb6acfd4deb12a0ebdcbdc98", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -498258,7 +498258,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "088b203f0844f691f607ac179f39e8bd90b7ad7f", + "743cc6aa09975aab23534ee4fae58265225b4e7f", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -498266,7 +498266,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "c79f0b3be2a67640a50a2e4b63c6963ed7996695", + "cb35a2155ea4cb2a34dc0bc0773874f01df26fcd", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -498274,7 +498274,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "d4e54c08a3b1e9cbe971f8e9ce7bd3291248ecc9", + "5a4e050859dee372ba32761bd9ec6e7ce8b18abf", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -498282,7 +498282,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "ac4ca124bfd727133614edd526d131b82ee412b2", + "9bb8ac577357794a24beac5889de57c036fe50c6", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -498290,7 +498290,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "66ab573165ea33b009b8730822046f1e93a074bb", + "62fc2a062b225dfe426380474b04604121ab9514", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -498298,7 +498298,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "40d68fc5eab412a4512cef08d8bfd9afcfcaa631", + "35d0445ac46a786adb748beef958c4045a9dc3bf", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -498306,7 +498306,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "f3a0351f66065216832b0a45c2c92fedeef9cee5", + "37be3a3d4de696c7f9b7cfe30f09f4f82b7c0ce1", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -498314,7 +498314,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "8432eab8ff85596d8d591dd07784fb0f8d71f9d5", + "f6f53d3632a46d4d61fdae618130aef6e633c6ef", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -498322,7 +498322,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "b5a678d0e0223e612db06e680776e2e77a0e8a43", + "6ed394c67d82d24a9d40a26e97e860ed5e7a6ef7", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -498330,7 +498330,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "23558d8e06146c2dfd00f0239094e45de2194916", + "0f49938792db5a36842882d878827b488dcd25af", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -498338,7 +498338,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "08b627f56efd54473659b17f94eeefd3025ef802", + "b0738fa17b6d69b207937f02dd8d0f80e133c268", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -498346,7 +498346,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "cc5e6a344c6ce4a6d73c942cb2caf707884ed075", + "45e55fa37cd1f9c39834190add05b66a8bbc40c6", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -498354,7 +498354,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html": [ - "11581aacc0b4f420dbf726be748a169fd0b32c5b", + "3f318e0fd05ecc4d7ecc3cc385c8ff67d3b4329d", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -498362,7 +498362,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html": [ - "0aaf48c10102cdf41c5d1ac0296b7bdefc45ab7e", + "5bfaa6cb7ad856b8de95c2aaf84708e69b061041", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -498370,7 +498370,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html": [ - "9682cc4cb25ae21171d1ae1d76c917f156bfddb7", + "11e17a1e839504e1bb7d81f1b6765b794c36dfdd", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -498378,7 +498378,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html": [ - "6362258b77ae4b82e2903590931516bfcf823d2f", + "b1edae5abaa5c02db45b95f4fe8b61031a76f1ca", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -498386,7 +498386,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html": [ - "317f9dc89980ff09270aa0b89230e545986a529b", + "b154facf1b3814cd24242a624d5bb7867fcc36ed", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -498394,7 +498394,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html": [ - "7e5114e81060f43dcf6618d202f89244d073bef1", + "f58ee4d25335483201a18f0cbfc2fc62fcbc0724", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -498402,7 +498402,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-http.keep-origin.http.html": [ - "550b2c10d57c7d5b2a085f936aeacadeafbee8d1", + "f0b296a1ba1e0d1163b8254c4e80a531ead527e7", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-http.keep-origin.http.html.headers": [ @@ -498410,7 +498410,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-http.no-redirect.http.html": [ - "abb407fb705a604e4ae2d218371c3dc0e704449d", + "eb15862751bb5949b931bfe2a4b748cb1bcd25e0", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-http.no-redirect.http.html.headers": [ @@ -498418,7 +498418,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-http.swap-origin.http.html": [ - "dd4e877d1bc9545149ff90d297932d83025cf044", + "bd2d53ccb724b393d15a49ac89b3e6c078df815b", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-http.swap-origin.http.html.headers": [ @@ -498426,7 +498426,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-https.keep-origin.http.html": [ - "4436f05931a2b63b6f391818f8fefd5101fbfd48", + "436e29bcb9e0f300ea84e649e738a1652a1b9cd4", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-https.keep-origin.http.html.headers": [ @@ -498434,7 +498434,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-https.no-redirect.http.html": [ - "fba6c926d97d49594782d4a8285b4d51eea75fd9", + "0bafa8507045b834539fccbc55b071d458392a2c", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-https.no-redirect.http.html.headers": [ @@ -498442,7 +498442,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-https.swap-origin.http.html": [ - "0350fd66e6c65e7b812b5999a82815a6f208c246", + "976bd16af58ef25ae7d1df9b01696f930afa2588", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag/same-https.swap-origin.http.html.headers": [ @@ -498450,7 +498450,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "03abe36f3691499516ae0b66a3f61e6d458d2447", + "81442203b0068f450d81ef75682992f424160e5a", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -498458,7 +498458,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "f220d76ba5ad11230c3941c7b69816e4d3d2d283", + "a48bb8bb008ce06c6c915dfc7abf7f11960b823a", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -498466,7 +498466,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "a97293eb16b1300c7b4fd4e266b342bcba042fa7", + "45589e04506bc01b3c1c326f2860440c625954d7", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -498474,7 +498474,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "256343a41021cb7939f04be08435be181b63527f", + "46b0761c37bfeb5d28bb99d234b3ed48ab3da041", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -498482,7 +498482,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "89da503edff2a20111bd8ae3926662448725caa2", + "4263c9ca372895aaf62ab654d89c811224135bcd", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-module/same-http.keep-origin.http.html.headers": [ @@ -498490,7 +498490,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "566f78b287e6697e5a106ec3b47ebbdcf37d68f9", + "37aa91a2cc9a2cca3bcc8f81d9e2cec9343097c8", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/worker-module/same-http.no-redirect.http.html.headers": [ @@ -498498,7 +498498,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "64d7baa1f1a6fba2e6152cba31f6068c929fc56a", + "913aa0564a21aa6e8e62495dd9387b290a4cecbb", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-http.keep-origin.http.html.headers": [ @@ -498506,7 +498506,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "1e087a18106a3aad9080036711bfceaf35155722", + "b33622d6fe8f98ba05591d7ddadb1436ef366aa7", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-http.no-redirect.http.html.headers": [ @@ -498514,7 +498514,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "07d84ff367c4b89a8045262c8a7d52816d0d96b3", + "dbd1d6033fb45ea6ad917b278782dbc1a8670263", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-http.swap-origin.http.html.headers": [ @@ -498522,7 +498522,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "55c2083a1fff49624395f72cf7b9a46449677e59", + "4e785bd9491a50d7f5a7386babebbcbc0d389325", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-https.keep-origin.http.html.headers": [ @@ -498530,7 +498530,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "e0792a252e057ae80b03ce2fe5f16803dbbcf536", + "7cee1eef457eda25e63263c72e74d3c6bbce11f1", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-https.no-redirect.http.html.headers": [ @@ -498538,7 +498538,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "3c2d87578dd74470f96879d3d64d6a47a16af05c", + "17ca3b0d905430dc0d3b0df11b9ecc7c0cd0ae37", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/cross-https.swap-origin.http.html.headers": [ @@ -498546,7 +498546,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "bea5b349e2d42acf5c25a1ad0034aab353b33081", + "0dc78e462077a06d79ee8e6b22ee0ea92dcaca25", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-http.keep-origin.http.html.headers": [ @@ -498554,7 +498554,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "a90fdc68ded6fb1c51651f408c5da759da0bb473", + "6646c6fc66b167b51ebf386cb2f7de1b7d7b75d3", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-http.no-redirect.http.html.headers": [ @@ -498562,7 +498562,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "38040fe3495e424de9921d3277b88c96898faef4", + "5509539c492304d1446bcb08ac234f2863e9a1fe", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-http.swap-origin.http.html.headers": [ @@ -498570,7 +498570,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "f0e9a7f1fb12628e1935996d056cff015a2c49cf", + "b2eac1b7ca6fb56068c519306d820389c1f477ae", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-https.keep-origin.http.html.headers": [ @@ -498578,7 +498578,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "e5429b6e783bca522a3102b2a3863de644be7ba9", + "60d0079467a9a0d66e86f7dfb7f97c76c1c379a5", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-https.no-redirect.http.html.headers": [ @@ -498586,7 +498586,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "2fbb14501991a109a023fd9dfda3a616ae74053e", + "d35863d9f2698cb516f079761b7f49190e3a97a4", "testharness" ], "referrer-policy/gen/top.http-rp/origin-when-cross-origin/xhr/same-https.swap-origin.http.html.headers": [ @@ -498594,7 +498594,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/a-tag/cross-http.no-redirect.http.html": [ - "40aabbdfbea186fd1911da9c2bbe90749762ce8c", + "99ae09e0217cfc70b28659504b7a3cd496bf8beb", "testharness" ], "referrer-policy/gen/top.http-rp/origin/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -498602,7 +498602,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/a-tag/cross-https.no-redirect.http.html": [ - "3ca4033c4f5dc75410978f4bfcf87c4ea94ebdcd", + "766f4b0d7fa8324432e343ef5dcbefd1a425f4dc", "testharness" ], "referrer-policy/gen/top.http-rp/origin/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -498610,7 +498610,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/a-tag/same-http.no-redirect.http.html": [ - "9bffefa6f50c1b2d78c8f8a65c2606554a32e4bf", + "3e6668aa68c1c03df9a75775bbc603144d4cc77b", "testharness" ], "referrer-policy/gen/top.http-rp/origin/a-tag/same-http.no-redirect.http.html.headers": [ @@ -498618,7 +498618,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/a-tag/same-https.no-redirect.http.html": [ - "2174421cf709deef128b9913660cdc4aefb1d2f9", + "5a43002170ad8c0fd8f5349492e68019e0d35fa9", "testharness" ], "referrer-policy/gen/top.http-rp/origin/a-tag/same-https.no-redirect.http.html.headers": [ @@ -498626,7 +498626,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-http.keep-origin.http.html": [ - "4f6f519fb35e73c9e8b9780638af201bf388a587", + "0c32a50951b3f7488b44c13caf01d9babf8c2e2a", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-http.keep-origin.http.html.headers": [ @@ -498634,7 +498634,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-http.no-redirect.http.html": [ - "34a0c86b9788c9239e56fd6761827d4f7d3d12ff", + "8c308f3930042e93db5db5500b94e0dc1cb2ae72", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-http.no-redirect.http.html.headers": [ @@ -498642,7 +498642,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-http.swap-origin.http.html": [ - "9e8df6a1d894e1f6f502b21612437bbb5d4491de", + "ce2759ce911015ac4d3bbc41f8ceec005930c102", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-http.swap-origin.http.html.headers": [ @@ -498650,7 +498650,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-https.keep-origin.http.html": [ - "e36c3b5d24794d2696cf0a69320959deb647f4df", + "36adf76da5bc9716f2a1ea28e61e06de3bc5f163", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-https.keep-origin.http.html.headers": [ @@ -498658,7 +498658,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-https.no-redirect.http.html": [ - "2e0052a4ea0d2f29d7c04a3ffefe3118a1768276", + "5acbeceff051635f85bcb1c94e6b522887712e19", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-https.no-redirect.http.html.headers": [ @@ -498666,7 +498666,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-https.swap-origin.http.html": [ - "58bc8bd6c848bb42d8a5a15cf118a801a827e791", + "69a332698990e83aeadeeec38c5fe37a5d29a5dc", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/cross-https.swap-origin.http.html.headers": [ @@ -498674,7 +498674,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-http.keep-origin.http.html": [ - "27dd44cc172fd0e09cbf3b1b286cdfd7fae14613", + "7f8590b55c4c86be6ad9a4df2fb8584aba95d576", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-http.keep-origin.http.html.headers": [ @@ -498682,7 +498682,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-http.no-redirect.http.html": [ - "f6b77d4d1495aa5522ba193a47b5bc6b3ee56fb1", + "3c664a3c68bc4e1128d2b13d16ec158fc4db4abd", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-http.no-redirect.http.html.headers": [ @@ -498690,7 +498690,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-http.swap-origin.http.html": [ - "9c1f0e0cfd9e891e092aeb8cdea44a7e2663984e", + "e0b6d2a7d94294f8b2ff43b5ee0e9bad6d0409d6", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-http.swap-origin.http.html.headers": [ @@ -498698,7 +498698,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-https.keep-origin.http.html": [ - "51d5c12f1106c5d02e06f23076d0cd40dc2bd16d", + "f6ba0d1be63de097146875008959159b793d49f2", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-https.keep-origin.http.html.headers": [ @@ -498706,7 +498706,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-https.no-redirect.http.html": [ - "c79ae7428783300049efdcddadb6c7237fcb885b", + "ba22bcd31a10394b1f423041e44735267a5a28bd", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-https.no-redirect.http.html.headers": [ @@ -498714,7 +498714,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-https.swap-origin.http.html": [ - "b36071d3e11358ef539b52792d441baed3559ed7", + "448160faccfbb57e3e6461110fa610b0b0588f39", "testharness" ], "referrer-policy/gen/top.http-rp/origin/fetch/same-https.swap-origin.http.html.headers": [ @@ -498722,7 +498722,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-http.keep-origin.http.html": [ - "4f7bd2ddb7ccb05489756664d114cf00acfe8756", + "2d0778fd9193f85414758ca68c9ed9b4bcd1446d", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -498730,7 +498730,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-http.no-redirect.http.html": [ - "a4dae22bfb98970dde15f01464a731a96abc8e1d", + "f19cca83cfe4249968de7e771b775d7d4c09e540", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -498738,7 +498738,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-http.swap-origin.http.html": [ - "7818554992ae13ed9dc85f58177a5bd25fe5e633", + "3d049834cac802d03d2b2ad0e9bc3ab90df47cb5", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -498746,7 +498746,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-https.keep-origin.http.html": [ - "f1fe7c006f1026be87da5febd7c45326dc0d55ae", + "81c10f2dd9ab3087891a179dea6862a708584289", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -498754,7 +498754,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-https.no-redirect.http.html": [ - "933c6729d4a52e4766207c7e497e01164fb1c57d", + "338a487d7d7f1344d020afedc068c91e8f926436", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -498762,7 +498762,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-https.swap-origin.http.html": [ - "d315738e0e7acb0c84d6bca5225af3d2fc0ad355", + "5c0951d525aacaeda743a9be43321d9c47af16e0", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -498770,7 +498770,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-http.keep-origin.http.html": [ - "178968e6db399c2494276d28402f03a3894a83eb", + "0b599bea5b78491bade0ca3fd2563a34e297940d", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -498778,7 +498778,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-http.no-redirect.http.html": [ - "65213cf1074d26e8e9326f2615f7f76a528af6fa", + "32d73c1743c15d56972f13546d1e7af43eb1135b", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -498786,7 +498786,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-http.swap-origin.http.html": [ - "ca9c9df1ef8e23bbebb2f9f9e222e95ba2421e64", + "d41f8f6eed1dbcaea6de8743f33572af4158e23f", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -498794,7 +498794,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-https.keep-origin.http.html": [ - "9636530141fcf5ceea7dce2039334e8f9870a512", + "99f63208e4825f4fede9b9cd38ed4495d3b22b2c", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -498802,7 +498802,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-https.no-redirect.http.html": [ - "3d04897f9b29a5b4241c98bcf380b1675961b9f8", + "69305a0b48459a637d15b1b60c0db76db85e6506", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -498810,7 +498810,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-https.swap-origin.http.html": [ - "1a3508e9a1fc39c9fd73ff6d9b41c9affcf18cbb", + "eef425d5ffd1f4296e77d84f12de8900296fbfaf", "testharness" ], "referrer-policy/gen/top.http-rp/origin/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -498818,7 +498818,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-http.keep-origin.http.html": [ - "6670d6d8a4136fee457871d0476ab876ebd30d48", + "97bb25aef5bfb157abb5990c8c871a3039822407", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -498826,7 +498826,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-http.no-redirect.http.html": [ - "c25a33644e9eaf23da1cd4bed375ad89f6b3354d", + "2e11e4486f9e356061e1d11ec3a65a09f81ac21f", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -498834,7 +498834,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-http.swap-origin.http.html": [ - "3d7ad2168dc4e302ebe0665497d2f43e9ce3af37", + "60775ba765dd7eca88f0e175bdc3ae598c80e779", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -498842,7 +498842,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-https.keep-origin.http.html": [ - "a11fa5d93fd9d28591182fd5adbadd2b01d61548", + "ac8d8a9ad2d03b70d261f466b68f88005d5b9704", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -498850,7 +498850,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-https.no-redirect.http.html": [ - "11a545f1e79ea38d1fa23bd1734650f13a0b5440", + "f7ecbdc6e3d7edb6e32b970fce1c8714b219f9f4", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -498858,7 +498858,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-https.swap-origin.http.html": [ - "21c6d95057e18058f9e548acb2206a377c41e380", + "ca99ee00c2b93a38b5abaa06b558fc832581c77c", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -498866,7 +498866,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-http.keep-origin.http.html": [ - "ff1ab459defede4fcf91d74b634f564af1700d78", + "39f770cec8cccf9e3445f8b4e38375de94514274", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -498874,7 +498874,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-http.no-redirect.http.html": [ - "1b6646dacb9c16fe91c94d61622dd1b5536f9fb6", + "67a83a860dd81544ee0dd9f9d3b18bb4c2b9cb91", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -498882,7 +498882,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-http.swap-origin.http.html": [ - "0d17830d02000ca293de870ff3a85c334742feda", + "db5f2e1f9730b7c9abcb1a354403e1e51d920b24", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -498890,7 +498890,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-https.keep-origin.http.html": [ - "3a05e06ed0dde98b6b2a380f99421a7a0df15852", + "12c2f63db133eefa876c9aeb31822127adf4c61e", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -498898,7 +498898,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-https.no-redirect.http.html": [ - "c33af79980a198fc92fedb040649dce5a6587d20", + "577f687c9cd0f36618df83752b0a57d910f36780", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -498906,7 +498906,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-https.swap-origin.http.html": [ - "92344ccb466aa31e91e0da1b330f145b77681d8e", + "df9ceec26bf5dced2a7a32acf484217f4f689b6e", "testharness" ], "referrer-policy/gen/top.http-rp/origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -498914,7 +498914,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-http.keep-origin.http.html": [ - "8351133d2e1865849fcd6db651ecd00ba330e687", + "22da8eed11b115d67e132057a43a89264899f37c", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -498922,7 +498922,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-http.no-redirect.http.html": [ - "945f2bb4617166555a394432dc3a8b12af2baacd", + "29c997ce789518741ba198cc5965b832151bb894", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -498930,7 +498930,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-http.swap-origin.http.html": [ - "bf97f96ea5bbaeedc75ab12f36bd7391f49b351b", + "686d752e0e25bde064fb706697158b771670a242", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -498938,7 +498938,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-https.keep-origin.http.html": [ - "26c541a27fd68264967a5e7e7b63ea7d78e338d7", + "19b2b3cde20b07437f7f3f4d86c9dc99705aca08", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -498946,7 +498946,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-https.no-redirect.http.html": [ - "a78bdd5a909250bb5aac300b6e3537c5dc3eb1ee", + "9c29b03778f69851262c1f47df9d096ba850853f", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -498954,7 +498954,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-https.swap-origin.http.html": [ - "050da344555e268ed127b4d8b84c1c071820291a", + "834b8f3b4c328df842d89f7047459f59e9681add", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -498962,7 +498962,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-http.keep-origin.http.html": [ - "829caf653a82a793c7171d31d2e489910cabcaeb", + "2a5d372f1350600ebdd386118eb6b5b5b661709c", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-http.keep-origin.http.html.headers": [ @@ -498970,7 +498970,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-http.no-redirect.http.html": [ - "ab8aabba902fe4d9f1b21cc9fd3bc94c58248242", + "ad482734571627ceceefece74aa3b69297f7a677", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-http.no-redirect.http.html.headers": [ @@ -498978,7 +498978,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-http.swap-origin.http.html": [ - "2d6ba47b75a8c23e38dac56b1fd7fef1a273506a", + "0b95cd122b3da478bddf19b2729b0eb0433e17c1", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-http.swap-origin.http.html.headers": [ @@ -498986,7 +498986,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-https.keep-origin.http.html": [ - "af54beeacab43c08386084c4a34656bf6dfd551f", + "9402a90b4fc2f8a9aaf27b3026fdd5ca50fabf5b", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-https.keep-origin.http.html.headers": [ @@ -498994,7 +498994,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-https.no-redirect.http.html": [ - "3d7ed51d9ff559c0e33bd77dc25c293849c126b0", + "12d7fa65b5d5ab3b02a5e44a649f1799bd1f0b96", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-https.no-redirect.http.html.headers": [ @@ -499002,7 +499002,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-https.swap-origin.http.html": [ - "8c2c449345298ec4aa9ae4df59064c4a081d0a9b", + "483a21bb49db34a859c531751cb5f4b996bdfad8", "testharness" ], "referrer-policy/gen/top.http-rp/origin/script-tag/same-https.swap-origin.http.html.headers": [ @@ -499010,7 +499010,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "8b26ae4b565bed9e92ddb3547564c081467449e7", + "9bb9edc5dde29dfc53c7b955074d02b8ba5622f0", "testharness" ], "referrer-policy/gen/top.http-rp/origin/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -499018,7 +499018,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "2e11e130dfccd3396dd8c580736a952e80efc01a", + "d4c469d0cf32448937ffa667ac9c654c6b12fbab", "testharness" ], "referrer-policy/gen/top.http-rp/origin/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -499026,7 +499026,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/worker-classic/same-http.keep-origin.http.html": [ - "7e2272825d6476f474794da90c6cf68cd1a30ad3", + "f209c5c14163c340da09dba9fd36c014bacf2c4c", "testharness" ], "referrer-policy/gen/top.http-rp/origin/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -499034,7 +499034,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/worker-classic/same-http.no-redirect.http.html": [ - "382e1862566fae5064432247fe206e6a2ea78e01", + "dd362554e067e015c0aac88731e60ce8e699f972", "testharness" ], "referrer-policy/gen/top.http-rp/origin/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -499042,7 +499042,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/worker-module/same-http.keep-origin.http.html": [ - "8179b7a1e41cc2888a1282978ad96bfa15886c79", + "7d8d98b8e97cc47f17eef147261d56dfb74f4266", "testharness" ], "referrer-policy/gen/top.http-rp/origin/worker-module/same-http.keep-origin.http.html.headers": [ @@ -499050,7 +499050,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/worker-module/same-http.no-redirect.http.html": [ - "51f2f9e709f264a071a4ae8fff1331ef2c162409", + "1d6c72b408ab89d070d37b15143daba9e2ab393d", "testharness" ], "referrer-policy/gen/top.http-rp/origin/worker-module/same-http.no-redirect.http.html.headers": [ @@ -499058,7 +499058,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-http.keep-origin.http.html": [ - "a41d69ad7b262a363fc0c13d00dba7c81bed6099", + "e6d8e3adf1eff3673173084bcba2e35695442f98", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-http.keep-origin.http.html.headers": [ @@ -499066,7 +499066,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-http.no-redirect.http.html": [ - "456f0bf7025cd94913500f18d3c502eb29423c84", + "8699a38d26d1358641a152ed174574e07914209b", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-http.no-redirect.http.html.headers": [ @@ -499074,7 +499074,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-http.swap-origin.http.html": [ - "0081e74065be8dec7482e51e2bc2d2d3a3a6be2a", + "32318f63888bedc2cdd80b2e14b4d5cd05c75144", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-http.swap-origin.http.html.headers": [ @@ -499082,7 +499082,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-https.keep-origin.http.html": [ - "7abd36b9518382e7f6ca11198ee3e060e559e91b", + "ee0d6ef999dfb9a7612ded27ca979e4002bae6a3", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-https.keep-origin.http.html.headers": [ @@ -499090,7 +499090,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-https.no-redirect.http.html": [ - "0394d16ece239989e609a791d533fc3b2b7d21fd", + "ab5bbcd25b7e8fdd59bf4579b32bd30f71762777", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-https.no-redirect.http.html.headers": [ @@ -499098,7 +499098,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-https.swap-origin.http.html": [ - "315b1af6c72785e03222a1314bea6473a52b998b", + "6cb441f026fd6abc5503d91fe5a79d1f0f918954", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/cross-https.swap-origin.http.html.headers": [ @@ -499106,7 +499106,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-http.keep-origin.http.html": [ - "227aec5a81d1d913389084e7bbe3d9ba31982c9b", + "5bfdc033c77ae633add1bd5dc9211886886d1582", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-http.keep-origin.http.html.headers": [ @@ -499114,7 +499114,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-http.no-redirect.http.html": [ - "a1f6d307ead6ee8155dd188d1eb18d7e5df7c9d9", + "32e1ffa0a5f8e54032123be1ab99212a15accb34", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-http.no-redirect.http.html.headers": [ @@ -499122,7 +499122,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-http.swap-origin.http.html": [ - "1752869527925da764b4a9759a1b9ddaa7dd2495", + "ac57d090c72f946acbccdd0ba10a19903d0f02c8", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-http.swap-origin.http.html.headers": [ @@ -499130,7 +499130,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-https.keep-origin.http.html": [ - "45ad932c87c41e7eb09d1343c8416a52e85e5e05", + "9465c026fe0ba81dcdf56c5f0bb05859567e51b9", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-https.keep-origin.http.html.headers": [ @@ -499138,7 +499138,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-https.no-redirect.http.html": [ - "24b16af2b5ed7eb8911554178ad633c635d3869d", + "7e57d479231b26fc02290daf05386676b0eb7566", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-https.no-redirect.http.html.headers": [ @@ -499146,7 +499146,7 @@ "support" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-https.swap-origin.http.html": [ - "a2c0e8ae4440fa3fc6f76ebfe052df92efbea581", + "e1bbbc32e8a1c5fe7eb48083de082afa14a65aa5", "testharness" ], "referrer-policy/gen/top.http-rp/origin/xhr/same-https.swap-origin.http.html.headers": [ @@ -499154,7 +499154,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/a-tag/cross-http.no-redirect.http.html": [ - "2b9d2097e37b4d50562221c4135a0e243aa787bc", + "3cc76c77ed81ff316f5d3e190760a059b0ad8f81", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -499162,7 +499162,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/a-tag/cross-https.no-redirect.http.html": [ - "f47e6918ffc3ec356c4a9ca0c671ce185ae42202", + "129f9649b389fc0081acd4be0fc733d095a0150d", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -499170,7 +499170,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/a-tag/same-http.no-redirect.http.html": [ - "13f42bcf980a7a099754b87cf9930f94d8bf1533", + "beaf04faae158d031db95c42c5a64efce59d73da", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/a-tag/same-http.no-redirect.http.html.headers": [ @@ -499178,7 +499178,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-http.keep-origin.http.html": [ - "8f34e4b40b31b3593e80b21c5afb6557a83e0ede", + "2940080f25fa466dabb0c4ef054ddf119907c611", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-http.keep-origin.http.html.headers": [ @@ -499186,7 +499186,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-http.no-redirect.http.html": [ - "1508e7b65d26cb17ea6b47ab793289b6b5942d60", + "f7ae2c15f638558f0b5a16c0468b65a53d578391", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-http.no-redirect.http.html.headers": [ @@ -499194,7 +499194,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-http.swap-origin.http.html": [ - "7aee58850d68b6a6cac9981c6a0387cabe5feafe", + "39087e48490889c4037686b4240b1df08925635c", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-http.swap-origin.http.html.headers": [ @@ -499202,7 +499202,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-https.keep-origin.http.html": [ - "3fb3fc860c4d5b848cd13f06138df6394718ccff", + "f33ff335dc9b05b63c1e91ab2b59d1497ffc23f7", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-https.keep-origin.http.html.headers": [ @@ -499210,7 +499210,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-https.no-redirect.http.html": [ - "fce68ea7cd6b8a4a56dbd20e6a8ff1ef1f14639d", + "ddaebd579923961a9feefcaf4403197e58ffe012", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-https.no-redirect.http.html.headers": [ @@ -499218,7 +499218,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-https.swap-origin.http.html": [ - "ce29d475272fbe0d994423796e6644c85ff42984", + "d594aaf60641a2e66f1054b62ca640c61162fd59", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/cross-https.swap-origin.http.html.headers": [ @@ -499226,7 +499226,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-http.keep-origin.http.html": [ - "b08ea62152b8798cf9aac5fe92c1cf006e9e75bd", + "13b32f75254095a8441158c78803bd59a1916bbd", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-http.keep-origin.http.html.headers": [ @@ -499234,7 +499234,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-http.no-redirect.http.html": [ - "c3228e68db7c889dd5f45afd428c4cb886c7e50a", + "d7938aa553c1cc8265d2eda45cec610457714453", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-http.no-redirect.http.html.headers": [ @@ -499242,7 +499242,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-http.swap-origin.http.html": [ - "959da6b41ffb7aac3cc6364baf7537ecc2ced0e5", + "db62a2b1dbe556a18087197531cc24da19a16cfd", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-http.swap-origin.http.html.headers": [ @@ -499250,7 +499250,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-https.swap-origin.http.html": [ - "7d4cd7464ffa9f002eec66ed4a83d716fd2719e2", + "01849606f0b146984f4860282645d61f57a93b67", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/fetch/same-https.swap-origin.http.html.headers": [ @@ -499258,7 +499258,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "21f8c3133c6fbbf18fb3134d5cfb466b19df4c5e", + "d5dc8ad754db8c9b99a7167a60409d684d5f7176", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -499266,7 +499266,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "9280b146790c67f24ae6d0343dc1aaaa8105676f", + "bb2006273a6f0683ed633d644978e6b93d0a3e7c", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -499274,7 +499274,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "de7dd9fc27ebeb130531fa3fef20af274a0fe221", + "76df663efcf098f999cbde346e5c7dcab30bee0f", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -499282,7 +499282,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "3fe94d95d014dd07dde3744ac67d13e84c561851", + "0b0d49bb2b252c3d0daf3e93a106eda01c57e9bf", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -499290,7 +499290,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "147691d1211952b32e27e4cc26c86ee9bff5dc91", + "aecdddae47e907efb111e78fd741f56018047c70", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -499298,7 +499298,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "10f02d38b7c10eecd7e094200cbc1e4f50b3e563", + "c591a8b6078b7d5ebd2ec3cdc870e1b5f79d4892", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -499306,7 +499306,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-http.keep-origin.http.html": [ - "839a460e2f3b75730519f1e1571e4910ac6a0b77", + "002f1b0b1fd6cd02d493c63ef2097de5d7d17bec", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -499314,7 +499314,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-http.no-redirect.http.html": [ - "6adde4099e3cd1edfd9608fbd23e029ecf3038cb", + "a11ea0016d8a5fcfaa42841cd585e787cd2b9f3f", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -499322,7 +499322,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-http.swap-origin.http.html": [ - "18b9318f0ae9e8bd25d81a53e3aa661da2e20f2a", + "42d5b63bddf9094de8adc264c4894ccd54a5ca57", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -499330,7 +499330,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-https.swap-origin.http.html": [ - "99754a15bc4298fc37826d81e69cc764673b3b86", + "054ef8e1c8ad870b81424bb2bf9de7d0eac543ba", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -499338,7 +499338,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-http.keep-origin.http.html": [ - "7d76b2d01f612eb92f6db18eacac466f83ed622e", + "757c6cf5a1c9b8ad672c4b491f828a57d733b444", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -499346,7 +499346,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-http.no-redirect.http.html": [ - "6f3f81efed23861ec29fe5ef89bff77392c22e21", + "7656846845d58b02287a67eff57a319e28fef77d", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -499354,7 +499354,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-http.swap-origin.http.html": [ - "07644228697e12859a37954b91965757d7cca1ca", + "487d0a624e37db7bf18830ef5369d8d0528b6c85", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -499362,7 +499362,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-https.keep-origin.http.html": [ - "c99b805ee6fa2471d12f5af89fcea7e9a35174f7", + "3276d4a996ae285010609ccffbd1c755f3757c2b", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -499370,7 +499370,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-https.no-redirect.http.html": [ - "abd5da87073961f0d3c38a3c54abd26e4c8aff48", + "f6fb89af57e21755a321db82e18ddbfad1a7fbf8", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -499378,7 +499378,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-https.swap-origin.http.html": [ - "de3f34e6ed6171cdf73fab2a204f8750bf75125f", + "680dcfd4bd94c7a5c98fc7cc7ff6f7ca11d63e99", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -499386,7 +499386,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-http.keep-origin.http.html": [ - "02890f0133925c3d8119da9cce6ebbd9bb8a3128", + "5c84aae4866c6f76e4f202078d6182931edb0cf5", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -499394,7 +499394,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-http.no-redirect.http.html": [ - "d53b6b671519930f78b7c5c4ce155f682a04ecb2", + "717507f9265502857b53bef46cbe9f0908a2dd15", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -499402,7 +499402,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-http.swap-origin.http.html": [ - "e7f8f4e1ce8a33c0454ae02b4f338b82a9379e06", + "919c0f8a5a10bc53f8997487bb81906616cff715", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -499410,7 +499410,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-https.swap-origin.http.html": [ - "323971aceff3baf9c5e5873c35b5886a7d2bc2fe", + "af9925a845151494e0b3494b0a31d00a00f84a6e", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -499418,7 +499418,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-http.keep-origin.http.html": [ - "9339fe1536d4b9842b02d73648ab3cc7db277513", + "c7143f684228de1debe8254e80d66b2b613fab46", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -499426,7 +499426,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-http.no-redirect.http.html": [ - "eb440bf0e39bc147e3c19e1be0fa96b5a3e77320", + "961cb3aeb38e4d038f17c5981a2aaeacc77aed58", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -499434,7 +499434,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-http.swap-origin.http.html": [ - "c86ad7a9c522813cd4a95d189de0460349a57bf3", + "3db832952160d149eb681208c0267833d94d4d79", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -499442,7 +499442,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-https.keep-origin.http.html": [ - "f61132e76846a3b2d076130080f849173ca63f68", + "139b04add45c98aa426d6f220c28d0c6bced5a2b", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -499450,7 +499450,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-https.no-redirect.http.html": [ - "b62e58c79634c570ad17526855752308f6f17acd", + "ec0e8df140323f96e7b148d2b8b479ce02bf21c2", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -499458,7 +499458,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-https.swap-origin.http.html": [ - "78b5d49337a318139830bf8c4a169a7de7123ef2", + "1be2acd3785fde7cc8f8abf4d8b62d8d7ce7929f", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -499466,7 +499466,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-http.keep-origin.http.html": [ - "0aed5b01195208435207b266e1982cdf72462584", + "24e5f26ba79d2d060940a49ee2c933c966405669", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-http.keep-origin.http.html.headers": [ @@ -499474,7 +499474,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-http.no-redirect.http.html": [ - "7a6f1a2788f1115f349ce1a9cb7ebc74db7fdeb4", + "1a990220ec355d39852d756ef963135e7f1ceb4e", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-http.no-redirect.http.html.headers": [ @@ -499482,7 +499482,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-http.swap-origin.http.html": [ - "433b905fd3646ce266f1163e587289f749849361", + "7a361b751477d89b0ed6ead1d4ddad3103383853", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-http.swap-origin.http.html.headers": [ @@ -499490,7 +499490,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-https.swap-origin.http.html": [ - "a18912fb172c9f51a97fd60b0f1efc13b7760f3d", + "188c8b0e5de0ecaa2f770b26f0d17aa45f3e67e8", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/script-tag/same-https.swap-origin.http.html.headers": [ @@ -499498,7 +499498,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "8528aa8643319de75167d8be8265b5506398fffc", + "9f4a1d47f2f54881b2bae4aebdada20d1e6e0d27", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -499506,7 +499506,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "f2e87c9c86e8828eb3b27c3481310ec62e0721d4", + "166160a96edb0cd92efa8008125c24b461478d6d", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -499514,7 +499514,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/worker-classic/same-http.keep-origin.http.html": [ - "4478b057eac8217eb92d30b9a65e54836daf9fa7", + "5ee8e5e26f3355fbf1cd8786b8d3ab8a98071915", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -499522,7 +499522,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/worker-classic/same-http.no-redirect.http.html": [ - "971c35f3f175230b4d73ccb39398ba2e4cf78c9e", + "22f2b90fbc46fe934f55018b731dfbb8b9d16d73", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -499530,7 +499530,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/worker-module/same-http.keep-origin.http.html": [ - "4646ac18bcc74d644c3e8d3dd7061db535405a1c", + "19792dccaeaf53fa998cb1ba7df0f5eaccd34a0c", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/worker-module/same-http.keep-origin.http.html.headers": [ @@ -499538,7 +499538,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/worker-module/same-http.no-redirect.http.html": [ - "34380c9974f4f58ac6ddc6954f5014ceed0ea7ff", + "372ef3032a22bae8ff93ea2114e20194b02581af", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/worker-module/same-http.no-redirect.http.html.headers": [ @@ -499546,7 +499546,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-http.keep-origin.http.html": [ - "991590d42e1a6f0d2d611b33d1af72807c86fd4b", + "907011965142327d53c32ab977c7f1c8ec718edb", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-http.keep-origin.http.html.headers": [ @@ -499554,7 +499554,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-http.no-redirect.http.html": [ - "d1c5e7679d5e8c0b0090f54542ffa080e71db3aa", + "54a7216fe5f2667d3d4c74cfb0c39b87bb9fd87e", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-http.no-redirect.http.html.headers": [ @@ -499562,7 +499562,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-http.swap-origin.http.html": [ - "4d59243b94a7294fdccedee07f2f4f0fc30753b0", + "1562379d9c5d66705a90f3147b88641376028d70", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-http.swap-origin.http.html.headers": [ @@ -499570,7 +499570,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-https.keep-origin.http.html": [ - "9fe84a6563e999f654abba88cb57bee2268071c8", + "c8d6c8ce57dddff5baca1ca21fbd33baf74606aa", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-https.keep-origin.http.html.headers": [ @@ -499578,7 +499578,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-https.no-redirect.http.html": [ - "68c246747918a4e10d0b9713ecac3da63944a056", + "7e2fe401a09929dc76b3c52917c780937a8d5f20", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-https.no-redirect.http.html.headers": [ @@ -499586,7 +499586,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-https.swap-origin.http.html": [ - "cde13783182494c1e0c7e48d7b2701e4328fbad3", + "8d658e01fd3f0d7e6e3d37797351dae14776a77e", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/cross-https.swap-origin.http.html.headers": [ @@ -499594,7 +499594,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-http.keep-origin.http.html": [ - "02b2b05ea96b19bd62cb3a93839f50243bfd4013", + "13927c018f8ec3a01f0f12c496e22323fb37a4ae", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-http.keep-origin.http.html.headers": [ @@ -499602,7 +499602,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-http.no-redirect.http.html": [ - "b82f10fac5db4f170fbc536da484372306722eef", + "08592522be39425d0e9398cd2fc7d5263a432e67", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-http.no-redirect.http.html.headers": [ @@ -499610,7 +499610,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-http.swap-origin.http.html": [ - "0a691b51adfb938c37c1a6370dc11f193465adba", + "00fa8971d937f0d99fd8f3e172f763d865b41802", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-http.swap-origin.http.html.headers": [ @@ -499618,7 +499618,7 @@ "support" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-https.swap-origin.http.html": [ - "84c5c47a5bdcdf6c75f8db1b1c2441c54bdf002b", + "effafc051374ebcb061b818f4afb3ff464fb53fd", "testharness" ], "referrer-policy/gen/top.http-rp/same-origin/xhr/same-https.swap-origin.http.html.headers": [ @@ -499626,7 +499626,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html": [ - "381a8d7d27931daf5bdf7517621811e5205c4f53", + "3fb51410b875b6e3ae43029ebb4da52381cc97e7", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -499634,7 +499634,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html": [ - "ce7471041828f95897595f9ef485533acfcef161", + "5b16684bb7501285a6067017611b1dcb48c9984a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -499642,7 +499642,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/same-http.no-redirect.http.html": [ - "bed1549ef064904bb7a0f8e8135082a2b97a7ae7", + "981e166ba35a398748a7f717dbd8716b3ea30161", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/same-http.no-redirect.http.html.headers": [ @@ -499650,7 +499650,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/same-https.no-redirect.http.html": [ - "b4a8996e8d1acedc5f77a00e06a0de9d60a527c9", + "50c149fcd20e3949e36052fc0166e883611a4269", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/a-tag/same-https.no-redirect.http.html.headers": [ @@ -499658,7 +499658,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "7ff567aac4175189dc25fd7be6dcec09433639bb", + "8a7503fc8cb1f4303cb31644fd5a59fd108b8744", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-http.keep-origin.http.html.headers": [ @@ -499666,7 +499666,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "1d8baf9638b4f1042591b1e508b705f1cb62bc16", + "038e24dc669c02b6abaa9b7c480a263f1ef191f0", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-http.no-redirect.http.html.headers": [ @@ -499674,7 +499674,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "0b9637e29e03503be7e369cec1b69ae80b8add16", + "e241e786f223e16267291eb1cd7422038a9bd90a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-http.swap-origin.http.html.headers": [ @@ -499682,7 +499682,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "8356d022948d48bdd466b3167f776fe94df0dd7b", + "5dbdb557500719714ed771be4968bfeb569d19d4", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-https.keep-origin.http.html.headers": [ @@ -499690,7 +499690,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "7549a656c6fedf48669334d92e4536d7986e925e", + "4cb9828923ff40e8e6d30edba15256e85f85de10", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-https.no-redirect.http.html.headers": [ @@ -499698,7 +499698,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "f9b940e0324949388fc9fbdece97e8be88175500", + "a0b52e564499253ce11fb0997b912fcb77e6531a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/cross-https.swap-origin.http.html.headers": [ @@ -499706,7 +499706,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "dd7a24720993effa40ae7d0b5da4158215202f4f", + "5e4a8449dc807e19fdd6d0f5225e3bf4e3304373", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-http.keep-origin.http.html.headers": [ @@ -499714,7 +499714,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "cba214803a5e011fa897bdf2428892b97c0da226", + "578307ac34023edb6aab200c038a47030170982d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-http.no-redirect.http.html.headers": [ @@ -499722,7 +499722,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "8d4768f30dc62d65d340dd6f8ab5800c3b49e4db", + "0c41cffd697993516b3de95b14c8fc7756756af6", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-http.swap-origin.http.html.headers": [ @@ -499730,7 +499730,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "242469e626a2a056ecc2de8d95ecee7e38bc78f0", + "43dbd10f9c4d355f8b9c539d8fbeff0d3f440e33", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-https.keep-origin.http.html.headers": [ @@ -499738,7 +499738,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "e2daede730a6ec2ac0723ceff3047f22b93b2677", + "99c62812041c8310124a15c0b577f4759e500e96", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-https.no-redirect.http.html.headers": [ @@ -499746,7 +499746,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "247684e333cd1e411f4c5f8eed703bbe57cd8665", + "23007609156ad58e85a84aa9832444e148dd8790", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/fetch/same-https.swap-origin.http.html.headers": [ @@ -499754,7 +499754,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "d5ef4e6e93a33c1381549d20688ecd661dbe5e56", + "ca13e727f78732596caf0d5c4084da37e691203e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -499762,7 +499762,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "5587203648cd2e7d8cfff4e8398fa8cf10aea901", + "a967ca30e5cb59cd18bac9d250db8e4f27462aec", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -499770,7 +499770,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "9bed03a541af1b54928aca90630cef63201db214", + "28ed9945efbbc343416cb325f17be38246f398a8", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -499778,7 +499778,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "9b114b16f40a954ba31beb05a2ec701334b83d33", + "7ac86c29b27bde8bec2342b6d77172298044c582", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -499786,7 +499786,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "2637b57bcd6402d562e39ccc4ab8dd4440601333", + "6d1288019509e89d2065bb909663ce979421488a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -499794,7 +499794,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "6241294c21215cca11d6d1175e605870bbdced70", + "179cee2b8bf7e705210d86470991b2dae72e02e2", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -499802,7 +499802,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html": [ - "654680d7d1e2ee0bb7b06f2ba524b7ae85febcaa", + "e4a15f4b7fe6775fd5ce95793a63db8dd1912614", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -499810,7 +499810,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html": [ - "fed512ecdd5b49348fdf7336c007880c0921db9b", + "8b73fc151cdd72039751af1dc30a56b20b08a438", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -499818,7 +499818,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html": [ - "f97f14d41b2e9f05fd10b18c0552459026a0ec50", + "60f4191fd1cd1b77eed65992d532cfdeb7b1205d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -499826,7 +499826,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html": [ - "56b9f6f86c37617d2feddf74e57c6ea45fd7831b", + "30d946e1120577bb310111873ca7da4f8479e59f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -499834,7 +499834,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html": [ - "aa9c6ffd19ffa620108090ae1ccbb7c965af6a9b", + "32f072019bc1a8dee7b0e767abf60ea881201d6d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -499842,7 +499842,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html": [ - "d995d234607e537cf029740a80ba90a36dd7d030", + "24de41cbfc0459ac26143d3d6c377f6c33392804", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -499850,7 +499850,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "6486b9dde2c7f17eb5bd76ebe40c086b06590f99", + "31c651b098ec56489d41a9ad1113f8166a917f82", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -499858,7 +499858,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "1c49b3520d2237ddf587a274396ebe75786725c9", + "3e6139f6a5885d6e80ed61cbe2fb697de0150424", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -499866,7 +499866,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "2bc4da51dc6383f89ee390a052c62839b06e10d2", + "8323b499ca095d11cd938d9772d9145dddd27a35", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -499874,7 +499874,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "5e25e169f78b7376054baea7a72d01491935308c", + "761bf9bf47ddc7454b3b950060c041482caac2a3", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -499882,7 +499882,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "81df37d3e4b727df4d5307d4a8e8f6d5963d0b67", + "9662bb3e45ff4f6d4ec548446b0d85446e1eeda0", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -499890,7 +499890,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "f6f52aa85ba2693d09e991e4d9cd91ca99ce3008", + "985607ffeec1944c947a3fef024c91f328547a88", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -499898,7 +499898,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "bf41468931af37c05e08d153f8d5605f39e30e61", + "8da5c17bc15a1a11c91528918ae23c4e51a1ee7b", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -499906,7 +499906,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "b5f5ef832f24c96f68fae558a0718cc64ea88e2b", + "28d81ef1b2a773ef1673eac71931cc5654c2ef7f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -499914,7 +499914,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "fa1d2283dc5d5d1cdd98e32ab65224878af33d1f", + "95064a3451da6ebbdb5ed3739be06c04ccdff37c", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -499922,7 +499922,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "f642c322c9d333766751a854ef70279482f3fcee", + "984f4b01d98fc63e6687a25400dc696fe0ebe9ad", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -499930,7 +499930,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "073589c421d91ba8a3508af23abc6c8ced4359d3", + "0e240a08b50dde7872877191452b97919e29a88e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -499938,7 +499938,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "67d55d83c846827a86976baff0c50fca023b291e", + "69793c232a4a7acb864844dca85d16d19c5555e7", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -499946,7 +499946,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html": [ - "74767b3ea5b0ba94a54ebf19d1bf4927a4fc285c", + "aa7bd079fe5800ec01b43a8f259854d6a1ead1dd", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -499954,7 +499954,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html": [ - "e4926582f1de905ec3d57bc9802ddce6ba3aad1b", + "413a2284bdb9747388ca77e71f5fa391910e86a8", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -499962,7 +499962,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html": [ - "2f9c2e45d980e346106d9f5eda61f6037a5fbe18", + "3a7483358ab15395a023fdcdf7c2be0eed45356b", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -499970,7 +499970,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html": [ - "19f399b9736214ce6326d20a4dacd60519a71bd8", + "5bb16577d04a3fd94b12379ea534aed1d40eb09b", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -499978,7 +499978,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html": [ - "ae82747b73f36dca0d120e3861b7a43a317f2783", + "0bb50cc658b38701dc252aa9cecbb46532545fee", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -499986,7 +499986,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html": [ - "2435daa311b55aa5ae3de59aedd63660da502779", + "23642733b3f78794c57d52dea976ee7bf4ac9ae5", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -499994,7 +499994,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-http.keep-origin.http.html": [ - "3cc3cd8d662c07889f8c0d6d0523709fc28dced0", + "b82f84d479aec2db4882711c621ed756786a0f3f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-http.keep-origin.http.html.headers": [ @@ -500002,7 +500002,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-http.no-redirect.http.html": [ - "e75fd6e7f0cf56cb66bf64f02fe41676c3bdc474", + "b8f547403d02d39bae0331ec7557b85841451117", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-http.no-redirect.http.html.headers": [ @@ -500010,7 +500010,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-http.swap-origin.http.html": [ - "0883f6a00cb72f00c46d2971f706a3f3177b7f4c", + "27144b999996194708604443b5f94914720d6370", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-http.swap-origin.http.html.headers": [ @@ -500018,7 +500018,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-https.keep-origin.http.html": [ - "7d383a8718090cf9dad0e0688b2a711ce7b6653f", + "53e42b69cd6b9c8080481fe365842e8938f9e9d6", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-https.keep-origin.http.html.headers": [ @@ -500026,7 +500026,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-https.no-redirect.http.html": [ - "d6b62169c068ae9486d136d854ab3a6310440f97", + "c0de49f4b99416056b491d4a550a823af0ffeb9e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-https.no-redirect.http.html.headers": [ @@ -500034,7 +500034,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-https.swap-origin.http.html": [ - "2d909b007f92976748c8453b12eadf8dac0744b2", + "d27684e3c39d848b32c329d07ed3c34c6844168a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag/same-https.swap-origin.http.html.headers": [ @@ -500042,7 +500042,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "9d4f18241d64ab508ca2e710b046a95af46b3125", + "b22bc8e75f80ba4e49e48cf802be75578b722f2f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -500050,7 +500050,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "c55a1555bc6708f6c07723aa173ef793fbc3f841", + "9f2bf170022c638fb43999f41b4e0e94851f7216", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -500058,7 +500058,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "2f77e61e1a878c109f669d9a82728b949dd74851", + "c7382dc23f796fb2a23931fd2cf4406f02fafbb9", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -500066,7 +500066,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "ce7579e4c5388f5a31289cefc99267cb0e5554ca", + "1f6a02c479bea259130748f5d4dbf1e299696830", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -500074,7 +500074,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "5cc19088d8d95c999c31fce0b8b57082a5bc67ff", + "1ee00d1596f9b2b086296e337699a924b9794c5e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-module/same-http.keep-origin.http.html.headers": [ @@ -500082,7 +500082,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "9b27acf1dac6b5f6a9833d69a6fb80dd13fca34f", + "fe2898b64dfd1bebca656fdfaeadd39442d25ee7", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/worker-module/same-http.no-redirect.http.html.headers": [ @@ -500090,7 +500090,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "db2434cdb40d55607d271eb227ed6d014c452580", + "95b74be4ea067ec716be723b18bbefc201d2bad7", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-http.keep-origin.http.html.headers": [ @@ -500098,7 +500098,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "8f7e4439029ac31342da6ac2e34baec37422cd1c", + "69cd183fb2ebee60569daa9af236dfa0920b0626", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-http.no-redirect.http.html.headers": [ @@ -500106,7 +500106,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "1bd2cd5c09bb5c128f806dfc2a64441bc41cd301", + "a6eee7dda350babc8dd0989cf4a051af81c15022", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-http.swap-origin.http.html.headers": [ @@ -500114,7 +500114,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "f96b0bad318da2a75437a3017e12a495386c5890", + "3259c33ffc343a21c3294c56f2e646768e5f02b1", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-https.keep-origin.http.html.headers": [ @@ -500122,7 +500122,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "f69f34751f40ecc2566e7a3d49b149a377f82908", + "7f18003e95bce540e79028d6b6bc37acfdf33c5b", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-https.no-redirect.http.html.headers": [ @@ -500130,7 +500130,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "4d98307f2330fbef2bae4b79b0d08e8d78965024", + "03839b5e0793754dd25e3973434c7072f9873b19", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/cross-https.swap-origin.http.html.headers": [ @@ -500138,7 +500138,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "0faa04f3ae94d32f54d1d4d7426aaf4b78237725", + "b0e632dd5554eabef6965db268e5ac3f05dfa323", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-http.keep-origin.http.html.headers": [ @@ -500146,7 +500146,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "71d259aa249543194f9999fe5221a343beec457a", + "e87ee71d406bc226e42c396a2862d419e9c0389a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-http.no-redirect.http.html.headers": [ @@ -500154,7 +500154,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "229e4d81a1b690562505eb8640f01e33e0cad985", + "c65e7c32f51c7d86f1f11a9177da1ebc116a81bb", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-http.swap-origin.http.html.headers": [ @@ -500162,7 +500162,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "aa80aca528c859d3d437d6052e557003c5c1a256", + "e3e18f2a8668acff0134a0e7925cbcd7a0aabee3", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-https.keep-origin.http.html.headers": [ @@ -500170,7 +500170,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "fd083ee93d2f2e08fd5fa4a768291efb0088980e", + "223003fbede453caab164907c03ccb603078b12f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-https.no-redirect.http.html.headers": [ @@ -500178,7 +500178,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "ae41601a66c2bba53eda57c19d7f9173a643b0c6", + "9490773aef438e133d2692280100f7adf3317c77", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/xhr/same-https.swap-origin.http.html.headers": [ @@ -500186,7 +500186,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/cross-http.no-redirect.http.html": [ - "d8400eb77c5b33eff5d3c25459e93b6dd680901e", + "17391c8a0a6980812347802ce4e9daa290fe8a82", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -500194,7 +500194,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/cross-https.no-redirect.http.html": [ - "2df96ccb120a5ea29f3b5064e9f5177a3ee8ef5c", + "109818500603398af2270d65e0acb35bd038f9b9", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -500202,7 +500202,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/same-http.no-redirect.http.html": [ - "5ff2faa3b0806ac3b5829aac33aff800d10aaf32", + "13197b623862517e0ae5dc6ee4f3fd35a900dd19", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/same-http.no-redirect.http.html.headers": [ @@ -500210,7 +500210,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/same-https.no-redirect.http.html": [ - "882629433fb1b3b2f4071d84984f8173aa5e5a66", + "a1a501f6e866c309aa090e88c693f16a708e3de8", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/a-tag/same-https.no-redirect.http.html.headers": [ @@ -500218,7 +500218,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-http.keep-origin.http.html": [ - "26755b1d5d0fa6ed66fbbcf85f0773f8bfe8f656", + "2353cee15305c6d90b058660626b6e872681676e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-http.keep-origin.http.html.headers": [ @@ -500226,7 +500226,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-http.no-redirect.http.html": [ - "762b2a37d72c6237500c85ce9963ddcd8381b1f7", + "dc1667cbc10a6c3b795bc081124a3a1f77580dd9", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-http.no-redirect.http.html.headers": [ @@ -500234,7 +500234,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-http.swap-origin.http.html": [ - "06bec6dfa65f02cc86adc66f4535ee48e52cbbbf", + "c8448c546d8fbfd9b99bf708c411c55308a35805", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-http.swap-origin.http.html.headers": [ @@ -500242,7 +500242,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-https.keep-origin.http.html": [ - "b9066e8025ac93478045ac6134163049ea50244e", + "de81ab0da86377d8cd779edf27ce7eb43e4cf681", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-https.keep-origin.http.html.headers": [ @@ -500250,7 +500250,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-https.no-redirect.http.html": [ - "e1f40610e19c7fd50d65ac090d54f6434bb491ea", + "6cdaa16dff7201c33f2d48ee292af6619cd6397a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-https.no-redirect.http.html.headers": [ @@ -500258,7 +500258,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-https.swap-origin.http.html": [ - "b9efba712eff4132de249aee0015a72750c6857e", + "5f9b73e1fc499570fc7c4ee7ec06e89baeeb6b38", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/cross-https.swap-origin.http.html.headers": [ @@ -500266,7 +500266,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-http.keep-origin.http.html": [ - "d70c493fb207f2191da767d8d31d5bf386d2d09b", + "b1ffa0b358c5f33d2d20bbf5ef99bd014890cd52", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-http.keep-origin.http.html.headers": [ @@ -500274,7 +500274,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-http.no-redirect.http.html": [ - "07167183a67c8abec02cd4b8b3e861db58d27d5a", + "00640885a6df1a49b4c9667649ecda1856fc6d60", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-http.no-redirect.http.html.headers": [ @@ -500282,7 +500282,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-http.swap-origin.http.html": [ - "7e4592afb2f3612ea94594e4e8ce9968f8392ea9", + "0dc59c13e9e832eb67783f9afa710db21c4587dd", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-http.swap-origin.http.html.headers": [ @@ -500290,7 +500290,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-https.keep-origin.http.html": [ - "e17f4011142bb7c6c014e4ca0cd321e282e504b0", + "a9b58efea810493c5159a916027e4fc60fc73dc0", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-https.keep-origin.http.html.headers": [ @@ -500298,7 +500298,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-https.no-redirect.http.html": [ - "c1ba382a6e278e0122c855d8ff176350b1329b53", + "83280ce93fb5967e334617638d7387371b649fc1", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-https.no-redirect.http.html.headers": [ @@ -500306,7 +500306,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-https.swap-origin.http.html": [ - "ae8e73c219d07a7aa68f3310da0922a178dd19a7", + "27e56b984c57ef560adc3ff41cb1323100d96584", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/fetch/same-https.swap-origin.http.html.headers": [ @@ -500314,7 +500314,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "cc41d608efc0ec25544ad0aa1718f62d033181cb", + "d1e79b04b142f7845586afc0b0548bf47cbc0508", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -500322,7 +500322,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "64a356a7e8c2318ae31423d22c9609d2109e67db", + "5dbfc539534969482574631efc87b38d4e5e9e25", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -500330,7 +500330,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "05ab09007705310c457d9d560b04111b9834da6b", + "85c2ba418db55b69ae07619a5e3a0ded4e0368c7", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -500338,7 +500338,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "74dfe4504316472c3e7ca22ef3942998b9c1f563", + "d85ca1cce4572d0e0a0f40605cc7515558a97aaf", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -500346,7 +500346,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "02a1084e29085a8d24441189aec79d6261485f88", + "1b3140596703a41d1463085f585d0d9d90107921", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -500354,7 +500354,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "60665b949c70a3b7d2cc03f458f939426aed8a8f", + "a317d4139ac9b608a07411e3c3b703507d5961e3", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -500362,7 +500362,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-http.keep-origin.http.html": [ - "f520223cf72f82e065ecd1f22c5d99bfaacd17c1", + "5e4d877172047dc9c4acb73e4f1f3c21f9395b06", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -500370,7 +500370,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-http.no-redirect.http.html": [ - "544c58d2fd8e749fd21952cb8e5939ba0067c1b1", + "94c21f538b7eac9d3b464585d81b9d38a1a3c21a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -500378,7 +500378,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-http.swap-origin.http.html": [ - "fb80a7297ac6b278af5eeececd99a2e5d46296cf", + "18d19be7bde69109e7fa1a2c81eb9c68a8e59be1", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -500386,7 +500386,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-https.keep-origin.http.html": [ - "9795a487b6b67e4902046ed063b7f0b4ab82dc56", + "2eee2a663cfff6e4f886493eb360e6bfff39043e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -500394,7 +500394,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-https.no-redirect.http.html": [ - "abcbee94c3bb9cbac11f4a51ea405d14c5ea8e02", + "ed3000738234b6757699e2eff5fec09065db212f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -500402,7 +500402,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-https.swap-origin.http.html": [ - "c8102949ede5c08aba34b972572273f163623ea1", + "21144a59790838a09fe06c8b697f8568b09461e0", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -500410,7 +500410,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-http.keep-origin.http.html": [ - "657908de15e532fd48da2315b3533e259601a4c2", + "5289d6cad0573f52a4815176f13b207fb29ebf99", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -500418,7 +500418,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-http.no-redirect.http.html": [ - "f17fc3a764c9d867625041da5cb5fa957d2c02f8", + "d5c7cb27d19683295f2af1ef35e7aa3f8deb097e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -500426,7 +500426,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-http.swap-origin.http.html": [ - "4c8d0e36e703babf70bcd0b9ec53f8a52ae1a7fa", + "c98ef613a08402823a068733cbd300f4795477c7", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -500434,7 +500434,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-https.keep-origin.http.html": [ - "fced53dff4313865b2c6f92d99ff04dee329d3c3", + "a95d09c8870f63b392050664fac6cda75287842f", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -500442,7 +500442,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-https.no-redirect.http.html": [ - "b22aea4813ae1f69e7f9c591abf7fba7f26fabe9", + "587c5bab12174eee1cf6a1a5e873790b50815e54", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -500450,7 +500450,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-https.swap-origin.http.html": [ - "644c8433081e500f51bd837c040e15b3083d48b0", + "274764fa2c235336bccdc197c7266b6a4d8af2ba", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -500458,7 +500458,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-http.keep-origin.http.html": [ - "94a08ebbb5a58d066a631512069416a0ffb115cc", + "70c02b2d16b1ad8defda96347a140c53b0d81e73", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-http.keep-origin.http.html.headers": [ @@ -500466,7 +500466,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-http.no-redirect.http.html": [ - "66f91396d96669bf8b7da4ed86730125a3d51799", + "427458a2e793b7ff7b1bbc47ea2a23e7fce90120", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-http.no-redirect.http.html.headers": [ @@ -500474,7 +500474,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-http.swap-origin.http.html": [ - "b7fa7c76ea609ac2f255d04bfcdffaa2e5a543be", + "8028f64fe45efe37da64b67825b4ee795ab707eb", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-http.swap-origin.http.html.headers": [ @@ -500482,7 +500482,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-https.keep-origin.http.html": [ - "e5b324937629b23fc7dcbe328d1e5b3cbd6ef958", + "d408826f1f4a98b5094c6f242a8d181ea017b3ab", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-https.keep-origin.http.html.headers": [ @@ -500490,7 +500490,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-https.no-redirect.http.html": [ - "700e6caeafe15dabe1e528d2c52c33a7a77396ad", + "b19cd0eedf160193a7ba3f0058c0d34cb311b89b", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-https.no-redirect.http.html.headers": [ @@ -500498,7 +500498,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-https.swap-origin.http.html": [ - "287f7241a6335991bd743f015816593093d422df", + "bf9c77a8bc980082c009b93f440dece020049d04", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/img-tag/same-https.swap-origin.http.html.headers": [ @@ -500506,7 +500506,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-http.keep-origin.http.html": [ - "265dfdb2939bd5137f974f4a5d2eb5cfd5a4fa7f", + "e92926b38b00c789dba77ab58ac98b7e2c13728e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -500514,7 +500514,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-http.no-redirect.http.html": [ - "60a610c883b24f3a03a11692da05d2fde6526183", + "74d7ac544f51090ee57e5d033f7f0b3afcc39697", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -500522,7 +500522,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-http.swap-origin.http.html": [ - "249a08c37923977080dfc8ecd305a4970c61c9fc", + "4bcaf1209248e1f58eadc963e58980979e49e6af", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -500530,7 +500530,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-https.keep-origin.http.html": [ - "fea15e881c67214b7dba7269e67d343c2c71d493", + "50c9cf561263a8b3461f9634190cf80d257ffe88", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -500538,7 +500538,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-https.no-redirect.http.html": [ - "a0197fa970783f80b37fa2ce96099bf9afc51255", + "db50dc6d1119f6a65749c4393270122c519352d6", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -500546,7 +500546,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-https.swap-origin.http.html": [ - "53bd0cc76485c6dc470e19acb4b4a8e08b6f40eb", + "7cfeb5c009337eb359f8e3bb1f55122821387136", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -500554,7 +500554,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-http.keep-origin.http.html": [ - "be4c36650f3929d77b5d4d641e24e5982b8422af", + "b549702063cd9a4de1321c169195296d81029bf5", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-http.keep-origin.http.html.headers": [ @@ -500562,7 +500562,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-http.no-redirect.http.html": [ - "50e95a73b1337e641ea30e73aef594079ae5f8ce", + "c0c2fc2af422e90d3953b2191eb5ff582e57b88b", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-http.no-redirect.http.html.headers": [ @@ -500570,7 +500570,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-http.swap-origin.http.html": [ - "10d30d1f616b0313ed24dc9a4801d7f1c4a8a1a7", + "dba717bfa947f2144aa54394a6b6b3c4f428cd7a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-http.swap-origin.http.html.headers": [ @@ -500578,7 +500578,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-https.keep-origin.http.html": [ - "d4c1c0c94a9c2f22f3f12a4660d0814b26fe6b25", + "c9e87079833130200427d07fe8f5a7fcd8ea110d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-https.keep-origin.http.html.headers": [ @@ -500586,7 +500586,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-https.no-redirect.http.html": [ - "0b9510c6377f540ff0861e5a1117f79b0c952540", + "f6bce1c74248850eddac08f993024569500fab3e", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-https.no-redirect.http.html.headers": [ @@ -500594,7 +500594,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-https.swap-origin.http.html": [ - "59aa240ed3358e7dad0c88f4b4f54ebad94d18c6", + "ef2ae0cf9d0faed6044fdac01e52c486f5f36dcb", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/script-tag/same-https.swap-origin.http.html.headers": [ @@ -500602,7 +500602,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "73781b6bcf9d7df341e945e0b9e4d4a2ece3030a", + "28729ca99165b81802417201cdb4f2c100ceb0e8", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -500610,7 +500610,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "2f5d857e4da9505396deeb317083c2ea381f063e", + "be5637f2fc5ffacd514b99be5fca33672c08c08c", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -500618,7 +500618,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-classic/same-http.keep-origin.http.html": [ - "610a8f4262fc62b7e5d2bdafb1dc0a9bcc2558d7", + "a7b5b0136e7ef131a7423bdd6ac934fbbb511840", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -500626,7 +500626,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-classic/same-http.no-redirect.http.html": [ - "1ab66a526ff06ac22aff4ebc8133c3c78f6aa5af", + "695db86364b8e27eda09e695db240ada4ff0eedf", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -500634,7 +500634,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-module/same-http.keep-origin.http.html": [ - "b3f8bff71956b986fa178f7a0d7e5b22e88d36f4", + "406ac90830d788b5cb6678bcccb7969e143ae040", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-module/same-http.keep-origin.http.html.headers": [ @@ -500642,7 +500642,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-module/same-http.no-redirect.http.html": [ - "abf8e77cf4def5d870c732cb1ef0ed23699d56e9", + "b88f3397fd2035eee0618785b63408fd314f1dc4", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/worker-module/same-http.no-redirect.http.html.headers": [ @@ -500650,7 +500650,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-http.keep-origin.http.html": [ - "ad937bcc0c2d00dc71595d98964211a34bfe98aa", + "e40bd4e342cc5e030f04ae00fcd37b288ecfb66d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-http.keep-origin.http.html.headers": [ @@ -500658,7 +500658,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-http.no-redirect.http.html": [ - "8c6721e53e440e1baf091a74451811d43c5bcef1", + "c49c3dc09cba560f1f795ee97a1d0aa79efc37b4", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-http.no-redirect.http.html.headers": [ @@ -500666,7 +500666,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-http.swap-origin.http.html": [ - "e8564ee685da933c7947a99a6d79ac0b392f3d3b", + "2b7fb9ffc12770fc638bf6255a0a1405cb70475d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-http.swap-origin.http.html.headers": [ @@ -500674,7 +500674,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-https.keep-origin.http.html": [ - "b3b580d9ea7f51bf4195e0d34c7930a38e2f467d", + "8f72f1cffe314e2138ffefe4af6512e104eb88c2", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-https.keep-origin.http.html.headers": [ @@ -500682,7 +500682,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-https.no-redirect.http.html": [ - "53ef86a4485381c2da361e83e858fa282cc67084", + "ffe36051bda254cc439956c8adb6ee088e6bd390", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-https.no-redirect.http.html.headers": [ @@ -500690,7 +500690,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-https.swap-origin.http.html": [ - "d206f41e090917f2c5cdd7ba1abf1a550e8e5b18", + "b5d59d53c94d49ecebed2c39824cafd1caa607bf", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/cross-https.swap-origin.http.html.headers": [ @@ -500698,7 +500698,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-http.keep-origin.http.html": [ - "38d101103a4327144e3b863e22ce141c60e91f6d", + "08ebb4a92fd66ab94e9071ad0aa259166f8f64be", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-http.keep-origin.http.html.headers": [ @@ -500706,7 +500706,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-http.no-redirect.http.html": [ - "39870f731d56f3e976e20dd15f5aca22c8579b4e", + "e7871b2914cbbc87ba6679b2c43aa791faba9d4a", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-http.no-redirect.http.html.headers": [ @@ -500714,7 +500714,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-http.swap-origin.http.html": [ - "4d7c63bde8cd91a517502be30c017e0460085d4b", + "ce15f91f296332a41c314b5bc30070abcc0794ad", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-http.swap-origin.http.html.headers": [ @@ -500722,7 +500722,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-https.keep-origin.http.html": [ - "f6402c403f7347cc1f40cc547682aa28f9397a60", + "99f3a50e23f69cea2cee35c2b6deeaf70b025597", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-https.keep-origin.http.html.headers": [ @@ -500730,7 +500730,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-https.no-redirect.http.html": [ - "d4171cd2410c13396645e48fd456a64ff89ff74e", + "7ec67798b2137f4c6c52cfdf6da1c6c10284a796", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-https.no-redirect.http.html.headers": [ @@ -500738,7 +500738,7 @@ "support" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-https.swap-origin.http.html": [ - "4503188ed0246fa64fcbb589708a29ddb6575718", + "5aab485f6b0d64268e2f94f1a6c24438598e324d", "testharness" ], "referrer-policy/gen/top.http-rp/strict-origin/xhr/same-https.swap-origin.http.html.headers": [ @@ -500746,7 +500746,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/cross-http.no-redirect.http.html": [ - "5c816eb0a44aaa9eaa954e6cb3968492cc326386", + "8bd36a5aa4818315fd5d69d7c8b30ac5bba636e3", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/cross-http.no-redirect.http.html.headers": [ @@ -500754,7 +500754,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/cross-https.no-redirect.http.html": [ - "96d4eabbefa73d58b400df09baa686df21d3e8f9", + "9950fc28b3d7534f6a2fd20936e94144e4ee9397", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/cross-https.no-redirect.http.html.headers": [ @@ -500762,7 +500762,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/same-http.no-redirect.http.html": [ - "37f12599a1c12225788f286736414549dbec4959", + "ab02dc0a6657938953b6c5c945d935eb55103087", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/same-http.no-redirect.http.html.headers": [ @@ -500770,7 +500770,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/same-https.no-redirect.http.html": [ - "71313a690fa200bf0d3c1e6c297eabb46b9615a7", + "dd05577ab9dbfabd2c8af1e30f86aa9d4c35ded4", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/a-tag/same-https.no-redirect.http.html.headers": [ @@ -500778,7 +500778,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-http.keep-origin.http.html": [ - "83475de46f560cdd1840f9555bc1e928ce25514a", + "ff238394208b8b1bb7d336eb6d2dfdd1e6680ff3", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-http.keep-origin.http.html.headers": [ @@ -500786,7 +500786,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-http.no-redirect.http.html": [ - "4bd1b375963ef7a6a5b1ce3a07cd7545fe3d1d12", + "e42c5761ed7c9c71867accee62a43b2b3da2ff57", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-http.no-redirect.http.html.headers": [ @@ -500794,7 +500794,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-http.swap-origin.http.html": [ - "832acef5b5f4d8304f1486e68ff588c0b1441db6", + "126f54cb14884f0f66f2cb51af2388ffbb018f43", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-http.swap-origin.http.html.headers": [ @@ -500802,7 +500802,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-https.keep-origin.http.html": [ - "c1a9a94dc1239972ec72ea05e324b878203a035d", + "c09c47338610c74bb21510c204e83023a89cdef4", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-https.keep-origin.http.html.headers": [ @@ -500810,7 +500810,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-https.no-redirect.http.html": [ - "f77455b2703615fa9d5b8789b6950c041f3f630d", + "f7a88fb2c30ea5191aa8b2f9cca0b626f6de9bea", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-https.no-redirect.http.html.headers": [ @@ -500818,7 +500818,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-https.swap-origin.http.html": [ - "d1060c6544e8a78f7aa9916528c763483ea8b016", + "4dc3dcd9e4b22b3524b696013c61b7d370616550", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/cross-https.swap-origin.http.html.headers": [ @@ -500826,7 +500826,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-http.keep-origin.http.html": [ - "e29af406d7335d30ba2c5b507a23a08ab533f027", + "950e6e2196594b9483c944ca83e1737208fcc71a", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-http.keep-origin.http.html.headers": [ @@ -500834,7 +500834,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-http.no-redirect.http.html": [ - "bcb14d5902173d2eb08aa0599ed0180a6d1511fa", + "48ea74171fe9d5480e4a7ef60a5da8b421a3b084", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-http.no-redirect.http.html.headers": [ @@ -500842,7 +500842,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-http.swap-origin.http.html": [ - "b7b24f5c1068f6bd6842cca5b72e91f7dd1569aa", + "67cdcec01304c6e97c29f4c18f511ee815bb53c5", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-http.swap-origin.http.html.headers": [ @@ -500850,7 +500850,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-https.keep-origin.http.html": [ - "81493ee9d360da2cf62ac27219994b2ccc04a0bb", + "d909cf5e125897eabb1948ce8048a31f687feeb7", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-https.keep-origin.http.html.headers": [ @@ -500858,7 +500858,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-https.no-redirect.http.html": [ - "6a29be40643bab6a1d310838c67e477345bf53bd", + "ffec6a01d82762ef2892e8dadfa88a67eb1e582a", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-https.no-redirect.http.html.headers": [ @@ -500866,7 +500866,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-https.swap-origin.http.html": [ - "87c56c603e6ff4d9cc82848b18614fb3c51b1814", + "66b00d6e08c0f98aa1dd13b23d6e317795b02f02", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/fetch/same-https.swap-origin.http.html.headers": [ @@ -500874,7 +500874,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-http.keep-origin.http.html": [ - "ccff3d5edac4a7ce65ea3027ec560c62e91bd6e8", + "71149cabafad7326fbb5f93a83a081269f79e633", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-http.keep-origin.http.html.headers": [ @@ -500882,7 +500882,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-http.no-redirect.http.html": [ - "5c34320a6a614877694d028e115e19b49be175d5", + "1ec17228f36c0c7e422a436624d2460c474631af", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-http.no-redirect.http.html.headers": [ @@ -500890,7 +500890,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-http.swap-origin.http.html": [ - "be3ad9595099d53b478f4bb6df0eb430e7cf55db", + "3df617bfcd79ce2d9359aa1c494857ec42f5006b", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-http.swap-origin.http.html.headers": [ @@ -500898,7 +500898,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-https.keep-origin.http.html": [ - "4b15fa4a5f4f93c6df3e88607b83b5e63cb321db", + "dc644137b3a739185b274948cd55e473c79e00b4", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-https.keep-origin.http.html.headers": [ @@ -500906,7 +500906,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-https.no-redirect.http.html": [ - "e385c68fabf73bf123a6bf7a905940bd053d827f", + "79b69cb07555ca421d43ea5b4501304a8e2be7ff", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-https.no-redirect.http.html.headers": [ @@ -500914,7 +500914,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-https.swap-origin.http.html": [ - "2d1b833a89645c83dff3e233af31d8b6ad13464f", + "4b465a4934aedae7fcf2a51446f282edca2c8185", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/cross-https.swap-origin.http.html.headers": [ @@ -500922,7 +500922,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-http.keep-origin.http.html": [ - "1b0b5dfa76e74706bd107a2254fb457bbc2ddc48", + "ed1e4d412af0970a5196aa750ea0446781b5d0d6", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-http.keep-origin.http.html.headers": [ @@ -500930,7 +500930,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-http.no-redirect.http.html": [ - "2359faf8082600590475376f09b27d6fed5fbdfc", + "bb569428037c4a14263ff4901a5679e50e146731", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-http.no-redirect.http.html.headers": [ @@ -500938,7 +500938,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-http.swap-origin.http.html": [ - "628bf7c935737931cbda4c2e249aa47df4a09862", + "f87100f6884e8b62f6b35750f38a6c15a3e5c2ac", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-http.swap-origin.http.html.headers": [ @@ -500946,7 +500946,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-https.keep-origin.http.html": [ - "ff53d09be61e72b81e122ab6d151ff34776a3b56", + "204145629c2bb82fcbe9ae209fa5ccaf6cb6aab6", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-https.keep-origin.http.html.headers": [ @@ -500954,7 +500954,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-https.no-redirect.http.html": [ - "4e5d310d933335cdb98711e3db1362c15192d597", + "0edb5bcf002f77343cbc978d90d6154f97e8067a", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-https.no-redirect.http.html.headers": [ @@ -500962,7 +500962,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-https.swap-origin.http.html": [ - "8a2aaf9a7f06ad5c5ebdc18f2d567f6672d97243", + "91528cb34a980bdf308f45428fa5fd3fdebb9883", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/iframe-tag/same-https.swap-origin.http.html.headers": [ @@ -500970,7 +500970,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-http.keep-origin.http.html": [ - "13d00be71d25e994a8cbf39106bfb9cae82638f0", + "02d8620cf1aacafcf71f0ba8a3828ee5b0c3d155", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-http.keep-origin.http.html.headers": [ @@ -500978,7 +500978,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-http.no-redirect.http.html": [ - "b391ba07f32214342e9a871e2252d3029a0af7e8", + "2c3b70e7bdd65f1363f5b64da91c18bdfefb3b63", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-http.no-redirect.http.html.headers": [ @@ -500986,7 +500986,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-http.swap-origin.http.html": [ - "f0a3a42cfadb6a6b155f89da12eea79734967247", + "d9c3e50948d7219e188c910b59a0f1c2262696cc", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-http.swap-origin.http.html.headers": [ @@ -500994,7 +500994,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-https.keep-origin.http.html": [ - "897a84e2e26ac1a96fa0f97e3fff587a4d33e289", + "d5cc8bd030955565a6336854babda124ce2db4bf", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-https.keep-origin.http.html.headers": [ @@ -501002,7 +501002,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-https.no-redirect.http.html": [ - "99cad1b485699c8d53f47efda32688417bf78ca0", + "4fd10e8950afea75d6e7c6409a2011ec45bc0fe3", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-https.no-redirect.http.html.headers": [ @@ -501010,7 +501010,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-https.swap-origin.http.html": [ - "42c2f224d5bc1ce432b2b626ca7ffa192048a076", + "76df80d59b041efff766d9a775928438b97ca523", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/cross-https.swap-origin.http.html.headers": [ @@ -501018,7 +501018,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-http.keep-origin.http.html": [ - "75cb2d163e17fc0983e34d52177fa7e2175b3974", + "af4a533a048a01c6794ae8727ae7b551eb7a4e29", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-http.keep-origin.http.html.headers": [ @@ -501026,7 +501026,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-http.no-redirect.http.html": [ - "8b37e8fc3939ec41e069ebf913c2ffd9c0f42532", + "eaccd60742da33eaca21b26968882fecdb3af328", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-http.no-redirect.http.html.headers": [ @@ -501034,7 +501034,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-http.swap-origin.http.html": [ - "f8e6582bddfcdfdb4fed3b529d966a752c1fa1d7", + "13963b209c9272136cb922b2d47d37afa26c6697", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-http.swap-origin.http.html.headers": [ @@ -501042,7 +501042,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-https.keep-origin.http.html": [ - "77b58ce195d7c74452951703c4e1151a14f78a52", + "e35988d7840fed1eff562eb5e9c3d5b36f813ca9", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-https.keep-origin.http.html.headers": [ @@ -501050,7 +501050,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-https.no-redirect.http.html": [ - "963f8a370a5fa900bd2b8fd7628b7dc8fdc0444c", + "9817f03974937604865e347477a96bc5cb75fe3d", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-https.no-redirect.http.html.headers": [ @@ -501058,7 +501058,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-https.swap-origin.http.html": [ - "920b578cdd6d65c57c6e4849bde8261bfbd5fa19", + "3a1d7e3577603b0addf937df99d2bb7654dc6dd7", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/img-tag/same-https.swap-origin.http.html.headers": [ @@ -501066,7 +501066,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-http.keep-origin.http.html": [ - "26629a29c6d1ce567ecd474270f554fa1be13991", + "e397cf3d436231858d404410d5808c4df71d6097", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-http.keep-origin.http.html.headers": [ @@ -501074,7 +501074,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-http.no-redirect.http.html": [ - "98da011b1092832eae48c8779bf998bb003b9547", + "8b2ace56b5a16adb17436a7ffdb4918c90f74e9a", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-http.no-redirect.http.html.headers": [ @@ -501082,7 +501082,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-http.swap-origin.http.html": [ - "141f7f55e84d337870f9c2e1e0941aa8ae82a3da", + "5dfcc70a1a6f10b7f56d3b0373715afd334338e9", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-http.swap-origin.http.html.headers": [ @@ -501090,7 +501090,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-https.keep-origin.http.html": [ - "b3cd9332d2fcf209a2cede1faefd656e030efe32", + "7b2e0b662fb4231c7683323aa594c795ab666dce", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-https.keep-origin.http.html.headers": [ @@ -501098,7 +501098,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-https.no-redirect.http.html": [ - "09f9c7e1b011562627620871a22ad40d95ce65ae", + "9a235e6cee4c374ae767ffd23e471f59e48993c3", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-https.no-redirect.http.html.headers": [ @@ -501106,7 +501106,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-https.swap-origin.http.html": [ - "4cc455c2f5b35e05afbd05b38b1114be91976963", + "5ab8985eb1e2865f5dd2b72621d4d1b00f93a8bf", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/cross-https.swap-origin.http.html.headers": [ @@ -501114,7 +501114,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-http.keep-origin.http.html": [ - "60519bc6e8bef38cfedcf506d8aebeb7edf23895", + "73b8c926881c19ffea46571d41bd4630e2f8eb4e", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-http.keep-origin.http.html.headers": [ @@ -501122,7 +501122,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-http.no-redirect.http.html": [ - "b1a2dde0e7d6748832ddf34af5a6874b41e2b164", + "3c0ae426bf9e14ff495b1591135881641af5db73", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-http.no-redirect.http.html.headers": [ @@ -501130,7 +501130,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-http.swap-origin.http.html": [ - "cc741df381a43bdc98b6e634e53792c3ce7d2fb0", + "68142ef041b99da8e6dcf063f1b4a497949de3ae", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-http.swap-origin.http.html.headers": [ @@ -501138,7 +501138,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-https.keep-origin.http.html": [ - "0b825b17e57f49260abe200d9cf73a58a7545c0c", + "c9404817899c2660805d905c47b52099d0306164", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-https.keep-origin.http.html.headers": [ @@ -501146,7 +501146,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-https.no-redirect.http.html": [ - "36a19e73da1cedfc5d16d78b70441d0ab0e3ab78", + "cfdbf2cbf7a20e70e5bb0934f6e51812d5777160", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-https.no-redirect.http.html.headers": [ @@ -501154,7 +501154,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-https.swap-origin.http.html": [ - "18013980f38600fc8698bfb52644907352d00370", + "2ac4853fb91992153efa9c164f26cc29e65af9be", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/script-tag/same-https.swap-origin.http.html.headers": [ @@ -501162,7 +501162,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/sharedworker-classic/same-http.keep-origin.http.html": [ - "214d4f5a46bbe4576f9fd6a1128bb45b728ac6e7", + "49d26e679fc97ae21ec7e95c7186449984a79faf", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/sharedworker-classic/same-http.keep-origin.http.html.headers": [ @@ -501170,7 +501170,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/sharedworker-classic/same-http.no-redirect.http.html": [ - "2d86ea85b99e699dc06721e3b0dfbbcde399f6cd", + "5c0f3f2b5ab5f008402ffeaa18cae8cc9dc3c0fc", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/sharedworker-classic/same-http.no-redirect.http.html.headers": [ @@ -501178,7 +501178,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-classic/same-http.keep-origin.http.html": [ - "16d0292c82f73b29da67b5e1e297bd86849619f0", + "f9ae9653951c6b8b54aeed8abe5487d200eaae20", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-classic/same-http.keep-origin.http.html.headers": [ @@ -501186,7 +501186,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-classic/same-http.no-redirect.http.html": [ - "6b740f1184d32046df822c4a87a7e2b627e0c951", + "09fd2f147563ab032aa03b4bfaf1b3f4e7a00dc6", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-classic/same-http.no-redirect.http.html.headers": [ @@ -501194,7 +501194,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-module/same-http.keep-origin.http.html": [ - "0dbd2c92df8a35c33185e52fb3eff2aad7926e94", + "62948a2ebf7c3fce876b0b2b06936018b8846519", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-module/same-http.keep-origin.http.html.headers": [ @@ -501202,7 +501202,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-module/same-http.no-redirect.http.html": [ - "9de4cbc6dc00c4f1d294c09953761deb5da73d9f", + "67b2779869aa40131c75cf44ba02ef9325af77b5", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/worker-module/same-http.no-redirect.http.html.headers": [ @@ -501210,7 +501210,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-http.keep-origin.http.html": [ - "603a9aaa5f5e9b37143baf5b02f64f31eff1ef5c", + "f74607901dcdfece910a5418e1b92e45b6e33f18", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-http.keep-origin.http.html.headers": [ @@ -501218,7 +501218,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-http.no-redirect.http.html": [ - "fc55fed0d04c67667be8651fb583dd081224963a", + "28080172302293d886fae82539581e50952dc35a", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-http.no-redirect.http.html.headers": [ @@ -501226,7 +501226,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-http.swap-origin.http.html": [ - "412e37f10ffa1d64f93a73805828f3843e4ff0f5", + "cdd0e6d3685c841036712b24704c53f79111f471", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-http.swap-origin.http.html.headers": [ @@ -501234,7 +501234,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-https.keep-origin.http.html": [ - "dbd033f7be46dd08c1759ed98dbf4a809feb2b3b", + "d931133baae8849a4859ad4684a62750d11932de", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-https.keep-origin.http.html.headers": [ @@ -501242,7 +501242,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-https.no-redirect.http.html": [ - "e69f76eab6c04d80f50f162710be893b7e6a00f8", + "e1d294af2d0efd838d4be050fa942a136430e6d9", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-https.no-redirect.http.html.headers": [ @@ -501250,7 +501250,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-https.swap-origin.http.html": [ - "36348b46a2052f13564ba7bfa10467e97b360e26", + "81b2c34a3a36a13e040b4ac7683f1d5742c774ae", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/cross-https.swap-origin.http.html.headers": [ @@ -501258,7 +501258,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-http.keep-origin.http.html": [ - "bab18f65504e961e289f85b8f17235c09694b326", + "7f64858b85a634f9b40b1b1949fa4b083ff0f2e1", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-http.keep-origin.http.html.headers": [ @@ -501266,7 +501266,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-http.no-redirect.http.html": [ - "ad9fa9f1cad2982d81f0bc2cf3cb0d8480360400", + "4bcbc0ddbda5605a217a6e4198a2b9f8348eed6e", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-http.no-redirect.http.html.headers": [ @@ -501274,7 +501274,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-http.swap-origin.http.html": [ - "1be3fa02a7c63f5d192d05a19d5a159b66bd5c94", + "895ca00acc026fe7aaf9c26e592f70a8a69ab2b7", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-http.swap-origin.http.html.headers": [ @@ -501282,7 +501282,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.keep-origin.http.html": [ - "6e367a23417f50dfb94022c526ec21078946b4ff", + "a12c1c9e70ba6027571932375823421c2c43879e", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.keep-origin.http.html.headers": [ @@ -501290,7 +501290,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.no-redirect.http.html": [ - "0bd6a160c7d23a38cbd660faa57e10023cc45bae", + "eb85824ac9ed5d0e991209442352d155f37c40a9", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.no-redirect.http.html.headers": [ @@ -501298,7 +501298,7 @@ "support" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.swap-origin.http.html": [ - "3aa3f884ef46f693da0c71e16867766eb5bf7d8a", + "0edf4ff90e0dfaa55acf881f7f51ae5299c61622", "testharness" ], "referrer-policy/gen/top.http-rp/unsafe-url/xhr/same-https.swap-origin.http.html.headers": [ @@ -501306,4743 +501306,4743 @@ "support" ], "referrer-policy/gen/top.http-rp/unset/a-tag/cross-http.no-redirect.http.html": [ - "7b76180b1280f6a33125b03fce289bdc75644953", + "911f16d5eb0a380d9872009e72c1dbf37785ec05", "testharness" ], "referrer-policy/gen/top.http-rp/unset/a-tag/cross-https.no-redirect.http.html": [ - "ead7efc96337c66ce0e2eee97bfde5fe0fe6194a", + "9d8064ff8824f76d39783e5ed33b44cd4549bdef", "testharness" ], "referrer-policy/gen/top.http-rp/unset/a-tag/same-http.no-redirect.http.html": [ - "0350e03597cafb7582f73dc588d416ff72bd1e4f", + "cdaf18c1d258ca92b0003c73992750caacb0f171", "testharness" ], "referrer-policy/gen/top.http-rp/unset/a-tag/same-https.no-redirect.http.html": [ - "be8155abc71a036396917321e18c17726eb740b2", + "9a6c2b43a8b2586909c04037ac3f739f48f8f28e", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/cross-http.keep-origin.http.html": [ - "d6dbf7c38f52cfe136a313a225452e25fe9582d2", + "7fa2a77de9ecab2667301d865f73b507f56ce2e7", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/cross-http.no-redirect.http.html": [ - "d6b7b1d4b2303aec7eaef620e9573a827b4f6d11", + "bbf1496d07d2e4f04840b7cca2b2f867846b2d10", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/cross-http.swap-origin.http.html": [ - "228bac96566b97d482a3a0c209c8ffd23398be51", + "989c7934ed037417ddd3b30cfb0a1c02a78b427a", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/cross-https.keep-origin.http.html": [ - "23a5dc696034e3ed1b4aa9612befdde70ceffa32", + "7a596e7f8067e35bb985d23f7aa9aa31432538ff", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/cross-https.no-redirect.http.html": [ - "2b950c4a6817da9151e8257f3dd0a9ebfd733253", + "bba5c2a55a730992c6d35c94a3459f4f6347b276", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/cross-https.swap-origin.http.html": [ - "68d8dddf59d0f84badd8a98bfd25f1123128676f", + "867e64067baed1620991e2d78539b88775bbba65", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/same-http.keep-origin.http.html": [ - "68a2919245a5a9af207ff6e133ad2ef2b79663d8", + "5e004ab58926c21d8a814fc0d6c99f3aa5f2e390", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/same-http.no-redirect.http.html": [ - "9786e115f4534b5e06316dd5f66979ea1331e25d", + "94176020e8685afc8595bf5f877d23194f98bf4b", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/same-http.swap-origin.http.html": [ - "aeb97a127123950647fa69cb3165a78046a741f3", + "82b9de5fff3968b9f7a48afab8d69d3d33849cdc", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/same-https.keep-origin.http.html": [ - "27bf0fb382512b9a19f1b45c65938ae91d7b2520", + "20be1f2f6568282fc23a9ebd44aa84f7582c68ac", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/same-https.no-redirect.http.html": [ - "f2de2eeabfa438844b97856c9ea1376e1364524c", + "244623b424cd74ab05eda215488f391874e38f2c", "testharness" ], "referrer-policy/gen/top.http-rp/unset/fetch/same-https.swap-origin.http.html": [ - "2f059b49d6c0a9dcc9d9acb82472051ac2e71ce2", + "fbcccb86bfd334a720399e7c0ca4b701326c2c14", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/cross-http.keep-origin.http.html": [ - "51b796faff483aa283c8dde74d464f1d3bcdb66a", + "d2ea91e2d70ce9023879fba6c5e8378166966a7f", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/cross-http.no-redirect.http.html": [ - "ae910ab09dbac0a7d233294f4181b11f77592fe4", + "1ce5e1167c3b1695e83ec05a38d8e5ef8e067910", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/cross-http.swap-origin.http.html": [ - "6b96a09c17948d56e14b645c43754af50052bfaf", + "afdfbaa439267de54b580f58e57906c942e5deb8", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/cross-https.keep-origin.http.html": [ - "89eb976029d84b8887f4d299b7b1c6c378a15f4c", + "76040acbbdd655cd789937a4b9d058041bf77407", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/cross-https.no-redirect.http.html": [ - "d099040c32c19bfe2fcc12a459f28a6d60c798ca", + "0f31d22b62675ea623ab185463abb80a81d45f27", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/cross-https.swap-origin.http.html": [ - "026635498c02397a0d2b8666219fc47bede7b310", + "41626c4de9873079e97655e625f6a90fdeb940ce", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/same-http.keep-origin.http.html": [ - "a88a0727bf671469a2d33f99c869a0d02fbf8f6e", + "a0252bb469879486bb8deae6d7b0bbe4386755f9", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/same-http.no-redirect.http.html": [ - "04cc2e35ebcbf0061e62dab71a1ae4279642ec57", + "1c1193812145543a853ae0e1314a8d596c906376", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/same-http.swap-origin.http.html": [ - "c877963cb9afd648229b8b5ff6179bd0fb2cba4f", + "764ffe53f4bb290ef7057479a85abcd05f4e43b7", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/same-https.keep-origin.http.html": [ - "5a1af89398747e0efdf4265d8b9b79ce91cbf1df", + "5cc8685d8d72503700921fea1114a382cbdd7efc", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/same-https.no-redirect.http.html": [ - "4c9fb03cd2b73cf193f3434121ef236c4353def5", + "4743875860b357c35d92cc67cfce9d9c6fd61682", "testharness" ], "referrer-policy/gen/top.http-rp/unset/iframe-tag/same-https.swap-origin.http.html": [ - "d9ab586df6e6e3aa449ae6fae082f670c9b9612b", + "ca673fd821e153a13c7e6ee24e0dd6de4f718036", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/cross-http.keep-origin.http.html": [ - "9631d810efd2c0b2d7127ce351e37a4b5dee9d8e", + "b9ee419b2c510ab4b97057a424ea8f41632b7469", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/cross-http.no-redirect.http.html": [ - "6e03cdab423332817281306be15546db7fcbbbe4", + "95e968cd67d788beebcc10764623e37ee9c580e7", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/cross-http.swap-origin.http.html": [ - "f3ccb1f50425bd99ef3a968dfa6d59571f0c4db3", + "8eac9af58b6e08eb38826bafd7157ddff927200a", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/cross-https.keep-origin.http.html": [ - "27266df1e4758381e35767c4ae1c5a6852eb6947", + "6483c72a3e2b719bf3266b411e6e74bb64709200", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/cross-https.no-redirect.http.html": [ - "7299286879b5e7e3204f8b1e885cf13dfca3d1d5", + "3f32c6b4f9c7d8505cd5c03761117797e655f0c0", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/cross-https.swap-origin.http.html": [ - "53ae37b0509db25a84feeedb79397677251f6cc1", + "1dfd817473f4dfa606510cef5ea76fa62882b844", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/same-http.keep-origin.http.html": [ - "bb0fc8062f5cafe2f16560e03c5136b27e9050d6", + "4c6a93cfc28cfb45840312637e01ad2b705afc19", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/same-http.no-redirect.http.html": [ - "6d4ed57e23c2fb495d56d641c3316bfe9060521e", + "c0411dc5651e9986d6baca189fe8f867d780b7ba", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/same-http.swap-origin.http.html": [ - "719a6354f27201757448d7b00d76450888ff269f", + "d67e02ba7e4703256c39009d884822f07a2279bc", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/same-https.keep-origin.http.html": [ - "c39fdd14a4409a3f9cecc4a616cf55460f1c870c", + "6e90c0f4b8c0e21fab3eeda8cf8679c8b4c64190", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/same-https.no-redirect.http.html": [ - "d594f8b75eb7c4c150e52cd933152f0064d67ac6", + "9f91b2485eef9d3a97ea0d8b0b5e4ba4c6de0d84", "testharness" ], "referrer-policy/gen/top.http-rp/unset/img-tag/same-https.swap-origin.http.html": [ - "2fbe12fe8a8292d11e8d95a0a8ea9c99d44fcfde", + "138f3358bd726c42329dcbb1391d714fe8cb723c", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/cross-http.keep-origin.http.html": [ - "2a587ca4b11f08295a64404098925575b885f7d4", + "78ece0b19b8cd9e61059750f5a64d1f1d2425f64", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/cross-http.no-redirect.http.html": [ - "d0be10f9bcd922d7c712c91f8aa63e88b01bffbb", + "7a5879d9125157403db4d50ae6a9e71890e2d8fd", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/cross-http.swap-origin.http.html": [ - "85414f14de313adf52a8b1c0dc5090ffa43b64db", + "9d3381830e49b0000fb45285c87f81def3abbca2", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/cross-https.keep-origin.http.html": [ - "ec3dcdea3417d91b5dc59a42982a15c285d9b3b6", + "55e030b820dc91e3e8af2e662a9756b88af25042", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/cross-https.no-redirect.http.html": [ - "196770f8da688af4acbd0cd2fcbc233efae50cb4", + "3827e7a5c51bd00e844053aad53d80472fb2165d", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/cross-https.swap-origin.http.html": [ - "151d87662ab606881613e0cf9e06de47b15612d6", + "f767e02e2f049824443ec1b8ac45bd4a99b0f2d7", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/same-http.keep-origin.http.html": [ - "c186fa19693386ae0dca6d05638ef11b91c6bed4", + "0c2128b8c165e4cce9420cd51ed0b8a4d9a1c5fa", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/same-http.no-redirect.http.html": [ - "d0c49af446fe311605b061700e8a0582acdca03c", + "56ba08f9a4b033c831e255ecb57291763edd6ec8", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/same-http.swap-origin.http.html": [ - "594be914a131f43b828a88b58f6824a039deb2a6", + "8d2bb23f435c5d8f82e92bdfc95a5fcfe991da7e", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/same-https.keep-origin.http.html": [ - "f0acef6c59e420274449f9ce018bab1186c61575", + "b6ac13a209828872af809d98b1e001da6722707b", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/same-https.no-redirect.http.html": [ - "569f8c1ded69f5bcd7030c0506db009e80f01c07", + "9f2e599719c99e931f2efef7fcbd000a56c1a842", "testharness" ], "referrer-policy/gen/top.http-rp/unset/script-tag/same-https.swap-origin.http.html": [ - "c027bcd884daaa9a899cea93af2d9526416d6a3b", + "8b940c905e97d4ecff62098c05f0570bbbd8f280", "testharness" ], "referrer-policy/gen/top.http-rp/unset/sharedworker-classic/same-http.keep-origin.http.html": [ - "6e6160aa74a81e72b92e65b33a363987882918f3", + "1f4d8c219fef6eb9a2c4c738afbb9b0c24c22279", "testharness" ], "referrer-policy/gen/top.http-rp/unset/sharedworker-classic/same-http.no-redirect.http.html": [ - "03b0a5ecd0c9cdb87712ddd06c335b17acf47acc", + "8cfd6e34217d415ee1ec505bf495866dc1d60123", "testharness" ], "referrer-policy/gen/top.http-rp/unset/worker-classic/same-http.keep-origin.http.html": [ - "9c1caa904e3b0f7b47ad7de330309af282316caa", + "6fc428e4dd5f2a590ba46a58dd2a767f9fa3bca6", "testharness" ], "referrer-policy/gen/top.http-rp/unset/worker-classic/same-http.no-redirect.http.html": [ - "954ed8fa62a7dddc88f227cca83512cf6c2fe8e6", + "1609876cd6eff6f3511f5988bd353090a487b475", "testharness" ], "referrer-policy/gen/top.http-rp/unset/worker-module/same-http.keep-origin.http.html": [ - "dd8d5e5810468a9853d033dfd481b8527333f89a", + "f1e900f684aacdf8c17863dcc1a1797a67b68a21", "testharness" ], "referrer-policy/gen/top.http-rp/unset/worker-module/same-http.no-redirect.http.html": [ - "282912b7da492b02c31e60eecb3891756976e555", + "ba6fe6d2e21e953eaf455fc4be9291766ea2454e", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/cross-http.keep-origin.http.html": [ - "71192894ceabdaa457b92e64bf9e6eb955b4d158", + "4b2c48698ac96cefaf563386a7083e286363d82a", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/cross-http.no-redirect.http.html": [ - "60033300dd752760cb031a36ffa55fa67c674a16", + "9a7052570782c8d15072e53ce091dd2783356e95", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/cross-http.swap-origin.http.html": [ - "be62704fe35525072c06941485f54ec4fe40ad2d", + "affed7867a0c7d79f0c2320a1d47abad70f7b6dd", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/cross-https.keep-origin.http.html": [ - "7d4131664e85e23dd649d58be46b68d6a5eded3e", + "70893f732ee70ab5083f956b14796fe8befbe565", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/cross-https.no-redirect.http.html": [ - "84e65d398a13ba0ebb94a4c2644c39ab9a38d2a1", + "b51c293adfac4d0b9007d913ef290a18a839d83c", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/cross-https.swap-origin.http.html": [ - "1b7e54f4ff6066ed54bf63537ff595c601bf9367", + "242a50ca8cef872630eb1ca8abdd036ec75e3323", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/same-http.keep-origin.http.html": [ - "9f3d16e85d2fafb49f8797b96444ea6fb176b518", + "e48d5780d19f20d630aabfa5356ed9d61aab4c98", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/same-http.no-redirect.http.html": [ - "40cd238de98beb11dcf933072ae100cf38c8b1a7", + "2a116be07770b5247d8bf50531e50f80144721c0", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/same-http.swap-origin.http.html": [ - "a912773ca20aa4724148a3f5a7ae1d00eb7ab6b0", + "6dbf270a389db0e4a530534388e01da7948135d9", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/same-https.keep-origin.http.html": [ - "b0eda9910fd947e6bbf40f3be1bc9c1139e4736a", + "840f039a2172835a862e71ab56b81150586069de", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/same-https.no-redirect.http.html": [ - "ecfc6a58475f6556cf93eb2b913fd8076fe0f86a", + "8a66808cf18b894f58a5b9422c15cc43f170bc82", "testharness" ], "referrer-policy/gen/top.http-rp/unset/xhr/same-https.swap-origin.http.html": [ - "c166e90808a46ce549c19ec7e918d55d37a1ce7e", + "957da8954e71bd5a18b34010e5aedba9dce4ca79", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/a-tag/cross-http.no-redirect.http.html": [ - "825868a0d4af5bcec99f9b311ec93236f477cc23", + "d95d029c4d160f2c598070ef8a3e4f450cd9de59", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/a-tag/cross-https.no-redirect.http.html": [ - "9a6f5e974fa9cf4dc06eafc24d0d25ce193302a0", + "f62a07ba69b8684acc9c56089f6f9d4fa64d0f2a", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/a-tag/same-http.no-redirect.http.html": [ - "476831fc95205364711c13ba29ca96e57ce60071", + "f0d9894ddb94b3a98dfdfa7a76f2f26e7ba820f9", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/a-tag/same-https.no-redirect.http.html": [ - "b1a8565526311a5f329fcb8e114c965f9775a065", + "883b64530ed7909172f4203efe7f34d600c559cb", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/cross-http.keep-origin.http.html": [ - "9cac2ec761e043a531ecedaf18330ad455bfdccd", + "8561f5837f619b9909aa39e0cc872345a281604b", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/cross-http.no-redirect.http.html": [ - "1ceb25c3f43e70a3e9f10ca1f5d70a1b22f65d10", + "fb453f9164a9e76dd1b57839bceeb894c23e3200", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/cross-http.swap-origin.http.html": [ - "5865d6b2e85f01c4de09eded2d165b069f351a9b", + "850adf2b801f0f2112c8785b13ba3ddb378ddd02", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/cross-https.keep-origin.http.html": [ - "9fd2445d62e29b8dd280b542632f8435a3210863", + "bc8a5d8cef7807ac611d597044a11b65f9abadfd", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/cross-https.no-redirect.http.html": [ - "e88bd9105d1121e6312f3fd6e305e5750918ccaa", + "4affb593312273cf0bda854d5d9f524830fc9603", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/cross-https.swap-origin.http.html": [ - "209fa3c48b08aef33061834e7c7c980a434ca1f1", + "9b61017ed6153326b25d94a50a4f61bd422caca6", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/same-http.keep-origin.http.html": [ - "6672b1eace00a88f73a43a7c1805f1f90ff6f3e6", + "733c5a5751213972017480f9e583c00397ab364a", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/same-http.no-redirect.http.html": [ - "ec17b1f121f7d21f96a5833d59fc3b6461a23778", + "4e95f1b7317106c4a4fc6f3e1e41a686e9192b1c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/same-http.swap-origin.http.html": [ - "040a9ecd15a613ce730974aa0aebea4e7e408e50", + "c24c8e289cc85cf70c686a5270ad0ccc16829b5e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/same-https.keep-origin.http.html": [ - "aead299f56e927d61dc66de23c2bbbc961bc4a62", + "23c032504ae738121cc18f03d9ccbf24c3603877", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/same-https.no-redirect.http.html": [ - "320ee1d1bb632d98888474585d92636b9e8f29bd", + "ced06c88a86e81a572bf75eaf504892ac800141b", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/fetch/same-https.swap-origin.http.html": [ - "c3fe91666ac1f7f54e9a9e646c9eedee1cd01c28", + "7dfaa1173ffd5fb20ceaf8d971c433936cf42d0b", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/cross-http.keep-origin.http.html": [ - "b29d9aa1c1fc40266041960330e4e34d7d1984e7", + "c35077e44edbc5eb7c74404b22fd88ca6a6cfeab", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/cross-http.no-redirect.http.html": [ - "98f3feeaace03314c94ad69d604886f1c8b88e75", + "07d3dd8e8d4c1d175ab200b943530fac9fa82467", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/cross-http.swap-origin.http.html": [ - "5bc48e9a9d6274be28dcedf44f1cb11d071d42d9", + "60587faa741dfd9278e894c5f4dd478cb28a767e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/cross-https.keep-origin.http.html": [ - "d4ff0dadc7e9ea0ccbc3d0a059d940e0fe761874", + "3c1accd872434e32d66e04a0ef6a269495d411f5", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/cross-https.no-redirect.http.html": [ - "204e954e9263d9a50d7a0f3a86b519e4b88f2213", + "6bcf65289b275d046b7fe93a5c1da3f38888c13c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/cross-https.swap-origin.http.html": [ - "9f7eb31518b1cafba3499defc50c178c26579cb5", + "32a8dbdf5a81fea07553143003e1626aa514f467", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/same-http.keep-origin.http.html": [ - "7e9a21aa0a8ed363160f4bc8e7a46ddeb9e75b3e", + "4058df83edcffcb78b861c194b67dab7938b312c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/same-http.no-redirect.http.html": [ - "97e52fb10f8d74ea508603f6327e29316680f170", + "71926d873fc18ac1d8a4b2e33ec4ee40ea8abb57", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/same-http.swap-origin.http.html": [ - "af0cc4307ae2a6e93168b5f1930e1af0269dda73", + "9da696654eb694c9c4bc77a454bbc7d1d6090013", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/same-https.keep-origin.http.html": [ - "84467bc359512310739a43dad8cc0050370e551a", + "db8d0a65138df38488a4794d1925cdbdf638fd1a", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/same-https.no-redirect.http.html": [ - "fe2467f192a812ae7ca23cf115c18ea42d6c2a29", + "a2a6024d603c974203fad885d5eda2c8a995e6df", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/iframe-tag/same-https.swap-origin.http.html": [ - "0e4114535645bc59c84dd85b6ebe3ebe2421c169", + "1c7face5c0edc6c172c9e139fa775c6185916c95", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/cross-http.keep-origin.http.html": [ - "1c597c658dc502d833651b6e0e0e77313cc1c48e", + "5420401a5147c05c05905400795db30c62eabf07", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/cross-http.no-redirect.http.html": [ - "ad9d89802e6a7965d64a8c8924195af45553da65", + "0406d3b5274988b2d84a420b82112535153edf5d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/cross-http.swap-origin.http.html": [ - "5309e3f2814163ba1ff75f25c48f2440bd7bd6fb", + "8e75b5d505494dbbef667b33630d89d50665f7ab", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/cross-https.keep-origin.http.html": [ - "0d049ac6a827d9d649acdb266af83f61270f0974", + "3dce0c4ed7ed03d65f65879e792c66089f395e2a", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/cross-https.no-redirect.http.html": [ - "1eb934e59c45c979299af1101417cbd7a39aebc3", + "36879c3edbae83d8c07bd511e3e1c514503e41e1", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/cross-https.swap-origin.http.html": [ - "3e1e5f9a2af7227d5f127426b5ab00fda04b1b8c", + "0ace07b1fc07d4b389a16350ff3ac4bfdb51fbe5", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/same-http.keep-origin.http.html": [ - "8ec49cd9c463999abc8282a38a097a9cf096e6b3", + "28d2b6dcf70d7b69764e1f3e7274de856f15a7b8", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/same-http.no-redirect.http.html": [ - "85d6718db6240b9355a43119c30ff895f1747800", + "00542aaf0a369a2bdd72ed9cfc2234be41e4941f", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/same-http.swap-origin.http.html": [ - "476b90e447370ecb34acd36d9f3858f8f62e77bd", + "45696b4f79759ecffd14381f83233e6de9123a11", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/same-https.keep-origin.http.html": [ - "8199f56746621b5b1b5cd52a4447282dea73f20c", + "d9e2037110bf1465d6f11c17c29377c095cfaa0f", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/same-https.no-redirect.http.html": [ - "d21736b0595f558a9747caf3fc29c7eb35754499", + "00cf01ee39e0defd4f92da15e7d0e649e0b20537", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/img-tag/same-https.swap-origin.http.html": [ - "7980103efc0a323b3cfd15b3d10dba403b3e4c21", + "2ba482a7f5558d804a3633565ff296857de305a3", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/cross-http.keep-origin.http.html": [ - "10227a80fd815d8fdebc22c8a42a0d37ab88cce6", + "f0d25f6aec9460e71bd97a3e4fe29325aeda50d3", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/cross-http.no-redirect.http.html": [ - "eee16a3120b4db36cae55fa00c27c4284c89ad3a", + "03b247dd29eaac4054fca7462dc37ec16009766e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/cross-http.swap-origin.http.html": [ - "798b35cb334b3c459be95157f8c706fb708f2077", + "730ac91e27ea34b687621ebbff46cf6631937cdb", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/cross-https.keep-origin.http.html": [ - "c62baf1036318e6f71aff199c219db63dfac7bfa", + "08b59b82833add26f7025ef87f1db636515db288", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/cross-https.no-redirect.http.html": [ - "2193ab2d0dad12d78471be1224f518e82aa8d74a", + "123968f4f71ab1f1d657cf2b98f244902b3ee2bb", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/cross-https.swap-origin.http.html": [ - "cfcfef7529c583ea9576149b4eb6efcc6f94315f", + "63a0c36951d5047a3ba6619e84836b1b92a06a45", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/same-http.keep-origin.http.html": [ - "6ff96f572f32533c67dde7e86002b30f0b6f0dac", + "c8635e6d00a0af411fb77464458fe1c9dc3630da", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/same-http.no-redirect.http.html": [ - "287c94b48ae47fd1453cc32bc5a1e5afc04f7862", + "7f7c1aab9acba9978e049ca32f828fac590b4d7c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/same-http.swap-origin.http.html": [ - "5eff119a9034d9c66307cc3fd669856c849d9be8", + "0a7ef5b0aa649ce48a8d0f409bb82995697f8330", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/same-https.keep-origin.http.html": [ - "0a8d85687cab4f0dc9935a61f82f21a8c8265a33", + "7975ebfca606cf82d7ea995c8ec6f069e383e5ab", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/same-https.no-redirect.http.html": [ - "4b310dc6d79329e024927b4d10045e6d9ae7f9b6", + "e93bf7e9aab85e44ec022dc9db32476fef21fcdc", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag/same-https.swap-origin.http.html": [ - "feb3353ff9fcdcc2db7e7821f6233c00cf6319aa", + "486e6c3f2b086737bd97ad9c468b4e1b9b9c5beb", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/sharedworker-classic/same-http.keep-origin.http.html": [ - "a4943affd879ab6d62c277b332f3f5c73e5c1d95", + "4b2de7145298d173d5eda8e184fd45ba4238370e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/sharedworker-classic/same-http.no-redirect.http.html": [ - "8a4f62db32232fdb28133abf58dcaa8d75621c68", + "70c909edabc9a0dc90cb601161d420a161bafe42", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-classic/same-http.keep-origin.http.html": [ - "451b518e32e3cce5885f6a76e1042ec2f8e008c4", + "491eb5ebe8675213b007c819b8b2c9e622f30007", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-classic/same-http.no-redirect.http.html": [ - "7c9df1c6318b20e22e45cb76c5434b7ed97adcb5", + "264c2b2b3286fe08dd6e0ea4bc4b6f9a7dc8c408", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-module/same-http.keep-origin.http.html": [ - "3cab708f9b3a8525fc8e20dc9cb838ebf500b91e", + "a80db6050e6fd42992da03ced44c43e7009d696e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/worker-module/same-http.no-redirect.http.html": [ - "93fcde08e5ac3baaeb0e571eb8b795372d1ebcc2", + "0a1e56766c77d47ce0931758cd2315e5d272e52d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/cross-http.keep-origin.http.html": [ - "e555bca394eca8166ff13db69808a50e2bed6139", + "7d472a2c592255ddeec0e2aefb58be8da325d7f9", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/cross-http.no-redirect.http.html": [ - "776a27f16b2a075425e108b472a3f0373ffa4185", + "f276f4cfae172118913f82d5f8795f899352f858", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/cross-http.swap-origin.http.html": [ - "2a8826b510cc97ef4f0a8206d07f77f3cd8d82c5", + "a66e37d0d3c2e961c0015cf1d1eddc1fc94a28f9", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/cross-https.keep-origin.http.html": [ - "e530e58910b74fefbab3a7347de3e2a62e7eb050", + "485e389d06d19ae805924150d71b84230f5e2a6d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/cross-https.no-redirect.http.html": [ - "347858d4e0961bf560a5a8dddd0038fb875219b5", + "e6ce17b533904088efeff75d048d1f6967bb37e4", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/cross-https.swap-origin.http.html": [ - "92d6b4e701d1f9411b593aed0ff2d9c9508fbc1a", + "170aee6fadc0606e0f3675e12c9dffae87215ec1", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/same-http.keep-origin.http.html": [ - "4a4025c90e74db1514028110a8aefa4f9ac89700", + "fd06ec7e3a450b422c5500e74136f512ce67c29c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/same-http.no-redirect.http.html": [ - "6802c97b51b6a8947c0ab3e4a3af0643efe8e7e5", + "f7781f54bccd9e46f4b2135372e963f2c057fec4", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/same-http.swap-origin.http.html": [ - "eee53b0fc2e417d9e8c08cbfaadc892bec838315", + "6195157f8aded70fb57d4297768809aa5ba52596", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/same-https.keep-origin.http.html": [ - "a3e3a73a8de7bb8d3fbd43352787d5476ec6009e", + "f3c72b0bb22d91b30f52cc2e26c5ec7cc641fe6b", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/same-https.no-redirect.http.html": [ - "5047e9b1911d7f7916567a66b19417e4a7e96f22", + "4f7cd44023eda18364e15c49cf93ca562998b3a5", "testharness" ], "referrer-policy/gen/top.meta/no-referrer-when-downgrade/xhr/same-https.swap-origin.http.html": [ - "a7622186b701dc8f45722eed1a6552dba217b242", + "04f96300064e17b12ec9dcc85b213171e2154764", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/a-tag/cross-http.no-redirect.http.html": [ - "bb08e6adda78f8b9d669d9ad0d4747bf98530fe7", + "879a92dc310511003fa69dcb000ee8f25dd61586", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/a-tag/cross-https.no-redirect.http.html": [ - "e14f676b2781481531584f61772d026b50e6b7a2", + "2c9ad195ba2a7c8cc12bf1a30131cf8619e30127", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/a-tag/same-http.no-redirect.http.html": [ - "1a84ef38e55edd6f3e4fa50a293a4880dccbea50", + "ebf1c4f61786fdaeac5654693576c38c2a8ea206", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/a-tag/same-https.no-redirect.http.html": [ - "8b032e959e1a00a7819fa553da15d942dd8f1113", + "59aef9aeefac66ed7b8d8e1ce34a048c6c718269", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/cross-http.keep-origin.http.html": [ - "725100262bedecee63e8e907c4e627ca36ca1943", + "d8a89812f5704cf3377952c70de00b302037d390", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/cross-http.no-redirect.http.html": [ - "db3025ebdae305af930ba76ad2775c29fc767947", + "722f18087483457b9e554bdcad626f954413f50e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/cross-http.swap-origin.http.html": [ - "d476f8c1b60c3d3e4c7eb7f4784cb3207cd80d43", + "f383b2d53721154c1801ed5a691a535b67326207", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/cross-https.keep-origin.http.html": [ - "ead73b6f25f195c39b20f4681ccfed4e4f8fa66f", + "155c67135cae4b5d1349484b2f4f3b2fb55bf618", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/cross-https.no-redirect.http.html": [ - "fa8ceffe6ff7be68811dea4e1c0a99f42771fae7", + "bbc9416ab7533bfec2d96f8790e8a43bd222b9ab", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/cross-https.swap-origin.http.html": [ - "25caf44c75ae844682ba731233eb875f57223340", + "265c281baa0ac7c54bebca9b9964fbc142b3ebf4", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/same-http.keep-origin.http.html": [ - "bc7c35b3f4833ba7668cbe24803876dfed48291a", + "4017c03cefafd8216c5fb60f65a7613ea9c9ff16", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/same-http.no-redirect.http.html": [ - "d5a56542c5d36cdf00648407a1833059f1f85faa", + "dad1873988a32919827f77a315b027952f096fba", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/same-http.swap-origin.http.html": [ - "8a96d666699138016683f20c015f77378b07515e", + "e74fc6227783928b5393a306f87feeb75bfb7325", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/same-https.keep-origin.http.html": [ - "2b0938e2b4205ec6803d80ea0c8e49b9d7d933ad", + "ce881eb9fef0dc4890e6a61393f0f62981454ced", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/same-https.no-redirect.http.html": [ - "bafbbb5d68139a848bfa0b33d5ae8f3aef991d45", + "fabbbd21121b9451d0251c58029fb8c35b7fe890", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/fetch/same-https.swap-origin.http.html": [ - "4456a15d483842b88256e2bb684f1cfac968a5ba", + "bf43d43d5e544dfce445cb7a2792f024fd550ad0", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/cross-http.keep-origin.http.html": [ - "55444874b3f5f4661e8f051e0fda2553b325c2d3", + "0c7fac4128da31f36c7e4d6ce159cdeacc3c6452", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/cross-http.no-redirect.http.html": [ - "98e8ca5d75f85d965dddca6dcbc6c3e6ede45d08", + "f8b81d6c5acc51d825f3d2fccd149fb0ff4e3876", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/cross-http.swap-origin.http.html": [ - "d9c9bdb7875c93318eab1c43ee92acd2f249da10", + "9d74cdb6a36d029ec0310dfb09374e75640fbf1c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/cross-https.keep-origin.http.html": [ - "5cb0c8950122ab4dec9a331c3c36878286f09456", + "56ff426017ac9391b8633ff3092c520b2671fdfe", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/cross-https.no-redirect.http.html": [ - "0a135da73bfefadabd00b72c0dc0caf6015ad235", + "ef8c197637db6c34b07e49e0e2a2cf51b1ee002c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/cross-https.swap-origin.http.html": [ - "c03ea87c786b40166e169a3d45244464ce2e844b", + "478408137b72fbb7df663001ea1428571b34fb57", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/same-http.keep-origin.http.html": [ - "de7deba03f428842bf200bdcf8db875d276024c1", + "5401aaf7d3b3f43c018cec98e64d6d8d420d23ac", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/same-http.no-redirect.http.html": [ - "a84fdb7e1a07d7eb8a7aa237efb70a97cb1adb4f", + "e6f0b5d261e95a67c786a6bc5cc779a73b3906c8", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/same-http.swap-origin.http.html": [ - "3c55c5fc8e0d6d4de90885e4a2c335f123d7122c", + "40764e45643c1b4d5696390b1d7fdc15d309f247", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/same-https.keep-origin.http.html": [ - "3d1f9ff960535861524e30ad80a6fd017b37ec6a", + "c10031063f9fc82d6c4821b7e4b684fc9edea863", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/same-https.no-redirect.http.html": [ - "aed5c18d25eb3121d620a14f32c716ddf1980d62", + "f563a46125d85d37ab90417f9aa240b0f0f63117", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/iframe-tag/same-https.swap-origin.http.html": [ - "73ec3c417cb8312ca9a4ef6fd2042957cff905ec", + "ae9ca52976c41b7c31ae64278d92ce0fbbbd0a80", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/cross-http.keep-origin.http.html": [ - "bb546ba89461757237424792cb807ad9df121b6f", + "9d1ea9f839cbd4d89e3486071ffa7ea64a2ecb86", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/cross-http.no-redirect.http.html": [ - "3cbfb0bf7e2fd5b82539fe1297d0f5bfd9aa6654", + "dbe5de6b53b913ee675e04177c9155a4e0ce872d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/cross-http.swap-origin.http.html": [ - "ce09cb1e14e5def063d3c3346650801aa059e1b2", + "cd2e8423c6a93d5682f9372ce4d14418e5138ae4", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/cross-https.keep-origin.http.html": [ - "ece42cf99b65a9868f124e2916f44506182dd3cb", + "0d514cdc89d268ff77fc5bdc6a104b5daddc80b0", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/cross-https.no-redirect.http.html": [ - "5b9cd9fdf5b0fb4b9f7720ae5f8793c838307c4c", + "b38c93f408df7a1fbac7c57dc72faa8184bedfc3", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/cross-https.swap-origin.http.html": [ - "6bad60e7ec080f4c6ae7f3778475c097c79b2c60", + "0e2f607d08d11544107bbceeb0ecbf56a8388d14", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/same-http.keep-origin.http.html": [ - "1d65c6c46b2e432cf629f0172ca13bf063d75e44", + "1dca89af901beccada2076e9bf79ca1972217eb5", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/same-http.no-redirect.http.html": [ - "9676d02bf8cc8dedf1b809cfd73afbfe51cb58e8", + "0ecfe9ef09917eb88866d8c777e53fe9efc6101f", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/same-http.swap-origin.http.html": [ - "3e1d17b8393a58fb4cb13058c3e1abd789afc610", + "333a8993762e74e75da1811db1066a54941c506f", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/same-https.keep-origin.http.html": [ - "e746335e83e714c7f69526658335bb5a84ffc528", + "790cd4e41cd1dc8542febd962b36a2b0e26e942a", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/same-https.no-redirect.http.html": [ - "b5355cd168fe1d5c45ead5759851602e72c86656", + "9292db100839a7acd8f7c94c2cf4d7193735b4bd", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/img-tag/same-https.swap-origin.http.html": [ - "54ebd185be9b9e02672a82994e4c3dceb34fc47c", + "f5ec18260687fed76e5a7e32613c068b31bed635", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/cross-http.keep-origin.http.html": [ - "ebd17499a180ace510c2d06f447d2d91d9ecbf58", + "b840e4f2a0aef8fd4120fc343e2275a77d95b8d7", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/cross-http.no-redirect.http.html": [ - "2856881dafc6c044dedf960da559001cfdd927aa", + "534e529033dede69c9efb20a6c7d6bc75162f754", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/cross-http.swap-origin.http.html": [ - "d19393dc7c362d9247df88219b02147e5fa4318d", + "b8d2afe7109731ce6c5a1bc1c7d7535dba6af96e", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/cross-https.keep-origin.http.html": [ - "c5c5e96891ede998ea6e8532b89997a142b67072", + "b64bf9ea708927e02497a9984a0a66b593d31841", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/cross-https.no-redirect.http.html": [ - "bfccf50bd9c598241d62087333f5a6e2806d03aa", + "365b63113e00239da44c820ecd59bf7d46a568cb", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/cross-https.swap-origin.http.html": [ - "c99eb3d0d25821cd5e5c28c4a9ecc007a6613dda", + "5b3e1d3b706d5bf9890d10c4c89704fd38f1eaee", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/same-http.keep-origin.http.html": [ - "e5304ba9ef8c1a025228b9c24b590856c505ff9f", + "ee4673baba1ae5c67dbde18de6b32cbbb785f0d5", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/same-http.no-redirect.http.html": [ - "bf7791313533da7814e997e422456fd3379501b8", + "08b97cdae13a8ad0ac203afea069a7db5d138073", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/same-http.swap-origin.http.html": [ - "32cbdb379568accad4399b84756755b58ef48923", + "3cd2ab61106b342400a3a3fe4837c99940467733", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/same-https.keep-origin.http.html": [ - "10fc4f1b857ced2a431539cc95a085c34004a5bf", + "1d9955b8c02e80813b46a236e22dc675aeea5165", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/same-https.no-redirect.http.html": [ - "f8c5e8f2f48efdfe8eb40ae8372c7332bf367e89", + "bacb5c2d84570523eb32c5cec4da571d3ee1a190", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/script-tag/same-https.swap-origin.http.html": [ - "dd0115151078d6f91297b857b57b2299a838d7dd", + "c8500034e90db2faca0d1d8063b2fd418a1daaee", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/sharedworker-classic/same-http.keep-origin.http.html": [ - "98e4d99a7971be07e85409dcc2312356ab09023a", + "2a75be4f955532b710fe9149b3a908065bf04e08", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/sharedworker-classic/same-http.no-redirect.http.html": [ - "afb40f0fee930971e16d1d0875664b33d18275af", + "55d41d7ab42224670e2f3ee65d801fe9d0852860", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/worker-classic/same-http.keep-origin.http.html": [ - "a80ea70f6942f0e1096b12379454a853af9d5b70", + "0160add32748c5cb183df1fd9b20ae65e249ceee", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/worker-classic/same-http.no-redirect.http.html": [ - "ab662508f1344ade5c92ea291acbc7056868c97b", + "54e517eb2132e287ac77697f77120045b75ff21d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/worker-module/same-http.keep-origin.http.html": [ - "771d1d985a06fb4b6fc6bbd9102c17a421e97ea3", + "41447ff2ab875f764e3dddd86e39bca3528c3489", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/worker-module/same-http.no-redirect.http.html": [ - "f0392f3c5ced1d63afe0d0fd8b83bb3bc6d53b3e", + "288fdb4f85650d869a456e0e793ca3ced418ce8b", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/cross-http.keep-origin.http.html": [ - "e3b3c2a139998174af51b7f61ba254bc514eef7b", + "682e787b2a1d5b30360af21803fc8e500f273f5b", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/cross-http.no-redirect.http.html": [ - "149baa1e3b657d0d8f0ebdf1e06f461db77ccfae", + "cf072fcd674664e461c0a77c1c268821661202f8", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/cross-http.swap-origin.http.html": [ - "7944aad538d7d3b37b9813639851413478355b52", + "d75278d0a182d38944e345791f91b4aaef2def5a", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/cross-https.keep-origin.http.html": [ - "a34ab7cd33c263d315bebedf267eddd1641ac4e3", + "616b0f73288fc7c324b54c9737416dbe02c4a530", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/cross-https.no-redirect.http.html": [ - "cafd514f70378bc769f5eddae3f4402d852aa2d5", + "d710b2e974626e9f46c40f6e37e6e677a954f97d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/cross-https.swap-origin.http.html": [ - "48b1c0ade67579baeeea9207fafdae67d8edbcaf", + "8b978844e2516ac0a6f5ea8b04918b79bbdd856d", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/same-http.keep-origin.http.html": [ - "dbb9e89d33d9be800fadf4e27751eedb537f4c15", + "d8eb56a88aeda05398d5d8afd4098bc99eb98ca9", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/same-http.no-redirect.http.html": [ - "d6c4e1ac17cbae7e925d1b7baf881f1c40da64c1", + "875ddb2bdfa1c555f770d4d3c57275056da5bb2c", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/same-http.swap-origin.http.html": [ - "71d5f84da68c1b8f23f7a80bbceab257dfea4438", + "54983bda4146e1a7b3d62f837511c6e15fc315ab", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/same-https.keep-origin.http.html": [ - "9142e28d035c4dee551667fff0f02f0a12849113", + "9f312f52730d14e916e9da5781a555089ed930ac", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/same-https.no-redirect.http.html": [ - "3574fe1d77ac60ad37484a8bc31c454190c60ef2", + "62dcd079680bdc6baf2a17917123c222afdb8d48", "testharness" ], "referrer-policy/gen/top.meta/no-referrer/xhr/same-https.swap-origin.http.html": [ - "b43d26fdf854dac9c56a5e7d30346aa23b0f5dcc", + "bda85aa1a5a4b7ae817a4f7627fc11d13ffe5bb8", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html": [ - "2f9bf4948b7520cf53fc9f7e7caa0da2515adb2a", + "cb2416d1ba1811664f16a9f8461c917d2c35122b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html": [ - "b4f6755001f2a10d15936d9298e89f12b33e7c4c", + "bb2705df82101346c30cdbba08cd56735b781c18", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/a-tag/same-http.no-redirect.http.html": [ - "91716ed55006e7b81a5c937e5e2cbff1b949b810", + "e239f5116b3c65713ebc31b31186f7865fde2e7c", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/a-tag/same-https.no-redirect.http.html": [ - "13962b2fb932bcbdebe53cdf62830b9da5675094", + "66aca52e72f4f71c523eba3b96aa08523ecafab6", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "81fa0738dbfa9bc9782d3e80a0bd25e5d4fe3ee9", + "cbc8344fa4e3b940b2eac0536393721e9a67b1bf", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "8a97a1b11e647107307f70ffa1bb757efe8d437e", + "70a085dfe9824bafba39dcbbbce0005ce665448b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "51e3175054f0f8c419e06329efec9cb36a73b031", + "a6d82874a153bfee8c0ae5b8386dbfb61c15397c", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "eca42353d95d9913b79f9b3b2df558e498212c29", + "c5be9221fbd6f82fe5a611bba977711bd9cb0655", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "15a7becf78a7caee9c8a92ec5519cbe9cf29f7e1", + "7f91dcae39705e5352ca9e9bf49c0b542fe24d36", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "4f30a0f57d27aad8ce9a75bec3070da82364e4ac", + "0cac5d15b39f0514c66d9f3accd2395d2cf8b792", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "cdfc2f0941d8fdba532ff1c460ea51392c36e6f0", + "fb5d40554d0aaac8bec0642c7a9000aa36f9685b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "265e2b3f670c86812f7af6765c562cb96def772d", + "5551a46c19e59c11540001be74a8fd9ca66d08ea", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "71ad1eccab65b2144fb75bdd394266162694e87b", + "420cbf2e8058b5cf189e899b7f07ae7647093e9d", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "f3df4bc03bb7c5fdf923527e7f5102a66504d2f2", + "1938e64407b94850419108134250792d659a3075", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "f66c9a3a45f0a2b703aec20f57e5a505230f33c4", + "959079f10c52308732700cba50a82e7cfe71655e", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "9d713465967a5d80c4a5fb857982e8c843eb1c3a", + "b348511386a7c0194c52806260aab8eae3850684", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "1c6da90ba829aaa1befa5599d61fde6667787263", + "b8a4557f0e8b7064121c7caaa4bc65a05bff7a9a", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "ddfc94ab0910d1637b298cf1605d6b10220e2ab5", + "585a6ad0643163a1b8042b4c3f29eef854bd5c3b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "2d57b4d67170da04dbd4bf71aa6800e8a576970b", + "59b25e53097de14fe0cdd5837b60f5db52e32d91", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "9840fc2729d41348a82e5bf4d91e0803ae492a64", + "b11b9b46931741f64597e46585b7246bb408d639", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "bc4520dc8e3cc5cf07cb8854549024112b30b289", + "f472621e72d376aa5b70a17b37185c23f4f39fc7", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "7327dde1bcd721cd85ac3304a720a291c88dc943", + "1ff5e6faa460d9e94e74932218481f83ed194bb7", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html": [ - "db006065744eb2def4f961f385b8df938b6cf1f4", + "f5e8eafc3d62e3b6f73bbd956e50b9d4c910212e", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html": [ - "36d1ea734ea380ebad6afce1d6f5d76b50e80ded", + "21c4869251da16add104d725bedc552321f0de59", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html": [ - "adeaf62dfb388167d3de44b102c81869f028a948", + "4b84859510895b64bf7d44fa7338ff246dd36f5b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html": [ - "4e4272ed6974a0b5d2245635cd93000b2e08432e", + "60fab8aed6b9cf5e6d89f26fa0515081ef9700fb", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html": [ - "7768a9331abceac80ed38052293f533c0624c7ee", + "82f251ba2f10863c6dbbba3e2a72edacf0e1bf84", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html": [ - "ac17b11540c909245947675e1a670cd508680d4f", + "bad2a522c5adcc062695b0032688bffb0155744e", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "d3e69dc8e4c7ea74d452f4e376ad95d9cdc46a09", + "1f8564092dc84150a0b28bfec4d0580853692507", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "dc4ddf3577e9720d44abecbae3dcd3d81d75d82e", + "c019032100e9d76ad2f523d9626faf429845a538", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "e9fa7073b378a70bf521552d41a1a0122a7a49d9", + "3bcf5f028ede1bfcfd08230e0bcd5426d8b854c8", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "b8527ec9a73112d2876b5764d2ff47993cb4bbca", + "9e9f766bdc4f11a1b5d1801b0b42891d4963d2b1", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "7dd17572c465ca85df60502a968fdabed320829c", + "ae795f8e4be3f287047b7e9d91d9ae025e5ee449", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "3ebee1a90d64f3098085ff99ad31ce4b466a7eaa", + "d375d1816b05d00e8d5bca1a57471ad78805205e", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "509306d31287d777396040b21cb223093b1a5dfa", + "c1d6f1aefc1e21fa19645b28b9d902ba04209f4f", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "73d37a91bdfaec1ab7b309c722b20a2a1ecec934", + "57778a2027571c3df36d4c7482193835bae0289b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "0e283a200c9a9c059084e4e8f32787cc69fe2d66", + "0513896dd0340d201ecd5478654ea485fa2b9f23", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "74f45964511c53094772652b8985e606be8f1b11", + "a8cd85c76477ab816fb7f4e9770ba2367a382bc9", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "c2bcdb50927d59d623f00401effe65c61c832cfb", + "2de77f80ab8db5fc12aff6f7b69b11245be5cd18", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "74b653dadc3a67174cd276e61f2feafb868df0a9", + "a2807ff4bbe713e0071fd40613e572ca7112a400", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html": [ - "8a124ad779605cdc69699dd3528c0a6f2ca9d9ad", + "3a31579f8f4fa8c0a43716c3312dcce428a46543", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html": [ - "d8e48236ef78479612803faca52ef5b3a3698dd2", + "d52d043b9c187ec158777ffc4ea602154381fc58", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html": [ - "3b76a5af2db3d867461859dfafffdc40a6ac056c", + "3a59a9ff9fd51fa74a554eddae8ecd3e8b1040fa", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html": [ - "4a60422d6e7aed900b478ea6ff1512fa8d6ddf22", + "804c94b57895cec53cf7a14b0771546fb34f710b", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html": [ - "902777546da388bf2c6e054d8edb1e91aeede32c", + "f4b73bac544dd2c13a1685dc8822c1489b1cd2f0", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html": [ - "e01f28e6dea4712db8578082b96f31ba288e0c04", + "e1603819bfcc83f95b7eb9935407e78890d77ea1", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/same-http.keep-origin.http.html": [ - "58bd36352f8ee3e19eebd2f677f62d0339405e37", + "2ff3b7bc7b04645cc0db12acaf026e8b5d4e1fb2", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/same-http.no-redirect.http.html": [ - "a23a7e97434d5061a1d2cd6388d3dd08fc2102de", + "dc2e8b645aba9fed6b385448e444ddb87d499a77", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/same-http.swap-origin.http.html": [ - "9fc586f6a439bd6bbe7eeb2522201f585fb656f5", + "07f689762037e8a630d9b8400fc7963487904acc", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/same-https.keep-origin.http.html": [ - "6b7c3b0ddff0ae124e3b2af64f0db839bcc351fa", + "6e30fb4c157c3a8e0fcb878333848c689add4f77", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/same-https.no-redirect.http.html": [ - "4ff8f587140748bf4dd9bbd75e50b6c5c7163267", + "a8e5a94017215976a2118cd3f871b00c466989b7", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag/same-https.swap-origin.http.html": [ - "7473fcbea08973e309ee37d41613b1129e797772", + "40a8d05146dcf012f09786e83a7716eedf003f89", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "aacb86fc696c1e99d5b64739e1be925683a8dd03", + "250b2465c281ecbe99f7a51a9d26f35caa3bf762", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "4db199605a003a60a897e10181049c5fc0575718", + "bc4f919b5c56d2612d72c568966ba16703362245", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "2283ad9b3b75d87e0d2296a55d92768eb21aa6b9", + "42d190582efc53b570ac44dce8e0f88516338b29", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "c6df272901fbfcf7593e5f6c4910613365cf2d22", + "94dfe6cc3e38265834255836a0768b1f8647de19", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "4703eb9ec4a6683225aafb0468dd3e6dcc26b0c6", + "96139e7207b244869de74148d0d6395e2edc06bd", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "ebf282323e741c5b5d2f1bc42e09e36d28b78ec4", + "565a40ba18035e073ace9f64d3e0f61a20bbd1bf", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "14990ee5259261fc7ce6650474ed465e62351cd1", + "6c57ebcaabd26ed76414123edf38fd6115bbd0f9", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "f59130cb183dc3eb2f4a01b81a13873a75defba3", + "d59e005046e1d8e7c2f24233eccd80c219b62787", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "65aa00870fa206599b154c848a89063e2fcd2b5b", + "0d63e2f1e6cfce44b5b4361b09a3304e38dd83cd", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "ad6fc16271a44e86393a2c78c0268d757cedd900", + "e8f19f58366490a0b821af4936e8409dc4797b73", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "152e3ebce6b011de46aed59d8dc8520d6ce6c7aa", + "eb6b799f45770535b3bcda3c7098cf5353b2ab80", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "c2976879b82a73a097fb1a6af39a5bed0ca3eaad", + "1779d2e094b0be855c886edfc6db80322f079a5d", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "0994e0f587348654db61b378f7b94441001171a2", + "aef8bff3f3f9b238c63e1e3933ff424f968af7b6", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "7dc61a84f239b70fe7c393000d511a2de3914eb9", + "8ae5d68f77b5a58d3df392c0d73e91161a2249b9", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "4cb23fb9e4db3af35776e240010be073fdf72c19", + "970bbaff9b7ba4a844d43f8f78aff4dab2b5edf5", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "6d0b6c5830ea240b7b40473328248844febb8b82", + "23be352d56b7897717ece0f4b5429b2cee12991c", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "8ff03c8a5a8954d59f7755e60f76d33bfa77de8c", + "eb2d87505a1ad6774b01390f29b9a408bdcd4bd7", "testharness" ], "referrer-policy/gen/top.meta/origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "b790cb1241adb227404b31e6577d660be17841ca", + "41739cbf6a3a4a6bb819109f0307ba3b80583641", "testharness" ], "referrer-policy/gen/top.meta/origin/a-tag/cross-http.no-redirect.http.html": [ - "9277c28947aee6ef7810d64b70b8deaa6f9e073a", + "dbbd37f40bff5b1a58dae8e5876165e3c7946fd8", "testharness" ], "referrer-policy/gen/top.meta/origin/a-tag/cross-https.no-redirect.http.html": [ - "1dbb1fc5ccb8c8c95dff7ad8da5274fb9eda42e5", + "7ccc0a08e53a2184ebdb0078d9f57b460a49180a", "testharness" ], "referrer-policy/gen/top.meta/origin/a-tag/same-http.no-redirect.http.html": [ - "894af1da5df115df81f1b57a0f97d123f8373359", + "9adbae32e502e1e4fd5ff10774b213a3e2830556", "testharness" ], "referrer-policy/gen/top.meta/origin/a-tag/same-https.no-redirect.http.html": [ - "9881bdc4ee7e928fa0b6febcd364ae31cf774ed0", + "3bd0461fc3053709bdaf99991748d8bce03f3025", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/cross-http.keep-origin.http.html": [ - "63fd2be9f9628adde91526c9204d7a0f2b55d321", + "b1b86be1a4bdd2ff5bdc25330263c90e58a1007f", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/cross-http.no-redirect.http.html": [ - "f564fbebc5733f460e96751d75a627556ffbdff7", + "5b18c7be6e92716252c22d7789fbb9fd3b4086f3", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/cross-http.swap-origin.http.html": [ - "446f7076ee7d8766ff30f59634ccc23438aaa8df", + "242346a39977be60a0639f40205866d44f6c9883", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/cross-https.keep-origin.http.html": [ - "a6a9a8a1b220dbb4fc6b00fc511beef9f899a795", + "28153a8b4be24f004cf5ea7e4e9b6bf97af0f993", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/cross-https.no-redirect.http.html": [ - "f0f6bb6135e4ab2470d9f4e602131b906147f113", + "8d35aee072cddbc90d704604a1c50c2afc617e0d", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/cross-https.swap-origin.http.html": [ - "9408a75c5b5520379ff69932ca7a4dd1d155986d", + "8a6e9ef07c7399a1701a0389c0597969057c5c67", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/same-http.keep-origin.http.html": [ - "c53527a5f406c267ac9f7e47a2085bebecea8322", + "caf83ba5dd491c4995fd1e1a7ead981b2de10b1a", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/same-http.no-redirect.http.html": [ - "2e69c9b6719dfd47bfb7d83afc8b726c29692f55", + "d8b4861670f6a0ddc36f8a57c02982a7a90728e8", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/same-http.swap-origin.http.html": [ - "4ccb297816c93e6043da4dda463cda9d0432e653", + "f09e377c66cd5c4bf1d452e304833b11323e1795", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/same-https.keep-origin.http.html": [ - "72a2bbb19b18daeb5c35c607374a754a5177de50", + "ce38cffef99ba280fd2e2edcb154263247f65e96", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/same-https.no-redirect.http.html": [ - "c1a1d90beee50caaea313ad70576ad1983a7bca1", + "b4f3cdd8982a5171b0a46392c03867e8ff3ea568", "testharness" ], "referrer-policy/gen/top.meta/origin/fetch/same-https.swap-origin.http.html": [ - "4202ef50a8091968e2a5c927e0015515525ee22f", + "cb4af3e45863041c33cc2211efaa2f62ba059861", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/cross-http.keep-origin.http.html": [ - "ac008da94a1763f5c8f9773026a4ec91aa5b8db1", + "791330003b90dbc34c4a71c3c65f91f30e652cf3", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/cross-http.no-redirect.http.html": [ - "449d06a8424b136178fd21717424951a0e67f2b4", + "f7de0c55e24f665b99832513f36403a21a8893d1", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/cross-http.swap-origin.http.html": [ - "64e76c518bca1cdfd70ef0c116232f66c277d308", + "dc417fc3c6c3f7b06281caa4c0efe71bd2eec992", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/cross-https.keep-origin.http.html": [ - "c6c981ceb44550a1c3e74379ce21a7412bd525a2", + "9a1c6a3a891a828c702c792976bb74999e2818d0", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/cross-https.no-redirect.http.html": [ - "2405cdbd0dce442a767d2f3d0066c759433a313f", + "64606fd08afbd19579b737c05c79ac6ba53e629f", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/cross-https.swap-origin.http.html": [ - "40bc9a0e6481f185bf3a5c624685c2687bbba9e1", + "d00db3d73c811b90fc73e502fc03f688ae4a0f9f", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/same-http.keep-origin.http.html": [ - "1caa40ed81ebfc87d17d9faa5842166ad7a9792a", + "3cb422b083441302f38fc475e99c89c5d96a7fb9", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/same-http.no-redirect.http.html": [ - "232dd065279425b0208881ab8f9f669ea77cf869", + "ca4746f5a4e45268b2621180404f5ec11ee56078", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/same-http.swap-origin.http.html": [ - "ef73d2a759e685358d43047ddfcd3335cc42965a", + "262bdc5b01d8cf5d18848ae274ab1b691bd09851", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/same-https.keep-origin.http.html": [ - "ca2ea3a1241488637cf38a6557ca11d7a4331b4a", + "c92b24921030a86033f005e6942b524e9e0e9fdc", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/same-https.no-redirect.http.html": [ - "b72264e1ff208bde3a7cd1395e3b3ffb19fcfa85", + "0817c6947380f5e74c3682f507cb91774c02709b", "testharness" ], "referrer-policy/gen/top.meta/origin/iframe-tag/same-https.swap-origin.http.html": [ - "aff2a9d66782d34dd05fab5cae4702ad72c492b3", + "999f3ff1655e055e0d86d9e7ab2edb76264d80db", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/cross-http.keep-origin.http.html": [ - "5f355e5562a3e3a3c895f21ee92e35999552e357", + "4c3c1620ea657043c880985988df0d12bf61c44d", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/cross-http.no-redirect.http.html": [ - "cc5e5ad7815bf3ea23530b763269d5e25c73ba48", + "4eb51ac12fe42c3dc2f66cf556794828dff49c7b", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/cross-http.swap-origin.http.html": [ - "26cb56fd806b9ac483d6845fd8e32e8b9f07746c", + "c3561800fdb77423f682a35b80bd3f905da47cc9", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/cross-https.keep-origin.http.html": [ - "b56de8a740fd407db1731b160dacf5df7195bc10", + "e9edcb8e0e8cf94cc046859b4ad2c61a3b04a38d", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/cross-https.no-redirect.http.html": [ - "1ac715a376c680a957558448f2d367716043b798", + "69f3bbe7c94356dbc085b55e60d96ddaa515d0a3", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/cross-https.swap-origin.http.html": [ - "80cc9e4d1b8d344712baa2fb2371ad88d39845fc", + "7dd8e299d49891283b29f533888df9c8379f267a", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/same-http.keep-origin.http.html": [ - "6f33c342c8f2979999c93cdaddf9697860773003", + "51d092f64f2f7aa5a41332812750157efe71e837", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/same-http.no-redirect.http.html": [ - "6b9d3f058e49e16cf3233d5a9d08552a77817823", + "92fef43c906ca784bc277e82187740a2640caa2a", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/same-http.swap-origin.http.html": [ - "270738fa85a36467e00a2f01047bb8bd9e00d838", + "dee8ee1e5d1f5a3893b24b9789949f846373ab01", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/same-https.keep-origin.http.html": [ - "a76c575c1facd01c717076f9ef1db0085a0b6532", + "0067b947d162bb3fe60bc5e3d820dd5ec0d3ee90", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/same-https.no-redirect.http.html": [ - "ddb84cb3b67f440b23a38f5d1e4d12a4bf54b5dc", + "f2cea06102c230e490cd61cb46844c5099a87555", "testharness" ], "referrer-policy/gen/top.meta/origin/img-tag/same-https.swap-origin.http.html": [ - "48d5905e5741931994374c7e70b39a34e1c8f0b5", + "bd774c1b77db204fead62c971a2daae7f8eee5a8", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/cross-http.keep-origin.http.html": [ - "5968953f459e3184818077233fff9d654cc11645", + "68f18780625194964c2881e1ff055c7f7b417edc", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/cross-http.no-redirect.http.html": [ - "f766b2c82a6156464e76be6bc9cdabfb4c7384d5", + "c11ef15b3254f71d87ad22c08fe9f213f87d5bb1", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/cross-http.swap-origin.http.html": [ - "1165a2e082ebc09fc9f7f2ba02f6488e8b1bcc01", + "48e1f0e20f3397671efa5d4052cd54a35af18c18", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/cross-https.keep-origin.http.html": [ - "02bbaa369d7f6e71425081f427d723648c738338", + "19051b43f3ae5ab7f0d3af00d66cadb417223510", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/cross-https.no-redirect.http.html": [ - "955e322ee93afed1bc92d8cda9826003a29059a4", + "e144b2cf9d427392510ddc55316a810b01b493a3", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/cross-https.swap-origin.http.html": [ - "6c099d3232523d02521947927fa88158d6ce2991", + "2065843890b300697e6b0c1af6b6f221680772b5", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/same-http.keep-origin.http.html": [ - "4a136fec3c6fbbcc0684941bee3f7a227cb5e99c", + "239199198ddf23e7981191686aa5f23f307123f3", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/same-http.no-redirect.http.html": [ - "8465a79e0796d26d4d6c5893154aab9c8a3e57cb", + "00e78e9f0b97fa8ba40b174488cc5a9cbe322581", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/same-http.swap-origin.http.html": [ - "80babb63389f213de4849c71dd8534944a525c9e", + "417e470c033582f71d94828439de6229ea53e856", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/same-https.keep-origin.http.html": [ - "9e05dfbbe0701027b59e4c493a82eb89d09ecd5b", + "9ca3846934a66c3f3f9fedb2d49c93688a2adf72", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/same-https.no-redirect.http.html": [ - "c95c268b242d2b4f5e517829b3b40cb4776213f2", + "a3415b9cf9b2ec7c560d1130c944d387ebe62cbb", "testharness" ], "referrer-policy/gen/top.meta/origin/script-tag/same-https.swap-origin.http.html": [ - "9a225bb307b360a1c12c797570c1ff4fed996a98", + "b6f1e5ccdf7da912a1b7201d065ff782bc37016f", "testharness" ], "referrer-policy/gen/top.meta/origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "84fcecc5988bbf8e66cf905d6359c7d2da7cd115", + "e7a037d065d33e97fc0c73b4476728778b64f9e4", "testharness" ], "referrer-policy/gen/top.meta/origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "140c27b5bb573d925aee7e5af7b88862c9d93736", + "480fc6cc63f982e335a2e2b60d12ff834c1f4492", "testharness" ], "referrer-policy/gen/top.meta/origin/worker-classic/same-http.keep-origin.http.html": [ - "b10fe3c0007d3d1bab79d8431402f1740d9f87a1", + "3053f3001e707dadd32b769c0ce214dec6a7afc7", "testharness" ], "referrer-policy/gen/top.meta/origin/worker-classic/same-http.no-redirect.http.html": [ - "4d67e3b9791613d25cb0b3e27465416005599820", + "2054f171bd193dd85dbc336d3c31c0293ab9ff3a", "testharness" ], "referrer-policy/gen/top.meta/origin/worker-module/same-http.keep-origin.http.html": [ - "5c502e16a142b02f37e3275d006363feae00c969", + "3286e930b9af69e6b205da94e1bf8f93679afdc8", "testharness" ], "referrer-policy/gen/top.meta/origin/worker-module/same-http.no-redirect.http.html": [ - "98c6d31750d09c6ba32b5338e3b3797919074f63", + "a491039ccddadc4721bcabb47c730957bcb23143", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/cross-http.keep-origin.http.html": [ - "4bbdc3c48e7623ca44f8cbadd2bf1937b55868fb", + "c25b2d231162280cc55b262ef86b513d5bf3cf3f", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/cross-http.no-redirect.http.html": [ - "68f03afdc7012a279ce3e06c946de7c24761d8f5", + "0d4b092ce935f1789291865030e9645bd47b364c", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/cross-http.swap-origin.http.html": [ - "7b3473d8c9df6dd5cc82ff24e8c96430cc8df1d7", + "06d3afbe4515b16a2745dcba9a129c510894681e", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/cross-https.keep-origin.http.html": [ - "47c53c2ddd079e05494a80e157cb71c7d43f9959", + "ed1794be12860a73a9830004e80fa824f9c0a4e1", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/cross-https.no-redirect.http.html": [ - "7fa4360968a5ef79359571bc6e01ad08cf1a3474", + "d448e32df0d30cf05bcff83c58aa170f9bd80445", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/cross-https.swap-origin.http.html": [ - "9b08cf1b89c467b09a243675da295adab68ab3ec", + "a1400f7abb3fb440a13dc1abd7b508ecf2b835cc", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/same-http.keep-origin.http.html": [ - "314830775af9b0c1c50e3f04cb1ba749c9436567", + "b47d899fdf72f36bc52b9800fd2b781355ae676f", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/same-http.no-redirect.http.html": [ - "abbeb0eac41bcfedd463cc629ab3b3be660d6f6c", + "3735a14edbf02b8dc821747bbce87822528e9ef9", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/same-http.swap-origin.http.html": [ - "f190467331d5c1b48462180e6cf278627bce44a1", + "8a9aa1ce2674740c16c15cdb494045fdd5c26499", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/same-https.keep-origin.http.html": [ - "0461c4c2586d062b34ac7be80fdf08a2f3b7a3dd", + "b336cb1dce5cccf13a359e5e7d8529e00691f9f1", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/same-https.no-redirect.http.html": [ - "ec81dadafb97f925500f89d4c132036ffbb27551", + "22f8cf7fb4b4da6b3fdf4280614d75bd2eca04fa", "testharness" ], "referrer-policy/gen/top.meta/origin/xhr/same-https.swap-origin.http.html": [ - "154335e620e142d45a99ff05e346a787bd4e70c3", + "5feba3f0d69baa10a3054589223ebcc805baa004", "testharness" ], "referrer-policy/gen/top.meta/same-origin/a-tag/cross-http.no-redirect.http.html": [ - "c9e0a25db457f1e455a011401e653ca0593e9b84", + "cf9f09f4aaeaca103f3f6a6798b4f0289c263c57", "testharness" ], "referrer-policy/gen/top.meta/same-origin/a-tag/cross-https.no-redirect.http.html": [ - "9a18f4f77ed8e6e999906192b3ed37c65473e75c", + "3a7d1707a178d1b2d02dafe46c87111384107564", "testharness" ], "referrer-policy/gen/top.meta/same-origin/a-tag/same-http.no-redirect.http.html": [ - "4a6d64d1169637c62c7aac5a31f0f496b9b8aabd", + "c47c7aea18d96e301a5aebeaa147d64e3325ec6c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/cross-http.keep-origin.http.html": [ - "f4c9d47e8a0fdcc0cb13d8d382444bd75e217073", + "4a7a1cda72271bd9fffaba84b5f46bd04df7e131", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/cross-http.no-redirect.http.html": [ - "922aee1bfaf339936c1adcea68a68a980ee42da8", + "75c47f4e9ba545a0d1df95d62285ea0c51f7505a", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/cross-http.swap-origin.http.html": [ - "497aed51839ba43c82ebfe5cc001086011afc2b3", + "29c901d7d148497589cfda0def0f1fde25567435", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/cross-https.keep-origin.http.html": [ - "9874739ecd5536d1e05fbecea3f75ff1d1ae4971", + "aef239c7af2acc9f48d2cd7e62603c046622be6a", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/cross-https.no-redirect.http.html": [ - "f444865432b8ff6370eabefe0da6cb993a693ad4", + "69ff999ba1ce556b52a26ca5d4d9c92cbd96db5a", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/cross-https.swap-origin.http.html": [ - "6875451d9efa4358f43ceeccff31071f8945f477", + "ad689e6c84d8773a9d0249dda8049f20bbec93cd", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/same-http.keep-origin.http.html": [ - "47ac06ab7e34f31c75841dca038e9606110da94f", + "b5e05b616eeaf476d2d0dedc372750ec5e8e7a46", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/same-http.no-redirect.http.html": [ - "c8561b9acc697f0889c28568c6fe138150bb20a2", + "f7edc26eb0b9a2d8cfb594bc4328601aae384b7c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/same-http.swap-origin.http.html": [ - "6d53197196cdd1b80a3b42380b8d12a772456468", + "857d4bd8f4bbeac434b6514558a53edb7c2209cf", "testharness" ], "referrer-policy/gen/top.meta/same-origin/fetch/same-https.swap-origin.http.html": [ - "960445ed130027d88052194ef276dfce9f094352", + "e2da502c82114ac30def8dc8bfa53d958e18b53c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "96d8ca4adda6774d2beb1adb223a834bfe63baae", + "05955e9f83093978fde495c54623390d82022035", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "a75887a397a7b05e258b664dc49d56ded0cdf764", + "ed741ffc83550bcf4ef85d0a93e14c2ad404b6b4", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "2e4a7cf989ce9a413c6e2d5e520adcd186e0d6f6", + "1748043b115dc9398e3bd40e28079581dc347599", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "1ae45f67922e3c04c038424c1669372dd212a4ea", + "8d8541939c01b32856ce4c2f1e2dc40516a8e018", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "29f9ef180700056d2933c6e7198f79f7e69fdc02", + "f7b99eae78314171f318310f6cb99cab0ae4745a", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "f06f7ea504ef4b841efe6df5ce460d2fbd1bfa0a", + "45617b38dfcbefb10484fa7b9f03aa3cd53002ab", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/same-http.keep-origin.http.html": [ - "8f022223fb6a19f1403b3bbb600d09c1a324dbe3", + "ac88db60a1ede36dd8db92c4a07c36f38af39ec5", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/same-http.no-redirect.http.html": [ - "e48f91806f5ecff20801aee62155b9293de9198a", + "cb38caa9eee11f4308cbdc031ce8b734a666a9e5", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/same-http.swap-origin.http.html": [ - "64fe1b9c5994779c17ed9b9c56e765302cb62e70", + "284b3d3cb7df46e2dd71b6458748c19f8a892b43", "testharness" ], "referrer-policy/gen/top.meta/same-origin/iframe-tag/same-https.swap-origin.http.html": [ - "6d947108e8c77ffb6537d5032f559aad634a6a28", + "b0d1cc6b995ca575d310b452898dd2ee772837fc", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/cross-http.keep-origin.http.html": [ - "66186545f7acdc8322fe3dbd5cd63dd274bccf0c", + "6c0ac8cdb445ced0eb856ee8993229663d9039e1", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/cross-http.no-redirect.http.html": [ - "98733bc2d50db69cce68a9e09a49916160278fc8", + "ac6428b3601f22d3211cc5d004fa05205e411419", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/cross-http.swap-origin.http.html": [ - "6f964dc0f215449b949aa3f9e1750e2bfc8b2da7", + "bdfdbb422e85476a47e7e429124780a3024c9e09", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/cross-https.keep-origin.http.html": [ - "be896539f79d73f952be8b56a2dc114effb2b318", + "250ea86ec8c9114dcdd9accf4d12d6ec4be79f58", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/cross-https.no-redirect.http.html": [ - "3019d368b20c94450c08cd9a835b2dcca34fe371", + "95b99976e55f8e3f0bba087fcb3541b813511596", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/cross-https.swap-origin.http.html": [ - "51dada9e83616358bbe81f145a2d0809f03de5fa", + "42d4a46fd2f937d3a04c479c45323649570190ec", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/same-http.keep-origin.http.html": [ - "bcff54cde99c4f1bfcc872ca826c3a7e9c9cf683", + "517651319bf89c84842c32bc846c91613b0fc57a", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/same-http.no-redirect.http.html": [ - "9c8629cb572874bcd8032c724f36b21460976d77", + "380692581116852620f956298866a4254822783b", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/same-http.swap-origin.http.html": [ - "588baf9c2705115848ea08be76cd992b0960d6c0", + "432be2d5d6f424b7b188128c1bf610940a9ba73c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/img-tag/same-https.swap-origin.http.html": [ - "b41a6ff4d6f4d1ae6e35663a4444f92e3b46227d", + "0fd23f84c4867ad943cc12cc1e0d352e6f79fca1", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/cross-http.keep-origin.http.html": [ - "f3830952f48b534e82bc3cf1668ea8bb6f64a912", + "548f0bb2052695790c85ca45cd5b2bc44c87a590", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/cross-http.no-redirect.http.html": [ - "1a744125943b2966043366a12eb9109adaa4c820", + "bb7263fc365e118b4942a8bb3f9f0d2ac566c5fb", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/cross-http.swap-origin.http.html": [ - "25c7a782fea78fe809a38d2a9de514e2d497f8fb", + "2ec0e5787cec00840a25fdf9178b8cdb21d5f917", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/cross-https.keep-origin.http.html": [ - "ca940ab9a01323d0760c28b96924871b016ffae3", + "30100195f12cee41badf521f59e2c54d440f582e", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/cross-https.no-redirect.http.html": [ - "14affb7ffd256d80599f8c75c7fb45561732717d", + "f760e8440705c604236353e00f40f59a76019b6c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/cross-https.swap-origin.http.html": [ - "545ccb26157a9d226c28fbdeffe6450b3768cc94", + "d3b06c12972941758d3f5f32d0b29bea37e9b51c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/same-http.keep-origin.http.html": [ - "1f3ce019c192f809fab19be5e5bfd5a0c9f04caa", + "67efd10c46829df171446ef8b14fa6da2d3c290c", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/same-http.no-redirect.http.html": [ - "8eb22efd17a794252baaa4c8c7cff2e4050d27eb", + "63170ba82466ed3abfb63d9759418b34a1b60686", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/same-http.swap-origin.http.html": [ - "5ca347a091cec79613a86099814e8db12f7995b4", + "e9820afa49030ca1e2c6faf21811e01e75ac06ff", "testharness" ], "referrer-policy/gen/top.meta/same-origin/script-tag/same-https.swap-origin.http.html": [ - "f5a5c14ff79412414a32b928d5ffd0b50e2c94e8", + "7be69367303a557453da0b35e0d46236e22ca2f4", "testharness" ], "referrer-policy/gen/top.meta/same-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "3195a862c5ba5f695a2146fe64f3988a1a00251e", + "76a444d3bb9530257972fb6b2004c995ddf4e7c4", "testharness" ], "referrer-policy/gen/top.meta/same-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "e171e121b4bfb3e53e5351cd39508df0e6a5dd44", + "f734c5274300a73737fd8ec4a692be5f24430648", "testharness" ], "referrer-policy/gen/top.meta/same-origin/worker-classic/same-http.keep-origin.http.html": [ - "23395eff6871bcd627fa77113e2e2094f6c44a14", + "410e398776a09e750544de1caa5efdae35840229", "testharness" ], "referrer-policy/gen/top.meta/same-origin/worker-classic/same-http.no-redirect.http.html": [ - "fd86e10340f72a1a316204a8381151303d28d9ff", + "ce29f720852600519c42ee55bfd3149acc2508ce", "testharness" ], "referrer-policy/gen/top.meta/same-origin/worker-module/same-http.keep-origin.http.html": [ - "4f1ef7c8382cbed9d26769ee10f0016f4a70934c", + "573908ca89d2491e588caa562a56e4bef8eaa882", "testharness" ], "referrer-policy/gen/top.meta/same-origin/worker-module/same-http.no-redirect.http.html": [ - "4814b06446e612733b8fa2138619d40b234fead0", + "5d1795d03b46ca512a9873d50b8e13a06cde379a", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/cross-http.keep-origin.http.html": [ - "ab12f602fe934720f1d8b361cac9784bae758766", + "6551a65f0d9dd7e9e98e0fb94c6efad1364cf094", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/cross-http.no-redirect.http.html": [ - "e0ef9be74343385e863dbda53c74c065e00facdb", + "aa6a9afad076d57465d4de363a79492bb4b880a9", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/cross-http.swap-origin.http.html": [ - "3607fac2a4408cf9a023e3205aa768795c9e108b", + "d2127b5dee630215e7149f2ca971cbae519f3a75", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/cross-https.keep-origin.http.html": [ - "95410ec6f75d0dbdeeb8db14b8e80f8f835ddac3", + "33930eb401edfdac949f4747b07e6a66bfb3ad90", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/cross-https.no-redirect.http.html": [ - "56ac1a8b29c54067f06f8277ca1bf674b52fdfc9", + "9a255c548d997810fc5d4fe8188db37e3a24615b", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/cross-https.swap-origin.http.html": [ - "4745c3b2342064217eefdb8b4acb02d8b0f05cb2", + "1aeca79c82cb04ebe384639330642c71b1768725", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/same-http.keep-origin.http.html": [ - "12b6d3a690dffdbf3ac4422e20e84172166c7f8f", + "5aa24a263813cd736176d7ef5aaebca401849f08", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/same-http.no-redirect.http.html": [ - "08aae0baa545c806cb56e8700cbc556b5abbb70a", + "491fd0994101ddaba54aac4fa856c326751c8422", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/same-http.swap-origin.http.html": [ - "a6fef380f2bf0ec4dd28435d12f36c2287936106", + "1ef1bbffd1f80bb8f3f3483d5c7036319427e610", "testharness" ], "referrer-policy/gen/top.meta/same-origin/xhr/same-https.swap-origin.http.html": [ - "1c7329fc12806ddc700f461b4abb3c5f4f0fc8da", + "7fb51684dccf6bed190ff3a8d073d688dce8bb77", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/a-tag/cross-http.no-redirect.http.html": [ - "55982aff7ecd2b711a74c9a5c23d96c031de1ad2", + "cc6bcdf625f96de789123718308517bc8446adf4", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/a-tag/cross-https.no-redirect.http.html": [ - "07ca09b806e1f77c31ecf92c79a8ed02850a18cf", + "5a6b4a5630949664c3d83b8844c5699bdc3a7f09", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/a-tag/same-http.no-redirect.http.html": [ - "4ae845cb8b6cdc18d19ded84580b4ef9bfbb6573", + "a1075a9575d144b8db4c6d33143ab8c54ce7d828", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/a-tag/same-https.no-redirect.http.html": [ - "bddfeb1fbb6d4c6cd8bf433df21496a57ce190d4", + "5ad2d96ce41f8e15eb712fd4cd4f5f3380d77b7c", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "50cedb64ba746da632f253ee82713a9ce3bb7e1d", + "988502d5c1463ef63cf1f4dcffdab54c08b8dc0a", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "58a5f0b118fd8e9b7862740a5a43c8f2e866746a", + "02f77c18b912f8b3a44aa4c074b71a0e7f05ad9e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "43142b08d390958dd028b205d64aad630f57b8ce", + "fbf506d06299e84b3bc0afdda1752268f3b6530e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "7ed35744ce65574cd263cf3fef0e2e280629c60c", + "7d6907b9c1f2fa2e247597314d6a71c871b138fe", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "27b58b9c2375271e98459ae20c2b2737d39cab86", + "7f19373a1ba6052292699580c83db61e5104ad47", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "da53bcee3342563d33e85b8e64451a1193739d84", + "4fbc60d3db2380eaad9b2109bc42eca149263e78", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "cd3a9574fce31e76d89f4b5e9c05417c58cc7e9e", + "9952f1de9727ae9c1f91f0226c169da692ac2f93", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "fbadd42b519f2dea8a3a3d47966147ddc33af004", + "af220298327adee86a10ac5f3da76da477fb801e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "994e27ddc04e9b32a3127afadaed6c0628d48b1e", + "e0ce6dd98a536217ef66fe9edfda3e3ddacb9535", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "c08c6406d5df99cbec1b7bfe560efe8803f26a33", + "edd55f4b4f38c99e5da845e7031148f17b7ad17b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "8dcd58f6fb4430e7e54f86816c7f1108c3a8e8fc", + "2c22f125f95786c4dc1862c75a60f5fa20cc963e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "816b3e8b2946c3f0cf2f009114845c2eeddc526f", + "c6dd6fdd727e58d77ac8c29f9927eeae51d4b9c5", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "960b86cee452e37d59a2111b8f52e6268311df62", + "cdf60a63e44d396b1d80b0ce0a2c10163a92ba05", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "4c76f6f5af3e38450bbe80c2051ac6e96cef9d57", + "13f2be668c22c63109d1d6c915cffa164034a681", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "42ebcdaae2489916783e84452561b00f09699501", + "51177141400c31e9e4a6ee519ea0933d282a0e8d", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "8614e3800ad812ed97ec1ed0794e51a0f08dec17", + "9f0e08f64c4b6fdb2aff731ee9e7d481d061a758", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "7d6c26e270b2d4baa2b4ddd53a3792452d08f117", + "0c03e1dfbea3cfa7d2508f830c56c3fbf56001e7", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "4c220052c962a11f06527395cc82f3ed24f26f83", + "09f87f74c92b8ebc842f46bbeb47f5a50e7db98b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/same-http.keep-origin.http.html": [ - "60691c89d307074f40c42915dd3973db5533d8e1", + "812ce4e688ab17acf936ba30d83567d335090555", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/same-http.no-redirect.http.html": [ - "3624ecbf962f3ec986be647d15df1850ae2e72ac", + "54a39ceae1d04fbd11701acafa722e4f1751b165", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/same-http.swap-origin.http.html": [ - "0f8e9cfcda63609d780db3a3fb56ee92f86527d4", + "62dc439028425c518522eb714e78c13b08297118", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/same-https.keep-origin.http.html": [ - "7de74e127a6648aeb873484d5fc4decfa500b5a4", + "8d2889e767c26b02a0d9b2babba126529a4cf09b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/same-https.no-redirect.http.html": [ - "a4879636d557c32ed84451dc87e339a4e89c2e20", + "4f50b75d43e6e903b80c6274c3816acc0e9dcd83", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/iframe-tag/same-https.swap-origin.http.html": [ - "db2da5c92cbd71bcb2a211171fdc3e1625388708", + "8c5189c49537cbdf0616018da499a68c6489d9c6", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/cross-http.keep-origin.http.html": [ - "50a4b747ae387b6f910a6e457d75f1c2fe63a5fe", + "b0dd98545c8e13af2cb56ac4081f53166d95adda", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/cross-http.no-redirect.http.html": [ - "9bc48713fe4222621ab335ed8a9aba7fe79c6f3d", + "d09adb8dedc57579fa2dec713edb78f66d72b869", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/cross-http.swap-origin.http.html": [ - "2560bacb16cf15e7fffeee273d48cfa864151ee5", + "378ce57c0e8abdd22b9ba127f4d91a55897aafee", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/cross-https.keep-origin.http.html": [ - "85acfd7154e4c33155f2dee8f3cdd726f22224ed", + "b55b0041ecd0726b1331968fc256cd1c4a303435", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/cross-https.no-redirect.http.html": [ - "fe8d90e1424c911a73cd0f263ec2242bc8e05e0b", + "d2b6def5405cdfd8c5ae0f1b54a5fa78c7d1efc7", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/cross-https.swap-origin.http.html": [ - "5e3abd1dd6d6b4d7d17f167668df4084d5f4979e", + "9b5bd51183b5ec51e52cf36b19ca151aaa57496a", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/same-http.keep-origin.http.html": [ - "bb64a89fe71f18f611217e73efb55122f5d75f9c", + "019b5d931455a337b192611a85ff8aa97a5903c1", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/same-http.no-redirect.http.html": [ - "d5892747dbd59b643ed1fee7b4b3510d0b54e19e", + "4d9e585c5f5f6a445e5e1b94d3c72c152a482a35", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/same-http.swap-origin.http.html": [ - "b7c335e507944602aa1f93be653c007ff2c1ebe8", + "c85b06b49952fc264ca59d04633ce44b0bad4533", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/same-https.keep-origin.http.html": [ - "1fca3f13a4dd5686bd47f424b61faf08a08f6286", + "09d2ca1682a1fb8a87aa0aad029c2683b4b99199", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/same-https.no-redirect.http.html": [ - "a840109490f9ebca4c40d85615e48bf9dd7c9357", + "69b57be84e38d9befc585e063efe542437a2bce0", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/img-tag/same-https.swap-origin.http.html": [ - "cc7d597905605534d6284e093d9313f9f5629cce", + "2353fc1a85f2b4f8b1e25675e7039ccd6ed11ba8", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/cross-http.keep-origin.http.html": [ - "1fb432779f2040daff12234cf80c23495b8166c0", + "39f774e9b3eb2d68cf92eebbe5f6c7eda045e26d", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/cross-http.no-redirect.http.html": [ - "680589586933f6c7effa34c7a00c346e0beab8df", + "9a5c3d7ff3d3c81c6d2b93ed3b651eb119dbbaf6", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/cross-http.swap-origin.http.html": [ - "fbe0e2913a17e09f30028d0a56bb12d338d6e486", + "9e5f5a5b2482d498beb59be3e8d5cfe763cc9924", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/cross-https.keep-origin.http.html": [ - "d65ee887e34486c8199306bec83cb258fbf5744b", + "16c81efe7554cdfc63d8f635220ff5f99464c377", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/cross-https.no-redirect.http.html": [ - "0c9209428f7084dfb4f4a371d0708622cd43b568", + "5dd4c12ce9a5a074b5bc25971fa8eac342a01440", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/cross-https.swap-origin.http.html": [ - "8febd856f138d21e9439a380b1e0f392c94dd61e", + "3586e60a9a226f054fe372a92efae264006b0082", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/same-http.keep-origin.http.html": [ - "c4da26788d4109d6a754657337cac75548a0a9d2", + "f53bbfaa7bda0881c8430a293837dfa6c4fcf190", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/same-http.no-redirect.http.html": [ - "5d7684c5df9783aa0546522e8a6e63d51bcaac42", + "9b52526335f8742aada05ae472185a2064ebe307", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/same-http.swap-origin.http.html": [ - "2c28e914f2f64559fa1f7402bbdde897954737a9", + "85914f54ada0753e5f6876ebca44b0bb7d596a60", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/same-https.keep-origin.http.html": [ - "c066c5803808d4fa1811ec02c7a517d7f9470cd9", + "f6b0d4f6ba1c3661f3c0effbc5f1824b104a62ff", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/same-https.no-redirect.http.html": [ - "773a7becd0701454cd603a5c18cbd4a75e4c8b8b", + "cb6a6f119d1645575e6e383c10bd9d44d31c5322", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag/same-https.swap-origin.http.html": [ - "a776f68c19bea1f8b0ddca572c30f561406d61f5", + "99b85ca13ed441989d045861ecef62771aa0d59b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "862794d9937ed617bd54ac114c7d7c054f38469d", + "0fb1c87cb05b4fa7f47624235f06a1fdc50fd311", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "f02587e774b63ef327af6389ae42ea2a3edd68d5", + "e3332c01506477ea572fdade000809c92171f4ab", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "1fe0b49d5b73c5785687bada10e98f5a5341f227", + "57bac4ca139f7372f81c58a1ccc9f5e2d41fc8e1", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "4661e5463cc5976be914d153823f9e93d86748e1", + "f32749be834919334ba501a6a4beff50ec1b5d60", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "972e24a30ea2d3e46c4ff04cdf085e870e3fb8ed", + "0c9e0abd3030662ff168ed3822f7196e2d10d238", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "c092db5629fe6a2e8bfead95e666887142126bae", + "fa8d80bc64fe82c7ebb4d3c0f9197734be9f8464", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "4ed4a866cecbbbe3b76d90f5f33b61ae071fe06f", + "eb4cc3a2d9b7457c11cd37b78bff557dc1169fbc", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "8c6d47ec1d4e29fb0c059beb3d54a88f61042922", + "cf66130cc638c8cd289b1bd0b80724c88f690ba2", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "fa0114be1fe18220434a8be0825ad41e5df42e9e", + "25f9c3d290dda9d3bf7b185fc2bdc1dbd44f7245", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "d5e6d4a3f77fa4f635c57a979a269fd882002e40", + "f62e0efddf49114f86eb8fc76dcb8463052a70cf", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "fdd422c0715333fb46c1a68afc37fabb676a072a", + "7903fc88c901cb8e757ca1c66177b1cbd9b5da20", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "0a39f27976a8b3591294da6a25f617437dcaf85e", + "4294a65ed6b5225a2ff11916a23da9c7821a6129", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "d08edb1be3dba860b3bafe844356d0ff82e56be3", + "7e97967aa553f2922450cdd834bef2ee340a8baf", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "e8edaf554468090c6d43f75ddedbeac0647bde39", + "b8beff2144a9c44509b54fc3e037cf6f9bdc2233", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "c3b6c66b9d67de2b95fe8c295c4c28ed7576536f", + "25b092b43053222f976bf587c5b1db2cc0681095", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "398963dfe41fcb86f9ce705fa28816d07a129903", + "6c5284ea933e48fc30594a3062a0ac46f7ae9fce", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "f18a99d50326f130abd198e11c988a670a569a98", + "63435e560731ed68da76cd51d09c0cf557d27780", "testharness" ], "referrer-policy/gen/top.meta/strict-origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "c8d83790059ff01737a55fd4c27edbea80f6657f", + "abd13effa3a46ef0387ef0d770fb167e7de9d055", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/a-tag/cross-http.no-redirect.http.html": [ - "251ef53069993e09589148603957476695b73f4a", + "b82365d6329b38be520cd73a713256e8deea3bdf", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/a-tag/cross-https.no-redirect.http.html": [ - "cb3e32825b2103142fa0992d2bddd5be8a37dcaf", + "a0938dc9df4c9ac227459b556bcaded33c73ea72", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/a-tag/same-http.no-redirect.http.html": [ - "84160270242682ab6c32dc1284fac538cdd03226", + "a3403c55ae26a7760848b580a4657a46e7f5a8e3", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/a-tag/same-https.no-redirect.http.html": [ - "045462b575886095ad3afa72102bf0836d9c4ff0", + "8cf2efe896d0d5ab4541aec4daf69336905f8e59", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/cross-http.keep-origin.http.html": [ - "06f137200af756e3eb015296182dec1c0c6039f8", + "ad8e36fa9f506a5a506fd7e56fba47e8892ae3f2", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/cross-http.no-redirect.http.html": [ - "a1eefb2dab144e10c414caac2e7b0ebdca21373c", + "e0136aaa27828828660841449b00760e6be893fd", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/cross-http.swap-origin.http.html": [ - "40ce944f4db8ad4e309c621a38c4b8534ad615c4", + "dc86b8ba604b199d15060515651eac678f414163", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/cross-https.keep-origin.http.html": [ - "7c544ce792233c1dd9c988951fac9f3446f384e8", + "fbcdcc936bb0174335599221787ba7a429880367", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/cross-https.no-redirect.http.html": [ - "bc1c75ca3c927f955c86af19a5849a191cce7149", + "cdac8ead93775285049d9449ec7d40adf9ce33dc", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/cross-https.swap-origin.http.html": [ - "cad9835a514a8d39bba2b0983d4fcbcbdd310b0d", + "6ab6b2c64259fdb900e36721280d8f45ef669db0", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/same-http.keep-origin.http.html": [ - "5dc3e608cb523ff6aec362e5e70a97bc570a2d71", + "6e221cc8bfe5fb784247ae02fd8d0f5eb49a11da", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/same-http.no-redirect.http.html": [ - "a6c4798d69842fda5c895d8c9bfccec93abf151f", + "9e29fb706e2b4d350dba307b31baf82cb3dbe9a3", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/same-http.swap-origin.http.html": [ - "84f9933294ca351c7ee3950f8d365c2ca9834939", + "7e5a0cb91ef27d1bf23ecd2473f81f005e9d36db", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/same-https.keep-origin.http.html": [ - "d0b4aa255d6b3bef8b232cc97d61e191f8a2fa28", + "4bea553a94c0e461619340acee768d6e62c175f1", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/same-https.no-redirect.http.html": [ - "16160d687cb9f5efe33dbd45fc4b521cc9cceb0f", + "72b783f733e73cd8f79d33addada34cc83d0bf12", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/fetch/same-https.swap-origin.http.html": [ - "0168534be40828348944847be80089f5b35f0764", + "9652e9ee9f021b59aecc2f24a530bbe92bb939e8", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/cross-http.keep-origin.http.html": [ - "c7418279fb8e9d0b9d9ba1ed46585aba66003203", + "d51f75b582fae9de9daa2fd55c6986f3a72899ad", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/cross-http.no-redirect.http.html": [ - "88bbb6f74d907df596ef7e4cf8cbaedf0d6f1c5f", + "6e6361f4cde04c6bca7f470240251a88d24632a7", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/cross-http.swap-origin.http.html": [ - "726cb8f47b6b581fd18253fe3372ac90003afa0e", + "0bb6615b7f1352f26b878697ce38cda1d2f132ef", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/cross-https.keep-origin.http.html": [ - "95b2888091ccb743c210f83cdb00911e34967f64", + "16e0a0979e7bdf963c7a2e570f5ad1c6e9933c95", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/cross-https.no-redirect.http.html": [ - "0a4a78f01c789b2a15d104575d5cb217e929f6bf", + "cc2c883d66df77080073db60561c10720f4e2888", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/cross-https.swap-origin.http.html": [ - "77210abfdf94f754c8df996d0bcf7de95f8fb800", + "36dc5e754be9783146025a3e0172da0cc9ad1c46", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/same-http.keep-origin.http.html": [ - "f255b9dcd0ad595f93aeafa692fc0d06493a1fd4", + "2fec579a5b9693da1357d3167afde4a6ae45df6a", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/same-http.no-redirect.http.html": [ - "620c19f11af970495763d6a1d3a7036f69584feb", + "0cb682142261a50d017e8d050724a678780e9b75", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/same-http.swap-origin.http.html": [ - "6c8609763b3357f7a27c589e1f885c22ebf939eb", + "5e7edca5585e88e6075234ddaefd8f2fad5b1530", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/same-https.keep-origin.http.html": [ - "b423313e644c1b48005f60971b351b2e5c927092", + "5c65f3e00bb824abee38994810861050932d74ab", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/same-https.no-redirect.http.html": [ - "e686e40d4f01babe4f39cd5d5268f793c8f8d431", + "ab4779616b2b8c690a352c0f43e05e5fcfd0028b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/iframe-tag/same-https.swap-origin.http.html": [ - "1087eb50dadf1b92fd4d91b2eb817b5068e3eafa", + "7b21011501eb06e59f827510d04d9f0e4067dc2c", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/cross-http.keep-origin.http.html": [ - "e09e61d85a9c5f8c231a0ae5ee3a9d2cca28d948", + "3b867e1c0e9ed6d85693d57354cc80f59314be62", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/cross-http.no-redirect.http.html": [ - "40105a66df4794dad8a12c4b904bcdf2a03b959e", + "84be9597065214e601566dc310b071b25478d18e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/cross-http.swap-origin.http.html": [ - "273fe59a1772a95d2714b2a82a104e719749ae52", + "1110466f93b92b936641ac3263578ce3cdb63cd9", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/cross-https.keep-origin.http.html": [ - "5b6cb7d0d0fae851415b595300f30eb4c61cc2b2", + "ab93ca5545f2e7128c3973bebd92384e8413e9a1", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/cross-https.no-redirect.http.html": [ - "4df54d782c96a87a029ec50f18d035aa4deb1e70", + "9889ae09ae0c07fd225fbe01202741a52668907c", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/cross-https.swap-origin.http.html": [ - "66b10ff04f466e97e1cca39365eca7b6e87d4f12", + "e2aac2e290e2d71b4d4be4b8d090f327e14ea37f", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/same-http.keep-origin.http.html": [ - "2024fa42bf444c9e346dc2770296617c290f076c", + "b4dde1fa54a8753e07ab5052e93ab1708a40cefc", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/same-http.no-redirect.http.html": [ - "10962adc2f4bbedb397c44207414f21b567e7280", + "61157283e0d04236d74e2e75b1767d08d91f32db", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/same-http.swap-origin.http.html": [ - "94f38db2bfa1ca8634109ce3197d92787ab0c699", + "fd85fb44bbb073f50e89b4d3764f26187dcbe567", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/same-https.keep-origin.http.html": [ - "3710c1c96c72eea89488091a76ce61534d1a8633", + "4facdd0907685eceddd3cfbe14f3373ff067191b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/same-https.no-redirect.http.html": [ - "1914626ea29c5d57b0983af79fabbe40b390298a", + "56022784397336e21db5699bbd1b185e3f38d7a9", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/img-tag/same-https.swap-origin.http.html": [ - "f3c25498ad283238ff6686a505bf0e6aaba88c59", + "118ab6d668f19cedec06f17f7d411298d52e24ad", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/cross-http.keep-origin.http.html": [ - "bf1a4d6db3e907ddb6961ced100d13e78d892f39", + "10a75bd7b8ffe2a0281a4891fe07e9aea5788576", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/cross-http.no-redirect.http.html": [ - "c3230d10d654fa17a29c75f3346197b9049a9e4c", + "e556f69a24ab3cb5f1cc03e2397cbe014b7b1004", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/cross-http.swap-origin.http.html": [ - "0e35ab3a6a4616cdd1033cdceb2ecbc54727bf53", + "7672fb071fd4b8d98bcd323c45ac4634ee6c0040", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/cross-https.keep-origin.http.html": [ - "6ba7329d294b088524b3e917a01963ef6b1ea3a7", + "b0b9e88534cdc976d4ffa259bacdb2356fe680ab", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/cross-https.no-redirect.http.html": [ - "54cfa963d9ec200e9c444e96f5ea87560e634763", + "9ff93360b5dada5ba1b55176a30a83897b088c6e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/cross-https.swap-origin.http.html": [ - "6961299bc519086d77d9f2d06090c4df12f50185", + "ee23beb5e9d06ab59a43eff49f1ddf0a0ce73b6b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/same-http.keep-origin.http.html": [ - "e2dc274d0e2bae196d568864326016502ccaf8f2", + "2f011e5d23aacc2a43fab02d099bf52a765cf5cb", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/same-http.no-redirect.http.html": [ - "1c48443a6613abb25897cfeaacab62706c0dd49c", + "31b94f503481509792d5b2935deb1a3102f909b7", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/same-http.swap-origin.http.html": [ - "c198959d7ed3fa64f8ed9e522c77acf8f5bb31c8", + "f004d3af29f995c05e62e1187bc4a0c150740d0b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/same-https.keep-origin.http.html": [ - "c77e12117a5cab03a2b19c575acdb7c96b3d2a85", + "58a295eb3ae665e5715b4c4e09a2c453eec1c6c7", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/same-https.no-redirect.http.html": [ - "6a07112d04986c1db6d7709ea6e2e516e54520b1", + "6df3e8f3af26fc379b15f6225486d8b538f108b1", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/script-tag/same-https.swap-origin.http.html": [ - "e73e48068a411242074b0aa159e1e4d59896fbff", + "a184016ae7a510fc25a269955abaa9ac88f93fc4", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/sharedworker-classic/same-http.keep-origin.http.html": [ - "b7dba7b8fe656f40c09250f075513b1cb1ea3586", + "4dea9a7c19c4e1bfd0bb145a5d4c97ec0d23453c", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/sharedworker-classic/same-http.no-redirect.http.html": [ - "4a211294bf450d02949432269eb9a47e39e785bb", + "eb2572bbf7e398c31aec535d4642757b8f8ea752", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/worker-classic/same-http.keep-origin.http.html": [ - "638c68b466507a59ae5cc22ef0d2b82a045eb3b7", + "46f300c1d7bd171f1557d94a5a44b216e44c57d3", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/worker-classic/same-http.no-redirect.http.html": [ - "addcc15dbe35372b03d4fc53ade18a3317e89e9c", + "c4b07b27b68dc3ee5c83d991aaaddaa87c4bc210", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/worker-module/same-http.keep-origin.http.html": [ - "98905fb317eeefefb4fb538fd3c0cfdb0e6e7c69", + "b0ac1c29b17077f853565221ef6db66b94c7a9a0", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/worker-module/same-http.no-redirect.http.html": [ - "9c5dd969084f368afa9e2e6f58306a7e091bc646", + "cd1e64a30915b1d7927b62d9738f334b3832d61b", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/cross-http.keep-origin.http.html": [ - "741c874ad32f9e2e0592185dd99f52c2010dc4e6", + "0e9e15547d3b3d4f15d31f087ee75daf09909115", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/cross-http.no-redirect.http.html": [ - "b2e574c1d11425f7f6546ea0369930fe8acea936", + "c26dfcf033afa2df01306a570cda5989a1d3fd99", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/cross-http.swap-origin.http.html": [ - "8af9fd6eae46b591bdaf19101f69d487e9b2fa1e", + "bd586a443244ec913931e4e22ec9ee878385ef9e", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/cross-https.keep-origin.http.html": [ - "86e0d4eae6a1286e354b9127fc65401f15fdd54f", + "88959e93534933693ade0d41f42d3efaeacf9b15", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/cross-https.no-redirect.http.html": [ - "26460c3bd714cffe2549f53493f5909ead37bca5", + "be36467a4d79069bca90e706ba5c95a768dccf33", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/cross-https.swap-origin.http.html": [ - "c68cc7e8eda2621c85ab272b3c6dec9d1f8f3c7c", + "1ef6151c5c2e4886d156a466e1ac78a884c986bf", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/same-http.keep-origin.http.html": [ - "950af0c61d4dde4d01149a84f66d0b9e4948f316", + "077f319007be26c6a9a70b260fa5932fac24e96a", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/same-http.no-redirect.http.html": [ - "d4ae93bb73f4bd504f8ef0771a8ee14d3a647fe7", + "493064ecadaa045b6ae70e5dc8db75cf687f9b37", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/same-http.swap-origin.http.html": [ - "98aea0772947451de7d15182340cfe7fb32abdce", + "37546ab43f000d94e4234a9b3a3f388ef3cd2bc1", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/same-https.keep-origin.http.html": [ - "4a711f7a78b9695ae4fcf8030ed1cf5d5d4302d4", + "9a136ff3a7bd67e7a5a06865d194f52f71688780", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/same-https.no-redirect.http.html": [ - "ff444343b8f92e79e5f8b8530a11090c811c65d2", + "4c9ca2c3d9e07941a173a93e3feb34abe280e8cd", "testharness" ], "referrer-policy/gen/top.meta/strict-origin/xhr/same-https.swap-origin.http.html": [ - "cf57a0a574a04d32cbee68d9ca30f42168239d92", + "13ff80c9f1361704facbbccf630f2e7723e41c91", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/a-tag/cross-http.no-redirect.http.html": [ - "307e935cedeebcea0f9f07dd453bbf1634f0c604", + "2a4fdc71d6988ab38d5590012347b74a5463ab67", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/a-tag/cross-https.no-redirect.http.html": [ - "a4529bcf1f6d3bec3b80bb6682d2adba6d037150", + "bee2563bc680dc12dcd7fbf44a46b2267e5d3aca", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/a-tag/same-http.no-redirect.http.html": [ - "6c1dc71ba84c5fab0e081a8fe80366f5b6cb48f3", + "3cf7c4cfa0831245753b609ca7d37e8aa3d2b738", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/a-tag/same-https.no-redirect.http.html": [ - "9431a1765244892aad8b589882e1bb4fd9ecbf49", + "5d31dc5a83923f1e04a85ec45a5ce6bd42478b4c", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/cross-http.keep-origin.http.html": [ - "5043a93c2069e1f5866da3ad891348b6477a2af9", + "9f0f73c6a1674661fdff78b938f318c677c518b1", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/cross-http.no-redirect.http.html": [ - "46ce6978ba6442e14f336744f39d57cf274cf6c9", + "f0b082be6e51b51727d6e010afd425d1bdfa8a70", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/cross-http.swap-origin.http.html": [ - "74da7c14fc1476cc88d9ef3209d87f8de9ad8884", + "7195fe93f6b36ad66a0faa15d26a503d5e4bdcdf", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/cross-https.keep-origin.http.html": [ - "ca6825c633f8b2c06b79b7c8d230e9e938a4024c", + "5ad161743aacf9a0a917a9d9275a3fd7ce9a57a3", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/cross-https.no-redirect.http.html": [ - "31472d6aebbfb06f1892ee6710f89331cb0724ef", + "9b6e6dcbb86466b595ad5f3ec898ebf83947032f", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/cross-https.swap-origin.http.html": [ - "2b83b4e7195562465e1f15e6b1ebc80fa83ba76a", + "71338b0907a698fc3513973318986a11e2aca9c0", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/same-http.keep-origin.http.html": [ - "7d4734d6c7b98bad23b59834c1ab70074cb6f514", + "594f9d563794e3f3da190555419071261b715cac", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/same-http.no-redirect.http.html": [ - "9dfa39e64366b9c26563cb9ee78ac7330be5424a", + "805c88d4d596b8ffdd4045e6af452d10d12b33e4", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/same-http.swap-origin.http.html": [ - "0a8119c4d477676d4a14f82eb2838f94ebeea803", + "a356469f7bfa548f99f51cfb607448bfc66f0d7e", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/same-https.keep-origin.http.html": [ - "6d3c2c9c55d3eee2cde9a6a613b20d915a51e2c7", + "3a117de740c1c26166888cb51a8bf0229a77416e", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/same-https.no-redirect.http.html": [ - "267081a290d3b2604f731563878e20c864ab97e5", + "53897c4f2775fe47fff6e162a3f6ec721c9261d6", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/fetch/same-https.swap-origin.http.html": [ - "8946815cb3b67f1f504d62f982b311aa199aebc9", + "956b965c6dd78cf4d9b9373915aa56ff0dc7bfda", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/cross-http.keep-origin.http.html": [ - "c6e13851e685f6ea8582a1be0b6a4fc98cab9be4", + "e7cc89cccd27d0673226af17d290db2a6bad2408", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/cross-http.no-redirect.http.html": [ - "4b82e5f9617f8ea87f90770177ba0930d8a419ea", + "f6231482cf0290c6d929c0a2fce9b0cac93981ee", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/cross-http.swap-origin.http.html": [ - "62b088b40fe73d6d45e86f27c0ddbb3e7325f953", + "f74efa1a6361278c222753e0cf74669f15591fe0", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/cross-https.keep-origin.http.html": [ - "18d27e6f9b2a58cab265cff3b2ad925ca4d4d83f", + "e04e26d6e799435d75c310e48f7b490990908d88", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/cross-https.no-redirect.http.html": [ - "a946796357692b662befe9f75905433405baecbd", + "3683e682dd04b4342fbbe7786fc861bf22824126", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/cross-https.swap-origin.http.html": [ - "d2d9fe9a68362b1efa28150c0d09654f0196182b", + "69f3a571d5c2d86faf75ab6b436c21f9a48060ed", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/same-http.keep-origin.http.html": [ - "1a027047499e58d9b18264cee1dfa9075e027e85", + "a8e28bc7d69fa392e15858fc91738bd53fa8b405", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/same-http.no-redirect.http.html": [ - "53bd45e5a29d9819b3fb9d772d0a453051f59620", + "2e7076e712d78fc5d31cc926fa97086c5f5f45cb", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/same-http.swap-origin.http.html": [ - "7292fa7e65751b9814b2b617d01ee5c47c303387", + "6469fce2875724905862c6a02fc7e1cbd915ade2", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/same-https.keep-origin.http.html": [ - "df3627a40295c0cb8675e02b9efdb911100e3c18", + "7f0d96d05e5a8795a563f5d236dfcc9d3ce8cc7f", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/same-https.no-redirect.http.html": [ - "82854ae6b3d97585b9effcdb6b0e285129a4bcdb", + "f94e656a64fa1135512cd6aeead711b1ca7e7704", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/iframe-tag/same-https.swap-origin.http.html": [ - "bda4ac8f7a2a0670c2c49480707ab07c297fc756", + "55fb90e4614a8ad46d3fce92304f21038d86c238", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/cross-http.keep-origin.http.html": [ - "dfb903d27a5d8f440e25f7527a931bbcaca20887", + "d0523254d79e5892c33f71f6a4af94f752067798", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/cross-http.no-redirect.http.html": [ - "f755eb1e6b42c82655dc3d59f437a471c73b2f15", + "3d3c216767efe80ab1788352ea75c0a2e3c4defe", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/cross-http.swap-origin.http.html": [ - "0f84802c7093369f5eef5dc86a88d0ba4eabb464", + "e09505eb428d92418e7fb8fbafc0f9cda76cc3b9", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/cross-https.keep-origin.http.html": [ - "87948038d6252642c2b36260990c6024d716a679", + "bb12a372e85a2b5484c2863e1f60a4e839b9c7d8", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/cross-https.no-redirect.http.html": [ - "01490d5a8b1c518e918cc4d7b90df8c1c2a27727", + "4505b348ff05a2b899e70c02160670b2f722a9f5", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/cross-https.swap-origin.http.html": [ - "f5770d24910b75056ed8b636711905d4c42d030a", + "5f47b5fd49aee275b28ac449b5297a7f09dd35fd", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/same-http.keep-origin.http.html": [ - "5ff2659e9f1a36156c0fbac2a2dc274106d17930", + "00d436a5077d02c0800bb6beb336efa15b3c4be7", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/same-http.no-redirect.http.html": [ - "e8264215ef8b23f5474a5dedb3f37d5d90e45e66", + "7f6a1eb985835b59835adbb56e032d0fd31f17f8", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/same-http.swap-origin.http.html": [ - "971da6f64ef28ff8d621285e37a56b020ed4919b", + "99b41223ea860499189b68a70280ae857bc0c2b9", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/same-https.keep-origin.http.html": [ - "9f040e4c48d7d76f34f942c521628a7dcb50ea88", + "32f57765028b3bf8749d31e74e34a3d6744dc982", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/same-https.no-redirect.http.html": [ - "4710141f4bb1d9c43953ea56b4c6734e73bcd616", + "1f57b02808b936ed91ce194cbfc63c530c5089f5", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/img-tag/same-https.swap-origin.http.html": [ - "2a89c1f52a6fff224b14e510db64d6ff2909562b", + "2bd8be3f3c256e62d41d3de5aa4095e76bc47134", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/cross-http.keep-origin.http.html": [ - "aec7c665c6651b90fd7c38a0aa7e69b0272beab0", + "8bd7b97ff6b116dd334a25d681ff0236614ee1fe", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/cross-http.no-redirect.http.html": [ - "7a0821b7e837be8d87efc60e1a0d5be8f91362fd", + "217100684005b559b96595c1f4ed420ca862f162", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/cross-http.swap-origin.http.html": [ - "6eca4e51c92f71c79305294829f6c7b66f90f6fb", + "302b9eefc1a055931453cd6161b2d12210ae4055", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/cross-https.keep-origin.http.html": [ - "f5dd935985453174881bd635a4f41c4502de44b8", + "f6bc803e80bf4b02193a72ca5ac2afec8d773643", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/cross-https.no-redirect.http.html": [ - "a6322387413c083bbf4fee22d473c346a66370c1", + "b3188ea43157338cbc6f0b3c29a4d2aaf2a814bf", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/cross-https.swap-origin.http.html": [ - "fbc8b77ab378e84a8ade6d5f808828f6bc754bcb", + "77f2ddf3df6a364258f0543941fe84e1d90e8af4", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/same-http.keep-origin.http.html": [ - "680b2291e2a856ef891140022f000fbe1f2656bd", + "877c18a7c09fab8921509d1958765965936f6530", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/same-http.no-redirect.http.html": [ - "cd0494a52c15fe3d27954fe9d727a789c1b1cc16", + "2de7eef3ff3bc39eb5e4be73625dd927d1cdf6b1", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/same-http.swap-origin.http.html": [ - "7411f8963771ed6c5567b05fd1e5de60f0495468", + "99c31df1f08779efcb388f36cef6c1ffc6fbd0da", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/same-https.keep-origin.http.html": [ - "ad33638d07ee831869458588587bdf64cf40443d", + "c1998fe5f1aec61fe0fcd5442069cc86235bd623", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/same-https.no-redirect.http.html": [ - "73eec5a88e32c5916c02df23cc6e1353a6b6b5ea", + "c2f7da5b355779dbe43a0b11805ff46aba93214e", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/script-tag/same-https.swap-origin.http.html": [ - "cc46af534f15cd3a083a5b48e47904399e61d9a0", + "5f8dbc6f2b8b32c5b5de5d1fe317efb6bbe84ed7", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/sharedworker-classic/same-http.keep-origin.http.html": [ - "7dd104cfd83c06b0fdf0f1522d8e6e2b656bc76c", + "f3cead810eb99562aaa9ddfc829d8e1d6e7fb4b4", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/sharedworker-classic/same-http.no-redirect.http.html": [ - "259587c893d0aed61d4ebab831b4db3481f65fe6", + "a891328397f6994a9fe7222f7e9d6cf6161479cb", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/worker-classic/same-http.keep-origin.http.html": [ - "c18924d61f9b819726b83381d10c4d06b6ee8920", + "5f642933acdfe3b689268706904963204b3bdb6e", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/worker-classic/same-http.no-redirect.http.html": [ - "420f475af40dfe42f8093841b9c1a0b20ac0cd80", + "b93ff265ac6bcb80c532247baf6b73186ad08019", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/worker-module/same-http.keep-origin.http.html": [ - "97d742885e9741deb17501f8f3813a130b005c85", + "98f39536d14c131f8d2f3571724c34ff31997592", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/worker-module/same-http.no-redirect.http.html": [ - "84dd2dbf9863c4310905fc2ffbf8bc836016dd8c", + "83322269976f2b5cb585f23865facd36ea5cb063", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/cross-http.keep-origin.http.html": [ - "2b915db9b2c902ba50afeefcf37202ea0d42d59a", + "e2a56f0b063a2e7d1c3d3e0df09d1c4d6e69d479", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/cross-http.no-redirect.http.html": [ - "46570c616b3ef3f352c4ad33dc36a5aba28bfe7d", + "cf7cd16db2ffcd3f35153bf7bc20ab7a952126d9", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/cross-http.swap-origin.http.html": [ - "70a9387b596f0c56343ff94f8234c84d397ced3a", + "50db0f4132d64fa1b28e83829d1bbae1010db2d4", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/cross-https.keep-origin.http.html": [ - "cb52ad0c3b3d5081be1e8c19b13a24a6734700cf", + "4801f40d15b9be850e8335d93a0a6b8a1d26ead8", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/cross-https.no-redirect.http.html": [ - "4d23b5b1fe521bac9547846151163f7f2c30abe1", + "45832d20c91e4a9f3f8ca807d5c2c749332eb6aa", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/cross-https.swap-origin.http.html": [ - "08cdcda64f00985bbc9a838e591bee8cd0955b1e", + "58816ccaa324dc300564ce2ba7b0e978084a3867", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/same-http.keep-origin.http.html": [ - "0a9468a5cd5c9c4fcc7a5d01f406ce471b87a87b", + "23a6e691d4e08118b61ee6f868dd1be15a9fd1af", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/same-http.no-redirect.http.html": [ - "907dfe46189ee783dfe037bf30f857ca061b7c7a", + "20e58baf626f958bc249bc89b0a517a858cd06b3", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/same-http.swap-origin.http.html": [ - "0bbd06efbf6c7e9bb7b965d27b14e206e9c08ed9", + "1f87d92a8372b7cb666ebd22022bda5c3ed53ea2", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/same-https.keep-origin.http.html": [ - "a90ea834061b1ff2b80d519b250419db6eff8271", + "99b155b87f577bc4889e3a115b5f3d372eafff83", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/same-https.no-redirect.http.html": [ - "146bef287f7af9d2cb5d916713ebceb84e8431c6", + "c0c2a3374db816e84ed0f5bc3fc5f93c645c5f79", "testharness" ], "referrer-policy/gen/top.meta/unsafe-url/xhr/same-https.swap-origin.http.html": [ - "dcecb0d1fb07d418d787540589e652f466a2793d", + "f17303f9669270edf5e7035d8ab6473523d0c0bc", "testharness" ], "referrer-policy/gen/top.meta/unset/a-tag/cross-http.no-redirect.http.html": [ - "7b76180b1280f6a33125b03fce289bdc75644953", + "911f16d5eb0a380d9872009e72c1dbf37785ec05", "testharness" ], "referrer-policy/gen/top.meta/unset/a-tag/cross-https.no-redirect.http.html": [ - "ead7efc96337c66ce0e2eee97bfde5fe0fe6194a", + "9d8064ff8824f76d39783e5ed33b44cd4549bdef", "testharness" ], "referrer-policy/gen/top.meta/unset/a-tag/same-http.no-redirect.http.html": [ - "0350e03597cafb7582f73dc588d416ff72bd1e4f", + "cdaf18c1d258ca92b0003c73992750caacb0f171", "testharness" ], "referrer-policy/gen/top.meta/unset/a-tag/same-https.no-redirect.http.html": [ - "be8155abc71a036396917321e18c17726eb740b2", + "9a6c2b43a8b2586909c04037ac3f739f48f8f28e", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/cross-http.keep-origin.http.html": [ - "d6dbf7c38f52cfe136a313a225452e25fe9582d2", + "7fa2a77de9ecab2667301d865f73b507f56ce2e7", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/cross-http.no-redirect.http.html": [ - "d6b7b1d4b2303aec7eaef620e9573a827b4f6d11", + "bbf1496d07d2e4f04840b7cca2b2f867846b2d10", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/cross-http.swap-origin.http.html": [ - "228bac96566b97d482a3a0c209c8ffd23398be51", + "989c7934ed037417ddd3b30cfb0a1c02a78b427a", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/cross-https.keep-origin.http.html": [ - "23a5dc696034e3ed1b4aa9612befdde70ceffa32", + "7a596e7f8067e35bb985d23f7aa9aa31432538ff", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/cross-https.no-redirect.http.html": [ - "2b950c4a6817da9151e8257f3dd0a9ebfd733253", + "bba5c2a55a730992c6d35c94a3459f4f6347b276", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/cross-https.swap-origin.http.html": [ - "68d8dddf59d0f84badd8a98bfd25f1123128676f", + "867e64067baed1620991e2d78539b88775bbba65", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/same-http.keep-origin.http.html": [ - "68a2919245a5a9af207ff6e133ad2ef2b79663d8", + "5e004ab58926c21d8a814fc0d6c99f3aa5f2e390", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/same-http.no-redirect.http.html": [ - "9786e115f4534b5e06316dd5f66979ea1331e25d", + "94176020e8685afc8595bf5f877d23194f98bf4b", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/same-http.swap-origin.http.html": [ - "aeb97a127123950647fa69cb3165a78046a741f3", + "82b9de5fff3968b9f7a48afab8d69d3d33849cdc", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/same-https.keep-origin.http.html": [ - "27bf0fb382512b9a19f1b45c65938ae91d7b2520", + "20be1f2f6568282fc23a9ebd44aa84f7582c68ac", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/same-https.no-redirect.http.html": [ - "f2de2eeabfa438844b97856c9ea1376e1364524c", + "244623b424cd74ab05eda215488f391874e38f2c", "testharness" ], "referrer-policy/gen/top.meta/unset/fetch/same-https.swap-origin.http.html": [ - "2f059b49d6c0a9dcc9d9acb82472051ac2e71ce2", + "fbcccb86bfd334a720399e7c0ca4b701326c2c14", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/cross-http.keep-origin.http.html": [ - "51b796faff483aa283c8dde74d464f1d3bcdb66a", + "d2ea91e2d70ce9023879fba6c5e8378166966a7f", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/cross-http.no-redirect.http.html": [ - "ae910ab09dbac0a7d233294f4181b11f77592fe4", + "1ce5e1167c3b1695e83ec05a38d8e5ef8e067910", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/cross-http.swap-origin.http.html": [ - "6b96a09c17948d56e14b645c43754af50052bfaf", + "afdfbaa439267de54b580f58e57906c942e5deb8", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/cross-https.keep-origin.http.html": [ - "89eb976029d84b8887f4d299b7b1c6c378a15f4c", + "76040acbbdd655cd789937a4b9d058041bf77407", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/cross-https.no-redirect.http.html": [ - "d099040c32c19bfe2fcc12a459f28a6d60c798ca", + "0f31d22b62675ea623ab185463abb80a81d45f27", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/cross-https.swap-origin.http.html": [ - "026635498c02397a0d2b8666219fc47bede7b310", + "41626c4de9873079e97655e625f6a90fdeb940ce", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/same-http.keep-origin.http.html": [ - "a88a0727bf671469a2d33f99c869a0d02fbf8f6e", + "a0252bb469879486bb8deae6d7b0bbe4386755f9", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/same-http.no-redirect.http.html": [ - "04cc2e35ebcbf0061e62dab71a1ae4279642ec57", + "1c1193812145543a853ae0e1314a8d596c906376", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/same-http.swap-origin.http.html": [ - "c877963cb9afd648229b8b5ff6179bd0fb2cba4f", + "764ffe53f4bb290ef7057479a85abcd05f4e43b7", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/same-https.keep-origin.http.html": [ - "5a1af89398747e0efdf4265d8b9b79ce91cbf1df", + "5cc8685d8d72503700921fea1114a382cbdd7efc", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/same-https.no-redirect.http.html": [ - "4c9fb03cd2b73cf193f3434121ef236c4353def5", + "4743875860b357c35d92cc67cfce9d9c6fd61682", "testharness" ], "referrer-policy/gen/top.meta/unset/iframe-tag/same-https.swap-origin.http.html": [ - "d9ab586df6e6e3aa449ae6fae082f670c9b9612b", + "ca673fd821e153a13c7e6ee24e0dd6de4f718036", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/cross-http.keep-origin.http.html": [ - "9631d810efd2c0b2d7127ce351e37a4b5dee9d8e", + "b9ee419b2c510ab4b97057a424ea8f41632b7469", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/cross-http.no-redirect.http.html": [ - "6e03cdab423332817281306be15546db7fcbbbe4", + "95e968cd67d788beebcc10764623e37ee9c580e7", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/cross-http.swap-origin.http.html": [ - "f3ccb1f50425bd99ef3a968dfa6d59571f0c4db3", + "8eac9af58b6e08eb38826bafd7157ddff927200a", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/cross-https.keep-origin.http.html": [ - "27266df1e4758381e35767c4ae1c5a6852eb6947", + "6483c72a3e2b719bf3266b411e6e74bb64709200", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/cross-https.no-redirect.http.html": [ - "7299286879b5e7e3204f8b1e885cf13dfca3d1d5", + "3f32c6b4f9c7d8505cd5c03761117797e655f0c0", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/cross-https.swap-origin.http.html": [ - "53ae37b0509db25a84feeedb79397677251f6cc1", + "1dfd817473f4dfa606510cef5ea76fa62882b844", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/same-http.keep-origin.http.html": [ - "bb0fc8062f5cafe2f16560e03c5136b27e9050d6", + "4c6a93cfc28cfb45840312637e01ad2b705afc19", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/same-http.no-redirect.http.html": [ - "6d4ed57e23c2fb495d56d641c3316bfe9060521e", + "c0411dc5651e9986d6baca189fe8f867d780b7ba", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/same-http.swap-origin.http.html": [ - "719a6354f27201757448d7b00d76450888ff269f", + "d67e02ba7e4703256c39009d884822f07a2279bc", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/same-https.keep-origin.http.html": [ - "c39fdd14a4409a3f9cecc4a616cf55460f1c870c", + "6e90c0f4b8c0e21fab3eeda8cf8679c8b4c64190", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/same-https.no-redirect.http.html": [ - "d594f8b75eb7c4c150e52cd933152f0064d67ac6", + "9f91b2485eef9d3a97ea0d8b0b5e4ba4c6de0d84", "testharness" ], "referrer-policy/gen/top.meta/unset/img-tag/same-https.swap-origin.http.html": [ - "2fbe12fe8a8292d11e8d95a0a8ea9c99d44fcfde", + "138f3358bd726c42329dcbb1391d714fe8cb723c", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/cross-http.keep-origin.http.html": [ - "2a587ca4b11f08295a64404098925575b885f7d4", + "78ece0b19b8cd9e61059750f5a64d1f1d2425f64", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/cross-http.no-redirect.http.html": [ - "d0be10f9bcd922d7c712c91f8aa63e88b01bffbb", + "7a5879d9125157403db4d50ae6a9e71890e2d8fd", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/cross-http.swap-origin.http.html": [ - "85414f14de313adf52a8b1c0dc5090ffa43b64db", + "9d3381830e49b0000fb45285c87f81def3abbca2", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/cross-https.keep-origin.http.html": [ - "ec3dcdea3417d91b5dc59a42982a15c285d9b3b6", + "55e030b820dc91e3e8af2e662a9756b88af25042", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/cross-https.no-redirect.http.html": [ - "196770f8da688af4acbd0cd2fcbc233efae50cb4", + "3827e7a5c51bd00e844053aad53d80472fb2165d", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/cross-https.swap-origin.http.html": [ - "151d87662ab606881613e0cf9e06de47b15612d6", + "f767e02e2f049824443ec1b8ac45bd4a99b0f2d7", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/same-http.keep-origin.http.html": [ - "c186fa19693386ae0dca6d05638ef11b91c6bed4", + "0c2128b8c165e4cce9420cd51ed0b8a4d9a1c5fa", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/same-http.no-redirect.http.html": [ - "d0c49af446fe311605b061700e8a0582acdca03c", + "56ba08f9a4b033c831e255ecb57291763edd6ec8", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/same-http.swap-origin.http.html": [ - "594be914a131f43b828a88b58f6824a039deb2a6", + "8d2bb23f435c5d8f82e92bdfc95a5fcfe991da7e", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/same-https.keep-origin.http.html": [ - "f0acef6c59e420274449f9ce018bab1186c61575", + "b6ac13a209828872af809d98b1e001da6722707b", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/same-https.no-redirect.http.html": [ - "569f8c1ded69f5bcd7030c0506db009e80f01c07", + "9f2e599719c99e931f2efef7fcbd000a56c1a842", "testharness" ], "referrer-policy/gen/top.meta/unset/script-tag/same-https.swap-origin.http.html": [ - "c027bcd884daaa9a899cea93af2d9526416d6a3b", + "8b940c905e97d4ecff62098c05f0570bbbd8f280", "testharness" ], "referrer-policy/gen/top.meta/unset/sharedworker-classic/same-http.keep-origin.http.html": [ - "6e6160aa74a81e72b92e65b33a363987882918f3", + "1f4d8c219fef6eb9a2c4c738afbb9b0c24c22279", "testharness" ], "referrer-policy/gen/top.meta/unset/sharedworker-classic/same-http.no-redirect.http.html": [ - "03b0a5ecd0c9cdb87712ddd06c335b17acf47acc", + "8cfd6e34217d415ee1ec505bf495866dc1d60123", "testharness" ], "referrer-policy/gen/top.meta/unset/worker-classic/same-http.keep-origin.http.html": [ - "9c1caa904e3b0f7b47ad7de330309af282316caa", + "6fc428e4dd5f2a590ba46a58dd2a767f9fa3bca6", "testharness" ], "referrer-policy/gen/top.meta/unset/worker-classic/same-http.no-redirect.http.html": [ - "954ed8fa62a7dddc88f227cca83512cf6c2fe8e6", + "1609876cd6eff6f3511f5988bd353090a487b475", "testharness" ], "referrer-policy/gen/top.meta/unset/worker-module/same-http.keep-origin.http.html": [ - "dd8d5e5810468a9853d033dfd481b8527333f89a", + "f1e900f684aacdf8c17863dcc1a1797a67b68a21", "testharness" ], "referrer-policy/gen/top.meta/unset/worker-module/same-http.no-redirect.http.html": [ - "282912b7da492b02c31e60eecb3891756976e555", + "ba6fe6d2e21e953eaf455fc4be9291766ea2454e", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/cross-http.keep-origin.http.html": [ - "71192894ceabdaa457b92e64bf9e6eb955b4d158", + "4b2c48698ac96cefaf563386a7083e286363d82a", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/cross-http.no-redirect.http.html": [ - "60033300dd752760cb031a36ffa55fa67c674a16", + "9a7052570782c8d15072e53ce091dd2783356e95", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/cross-http.swap-origin.http.html": [ - "be62704fe35525072c06941485f54ec4fe40ad2d", + "affed7867a0c7d79f0c2320a1d47abad70f7b6dd", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/cross-https.keep-origin.http.html": [ - "7d4131664e85e23dd649d58be46b68d6a5eded3e", + "70893f732ee70ab5083f956b14796fe8befbe565", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/cross-https.no-redirect.http.html": [ - "84e65d398a13ba0ebb94a4c2644c39ab9a38d2a1", + "b51c293adfac4d0b9007d913ef290a18a839d83c", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/cross-https.swap-origin.http.html": [ - "1b7e54f4ff6066ed54bf63537ff595c601bf9367", + "242a50ca8cef872630eb1ca8abdd036ec75e3323", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/same-http.keep-origin.http.html": [ - "9f3d16e85d2fafb49f8797b96444ea6fb176b518", + "e48d5780d19f20d630aabfa5356ed9d61aab4c98", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/same-http.no-redirect.http.html": [ - "40cd238de98beb11dcf933072ae100cf38c8b1a7", + "2a116be07770b5247d8bf50531e50f80144721c0", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/same-http.swap-origin.http.html": [ - "a912773ca20aa4724148a3f5a7ae1d00eb7ab6b0", + "6dbf270a389db0e4a530534388e01da7948135d9", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/same-https.keep-origin.http.html": [ - "b0eda9910fd947e6bbf40f3be1bc9c1139e4736a", + "840f039a2172835a862e71ab56b81150586069de", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/same-https.no-redirect.http.html": [ - "ecfc6a58475f6556cf93eb2b913fd8076fe0f86a", + "8a66808cf18b894f58a5b9422c15cc43f170bc82", "testharness" ], "referrer-policy/gen/top.meta/unset/xhr/same-https.swap-origin.http.html": [ - "c166e90808a46ce549c19ec7e918d55d37a1ce7e", + "957da8954e71bd5a18b34010e5aedba9dce4ca79", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/cross-http.keep-origin.http.html": [ - "66b6fe0b7a557e9de01074217a04195527843a05", + "9155d66f626d20987fb26829021563f69dc3100b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/cross-http.no-redirect.http.html": [ - "51dd83fc0d80218b1ef6f1fadff2ee719128141e", + "5c9c66f16d5868ba05e3d3e8d9c37b795d037872", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/cross-http.swap-origin.http.html": [ - "c1e6a7f30129aca29b65c9211ab3be6f29c8da33", + "0fef98fe67da3da4c16d6aa048c40b85b228884f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/cross-https.keep-origin.http.html": [ - "f00deb6846230e5f6ae24736f3c43d9fbd3cfa60", + "a25dc4bca74fd5c44747399bf45d0b4dd64633a4", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/cross-https.no-redirect.http.html": [ - "fb61f41e54e5e791b4dd0cf9e187473a2dbe2721", + "071225581fddb413abe35233209282d082f0184f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/cross-https.swap-origin.http.html": [ - "856a6ff338c24845fe92fdd9479fbb456fcabe1a", + "ad37e713876a1f85a10bafe4523068abf034695a", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/same-http.keep-origin.http.html": [ - "5770833861abd2707db1737fe6bfa73cbd003593", + "9a0f5015ceed0d7832d759c478a3d2a6301e60c2", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/same-http.no-redirect.http.html": [ - "885af714433226ed9ea82d326291ed359afb4d76", + "a8459d5fb5fbc154d71c8bbd8fffb65738194942", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/same-http.swap-origin.http.html": [ - "36c1111776bbdb77ff5c4cda9e9f1797637d097b", + "f2ddc795a2196e05e9aa9e1e3ce9e9ae77a78212", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/same-https.keep-origin.http.html": [ - "a6419941f8eea8325a745f767bff2fd9fd78be5d", + "9f1006aef87b0a645baf567feefaf9be150f6f7e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/same-https.no-redirect.http.html": [ - "be30b932ed4feb1d7dab2bf64d465960995d3f72", + "183bb2d026468b6e67ffafc6ceb6c92d1afe0846", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/fetch/same-https.swap-origin.http.html": [ - "b97708f7ecf445466f1cab9f4ca1e97d92b1ba31", + "cca7a26a7681024212b151c865fc344cd8dc15ca", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-classic/same-http.keep-origin.http.html": [ - "01332cb58cdd1c44287f68814ec707e68fc096ae", + "bd9a2d5c70f9b1c07fa06273f810ece0d43b8cb9", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-classic/same-http.no-redirect.http.html": [ - "62443f00545915a5ceefa027f4312d8379e3aed1", + "61855c8ae1c5e6a897cfdcae00c7b1a993ddcb6f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-module/same-http.keep-origin.http.html": [ - "a409f58bdbd5ca2683e69b8e508fa68f5f2b5ba0", + "adaed5b58377c0f0796da8183df5c966529500a5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/worker-module/same-http.no-redirect.http.html": [ - "80f568bbec0229bb154830bcdc91fb9d5e9df0fe", + "7f9baa95389ffa16f2cf79ce6042f39db26ee88b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/cross-http.keep-origin.http.html": [ - "b56c1d08080a6b1f00fde120ee008aa9661e673a", + "23b7d34dab06236b874819b5660b8fd2a1872816", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/cross-http.no-redirect.http.html": [ - "c2905e353b86c845cbc9ce07bf439fb523b1ec24", + "09f8edbac1d03cd30cd82d14173a4fc17dca6918", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/cross-http.swap-origin.http.html": [ - "ef37a650f28e8068fe9fd7624277d9deb7551841", + "ef9d2149c5cf8af89e47ea4368167eef566f5ebe", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/cross-https.keep-origin.http.html": [ - "1dd564973cf05b32e64c8a73823ce34b1b3fc466", + "a2be318d79e040c419a18d87481a103f9d850f5f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/cross-https.no-redirect.http.html": [ - "455f21a7191a3c921831430a62c40fdd3707b85b", + "2f948f14dfefd921e22c80f8cab7ed90092cd7e9", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/cross-https.swap-origin.http.html": [ - "3e18a014d0fcd3f6ad698b8156c029ea08a288c1", + "c0e668862abc1820f8bcc2881e97522ebbcda579", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/same-http.keep-origin.http.html": [ - "1d18b76e328a38fd1998e785a5fb9c3d58023844", + "3ab9e93757b7c048d13a2d8b592208f4ae781fef", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/same-http.no-redirect.http.html": [ - "e2ff9ac8b48641a113ebd42fba45ffa546f76978", + "7c4c7efd405dc85376f205adc28a949937421798", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/same-http.swap-origin.http.html": [ - "8a013ed39f6de31e0ffa8d07dd7fefe22d0fa7f7", + "d166e4f69c69c66f020d058fb33c11209f89eb24", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/same-https.keep-origin.http.html": [ - "24018ebeaf2af35ef80d7fff0538a13b7524725a", + "a028e91e640e479854532c7cddb143d1a2746085", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/same-https.no-redirect.http.html": [ - "1d85bec82228b7937b8b1cd105db14a280ea28db", + "357578781d325061c7ba3de767707edcc5020a0e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer-when-downgrade/xhr/same-https.swap-origin.http.html": [ - "6346b6628dd4f3f684c1c702dbbc26931d243717", + "aa633b2a9d940f09acc4f340e219638d78e9f089", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/cross-http.keep-origin.http.html": [ - "6d20528d78bbad64a544ccb34e83a21af7daa124", + "e86c12f58cddaa1fbf2cdae45cd97cd4fce35f2c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/cross-http.no-redirect.http.html": [ - "d5d61b9fc03b9cec415daf28c0355617f894317e", + "88600b100b5b5dc3334b9049f8adf7604fa8f007", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/cross-http.swap-origin.http.html": [ - "bcc5b710ed2daeeba3714f012171fcde9aa5a430", + "df3bc910335785dd56072eaa3d654e35a8b272d1", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/cross-https.keep-origin.http.html": [ - "ce32dca4677e0a3c77e30b0e4927f67097511f69", + "c9906db455dc7c7a7adaee239a4bcc15ad6a6853", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/cross-https.no-redirect.http.html": [ - "1b25245c711cdb5c4c60c06e353b48e788a54760", + "bd793aea9248ce9eb824aaa167e9ec0c6e6cfb30", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/cross-https.swap-origin.http.html": [ - "b796645861661d3feaa60f8957a5ccd0512a1a38", + "1aa6c9228a684690ab883537d455c9741ff764fa", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/same-http.keep-origin.http.html": [ - "3fba161030d7c805b7a8ff37e6e07ddbfe556ee4", + "0b62a4d6be90adaf4070fc604d3e5b380058fd8d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/same-http.no-redirect.http.html": [ - "61ef726b8273d2adc27e51b40d1f7dd712286666", + "c4e022b0db3242fca371602bfc2ca1357644d61c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/same-http.swap-origin.http.html": [ - "bcb47eae284c55d7b3ebd4acb56b3f5fd8b8c5ec", + "33dbd3f7bc0ef5d2a3c7884b5515d82f2547ca6e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/same-https.keep-origin.http.html": [ - "80f998207b3b046e13787bc5aaa4af3c523e464d", + "cd721294d4eb5bccddcbc45ea215ddd5c60de869", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/same-https.no-redirect.http.html": [ - "1fddd37aa73a46cd10bd96adeef2345568bb8f02", + "d3e39b2b95e665f454db39a75038c97fd84a99fa", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/fetch/same-https.swap-origin.http.html": [ - "05c57e5182d9652c65b303479edb566880acfb0f", + "992381ccbbce3341504418182a46b5be01cb8d1d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/worker-classic/same-http.keep-origin.http.html": [ - "ac7046bb63231bb9d246c33e4da0da1af222ed1a", + "83e7f88061e69b3eefb9ce47b71acdd6ea4aa90f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/worker-classic/same-http.no-redirect.http.html": [ - "7b9475d11f0dd3bbd35baa66df47119df6cd4d90", + "dcd9f19ae2e447491ba1b4a01d4893ccc069a463", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/worker-module/same-http.keep-origin.http.html": [ - "ca92181460a42123e76feb4c08c0908cccfc7948", + "921e110ea9649ca0bcc3e74925b9e8e8d31f6199", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/worker-module/same-http.no-redirect.http.html": [ - "ab43f41d986897dc1da368c962860f4c9fda6cf1", + "ea030d97f9d4348af2c2f7c4509d4419fe26649c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/cross-http.keep-origin.http.html": [ - "d7c2793cb10f3dd9a7ca6fc71f539f9a2a94bf2f", + "31976ea3621f71c342a4cc4068615f914a6d86f7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/cross-http.no-redirect.http.html": [ - "e5acd9251bbb26f4003c5efe87a5c178993c505e", + "cf42536b8f93fb49f4c5aa10664cb7c3e408af8d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/cross-http.swap-origin.http.html": [ - "e02c2cc1d7d39115ed9ec029019680592e1e255b", + "bc8e6e1c3c6bedd7b29d3cc806239e0b4f51f7fc", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/cross-https.keep-origin.http.html": [ - "7b19f5ef08480da8722771be1178de47252c0937", + "ed7f08080a407721129dae6e363e7683fa34c511", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/cross-https.no-redirect.http.html": [ - "da274023e02ee3f4a4c1ced6daf91bc3e0336b8b", + "1f3da4826b6d6fc1fe415bbc49a9393baa0f4b01", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/cross-https.swap-origin.http.html": [ - "d29c4099a709744bb415fca1b043342edf4dda6a", + "d32552c844845d48485838b6d20259504885b792", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/same-http.keep-origin.http.html": [ - "aba84b4a8543eed8f8fb2ebe1b4530f283208b7b", + "a495c7fbc6ca2b27617701e73c98844d83d8c542", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/same-http.no-redirect.http.html": [ - "e3a716d2eaade2af899776c4a3b467dd4f6a6101", + "3595e62cf816a647a9b0ad6cd0b0ee570cbf0e1b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/same-http.swap-origin.http.html": [ - "64e3aacf93976312dbc8410cb15a0a4577f8430f", + "5af824ea04b0f17cd99f48e463fe27b8d8e9d102", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/same-https.keep-origin.http.html": [ - "47ac8644c8235b81ee9d531237fbfdea03a26146", + "876fcbb2a2cd06ba7c273625fe67b0dd15cbea00", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/same-https.no-redirect.http.html": [ - "9fa82acf6f9e422adeabcc2f53a88a78c9fe2ee4", + "472b8fe80d395f78c788094eaffdd3aed2a3a450", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/no-referrer/xhr/same-https.swap-origin.http.html": [ - "de5f54a16a6a3506947d434d37cd54387e312359", + "1ec110cf94d5cc1e5f6c7fa1bd1a3cb602a18a17", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "8729b063dd777221a2b818eea31448c8623f0b45", + "f8018f14ea0654a32ac05898da9925521130040b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "51c30f5bdb6829a562b5d34d13ddb43c917114d5", + "3b168c302b9b1251f51e3672f7189b1b918d58a1", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "f2b7d748e985770850a002a81b5d4a6862bfb2e3", + "014a32befff32dc82431b4077c28a94dfafb5ba0", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "aad980ddb237131dcc60594013b404283ea2dd69", + "466255e088d19b37a22800d347ec57e32ee4e986", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "3151188ff10807026166cc8a645aeced3fb2496f", + "955da21b7b19814dc1518508065b8e3d3fbeb9d3", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "024c17fd303e958d03673ae28c2116d9a96e601d", + "bda42a555551313f5cba0c2eeb7aec3c3848a81c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "8d0d4033e3c9b28be268cf351e89314c1f082d79", + "9cc5997d246c69a6ee36e25d01d6baeb963b5b09", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "59bf06dce833952b47092e745b35500b89e14537", + "450f215c07e3d847205f2f6ab83b79e178d77924", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "53987a6041a6092631269e6cd104d03350a5d4c7", + "724579258ae46fc67606ba94dc6e4f989570175c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "25612bba9178ddfb6a78a6024d277833c79bee6a", + "15dc1ba046b43254702bb4542048ed50beb02b73", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "e9b8e78ea4f38564ac444d67bbf0bee9bcc27ed9", + "3f7f91ff8948fb0c1ccca62d8bf4edd4eeae7cf2", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "0e1c1f228138a258fb78630211ca7effdac226d8", + "24ed5b1838e4903fdd6d4e95175e420667055c51", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "c3e972ce8d7b4b42f662714457f3beb296c29c22", + "f0ff87db9f3b4479e935510061303e51aee66203", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "425fcc2a6c3d49f9b4ba9d447502da9ad29d9c9c", + "323c47ec095b8f20a7bf238747494cc6bb74f3ca", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "485ac3f729f92311f279687e3a9296fcfb204f93", + "9c45c78d89b68fd67e6980bc6c4f2eb139ac7b35", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "5f61a1ef72e8d91d170dca32487e0becf22b436c", + "f4a20fe205035a014f263714b9e453e81a8dc340", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "c3b65435854a8bc97f7e449571395fce42292df8", + "558d114bf0d250cc84d1d2307adc520d5da4dcea", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "83f9788e2ba5d4f1437e3206f7d8d9b2548755d0", + "7294a748b831ddd6254873875aa68ec20b717388", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "ffcbe9fa729185b7b2806b79cb1c1d826edc3fbb", + "3aa1f93147c214dd06b463ddd0261ce12a6b0d38", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "59107ab67865c739548bd38221ae2b5c740774d6", + "f6cb8e7ed788c7c589e792ac580cfc39b47c8f91", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "a7c13f14058d6995f97dd5ebf7893c0d69d8cc13", + "3e5c7010ec06d7ce51d0ac32ae4c63b348549417", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "130cdd6cdd66f841fc9070491742b56cf30fe02d", + "a5f35f9e52899a13eb5d10508761a953d1ef20bf", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "083c2d92917e50829c171eae37fbed541d6cadd7", + "c5f69765ad3298f8bc11b7c33cf5fd9f56625ed6", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "60d2e5417ea98ceed6e030e98857bd5b20a48d9e", + "3878702db2d3b48be42458b1d4b48dd6a6b9b9b2", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "133c1109a41e1eb00ed6082830f5c40dbc90b06d", + "802d3d8aa01ba8396132eca0149ae29329606b3a", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "888fa14be5e052eba13bc444905c94405faab13d", + "5c4627a5b40bfd1c194e9177293127b6358029e3", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "be0b84957928ee34bece9d403925f726e95d30b0", + "1437d293002ddfd7229aa9891e2d2ead373445e9", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "14595f061dd350abde1857f6c5398adc36e84f31", + "d9e178af18b1fcff06a1826ca4f517c5b3ee47ed", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/cross-http.keep-origin.http.html": [ - "c11ceb3c466928e3ddee1192bbae1baa8bb3065d", + "667b67a5a702046142cf93cb722731431f6b7d41", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/cross-http.no-redirect.http.html": [ - "76f970a4d1bd57c360511a1b99f4c5c2223efdfd", + "600411800492528ec999b8856530bbc73e218b68", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/cross-http.swap-origin.http.html": [ - "d0ecd1bda69f1c327d010a8d38d9fa062691b8e6", + "c9908801142c1cd2e41ea28458196503a1461b40", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/cross-https.keep-origin.http.html": [ - "47d2257a14e066e63d6ccfaec995d51b0003a337", + "b7bb0e27d785e65189dac0cb2442c25104d39b1d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/cross-https.no-redirect.http.html": [ - "3830dd1e6bc97516e561459523eca1f357395842", + "024ce73fffd58c58b7adfcbe88d5067d8af15b58", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/cross-https.swap-origin.http.html": [ - "6884a499b9d07369e6fc124988e7f61d3c31c57e", + "92244ee1e266aa260dee247f9f252ee5dc643006", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/same-http.keep-origin.http.html": [ - "c3060ee9df4a370a8a5c86a6a17214d75ef21470", + "e004df39262a5ff4ab9e120ab5b40e35ae773bd5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/same-http.no-redirect.http.html": [ - "a1f0f836f2c9dc95189a3052f424a4808bb92d7a", + "0796d9bd8e757ec5af27a5a194c6d01631ade31d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/same-http.swap-origin.http.html": [ - "80dd7c3ed5fecadb2c27cfb66ceaeea1676a361a", + "19523f159df099c6c87ce0a93d440600556203b6", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/same-https.keep-origin.http.html": [ - "730e70e2dd43a1c778e5d97ffca45006df10870f", + "87376d86665163cb0a8c9ddf23a6956094bfe509", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/same-https.no-redirect.http.html": [ - "0b8c67449a71539a4df8c3c108c22c70283999a7", + "eee2bc0f23d9ba48b2eb8a4d2537a463d30447ce", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/fetch/same-https.swap-origin.http.html": [ - "545ee9085e68744f4b5516dfa9c469ae34442d3e", + "dd846613a7cf5c4dcb3109566ec4902fb4b5fbe6", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/worker-classic/same-http.keep-origin.http.html": [ - "98759fedf7ade7127e4b9919753d4aae9d827031", + "b483ea505295ef02dec37d107da71ba7b63b50f5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/worker-classic/same-http.no-redirect.http.html": [ - "98c0bf6f85c572e6f7348a3ca2cf24ee3f6c1a3d", + "740c4ef140da218806623e1a9f2106e531595a6c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/worker-module/same-http.keep-origin.http.html": [ - "295cc9765f3fd79d0d793aa3394b9dce7d7039d3", + "950aee01cc517d228039a4a5bb63b60fdfae3718", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/worker-module/same-http.no-redirect.http.html": [ - "a811f6bce99752da07382e813bea017bcad9b4f5", + "123a021cd1042370366ab5968219bf640e943000", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/cross-http.keep-origin.http.html": [ - "2cd5a5d742dabede3527599c647a578278f5453c", + "a9c1b279686451bccb1806f3694de9db16a529eb", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/cross-http.no-redirect.http.html": [ - "7e1f552b897a4dd765a68113067a348a59496cfc", + "a76d154cf48b52d931dc9ab4e11b23824dd1efc9", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/cross-http.swap-origin.http.html": [ - "be2cb91141b49bc91268f3ce524cbb15e6567023", + "27ac462e6a11258d0fbee9391787b6406cada7de", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/cross-https.keep-origin.http.html": [ - "01b3d8135e7f99d71faa9cc053c002040c8db719", + "61c12bd615fc2f362d6a60292098e0b4a505cb1b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/cross-https.no-redirect.http.html": [ - "a3b408f16950a74fbd46472dc2bdc1fa0306daee", + "1b42718b941f369b7e2c541ce08e19868f08d4a0", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/cross-https.swap-origin.http.html": [ - "e3f5f93bf72b0380abf3b20198e28a653c8a02f6", + "e1a13c0cef822e1b7ddfa742459a03b25a6d6b57", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/same-http.keep-origin.http.html": [ - "8301674414f5bfb0df584f49c361f4bfb69c1c9d", + "04778e6a7f9370c01b5ec6ef41e0a676cac43788", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/same-http.no-redirect.http.html": [ - "8933c42a45c8a8039217c2e264bafe389e2fd95c", + "750c51d97a28568e7323ce91f3ce8fdc94ad589b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/same-http.swap-origin.http.html": [ - "125cbd6e68a6f4b2bacdbdfb93b13fccc9c57540", + "65b1102ed48a74fec84576501ec25a9b7acb28c8", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/same-https.keep-origin.http.html": [ - "5a37ef3febec9c6b655335ab19ed739e1f1bcab3", + "b4a0c09da3095f88b8a2c2c4c121c98f9ea68b9d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/same-https.no-redirect.http.html": [ - "4eae1c35458b06f562d62c24b778605e66aca376", + "ebaf92063c341878b58e1095bcd3d9b84ff0c989", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/origin/xhr/same-https.swap-origin.http.html": [ - "6fdeef3dfc951568c4a44ed1b0c331ec9c0764df", + "6083f2e6ad22673fbde93e01e932989e196dadd9", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/cross-http.keep-origin.http.html": [ - "f84e7957dae9be5bd0745565b9463885e933be2f", + "5710f5059280533852203c444c97417b672e7c8f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/cross-http.no-redirect.http.html": [ - "2550130700f8c58e6629b7794dfb2ab9018f3961", + "8d77253a55d4256966526bb0097c49c1d5c679ca", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/cross-http.swap-origin.http.html": [ - "263451885ef5b8f117b3d6945ab917597da3add3", + "ae40668002aa83b2ce3d9ed63f5c74575089eeff", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/cross-https.keep-origin.http.html": [ - "b37d1750b28dcf4f6e79d7464dfcc3f6485c2590", + "1da453cad3667d280625f57ff00cce7377eb0b47", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/cross-https.no-redirect.http.html": [ - "854ec2f54e392c6d378290c52b87f4125e8dd72f", + "7910f640c84ac76da9b91d8da22743618da9385e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/cross-https.swap-origin.http.html": [ - "64d4f2031b36511f7fa9d24abea1a0696df3c7e1", + "ef71ae20e8bd8b023513546b55d548806b0d6586", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/same-http.keep-origin.http.html": [ - "88963b3c21ab1b087fe1e5752437eb70850013b6", + "4421d9693a8d237c9a4a58a894b4caf470488f90", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/same-http.no-redirect.http.html": [ - "ae987334497ec6e10f8fbb55a34f1b3950c6ebba", + "ed5b109dd2d9ebc1bc4b1205c7d6b2b519307216", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/same-http.swap-origin.http.html": [ - "e95dd4ae449dde916d9aa45c3891ebe08e51cf0d", + "5c76401879d8da97517b1a30e6c2a93500894d40", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/fetch/same-https.swap-origin.http.html": [ - "641e702f0ad6e955a785b447b1359563e27a0e59", + "4006d3a3b43887e37210e1eeee61f5a9d6fbece8", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/worker-classic/same-http.keep-origin.http.html": [ - "b6b9fb52e893ff548dc6aecee061b52c1efb6708", + "f47f7232e03f35b0a6567e7a75812fdf36e35ff3", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/worker-classic/same-http.no-redirect.http.html": [ - "a1f8ac2730619e5503a8090505c2e0f6842b4c6b", + "8de6127a6782d1a31698f8b49fd39e049e17d4da", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/worker-module/same-http.keep-origin.http.html": [ - "f6ce3e0c92920879a6206aec285525174deafe96", + "c5755b196142c8726a23a61397a1087d5fe81b74", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/worker-module/same-http.no-redirect.http.html": [ - "5d13e002539b1e3d75dd81bb3d2be56645017335", + "a296ee2917bb376d734f2efe751fe76c539ab79c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/cross-http.keep-origin.http.html": [ - "3ad437db868edd9a546e541955f4530f72846569", + "49cc1a4898c8a19ce36777fe8f42b4605cb355b0", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/cross-http.no-redirect.http.html": [ - "33fcf8468643d4e52031dab87c2cf9c804e4b3a0", + "9c7d7eb7a1ee9cd93d478ecf2ebb51dea199de7f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/cross-http.swap-origin.http.html": [ - "7676486094e5f9381fc24713eae119d32d6f7660", + "c466fe5beafb866caf2b2b2a8dfbffeb8b64bb08", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/cross-https.keep-origin.http.html": [ - "a81daf7ce19252ee8f586933466b912f5ae3013b", + "6247edbabfdcdaaa48e4fb16130edcb217f47116", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/cross-https.no-redirect.http.html": [ - "962b71316e34b28c070cd23a078fe36daf3cbdc5", + "dd88f712a150af0b98819001a42400a7d1d429eb", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/cross-https.swap-origin.http.html": [ - "363cbaa93d8e0d86f74b96ff30d265fabd6f00e9", + "0c4395a1e7be992c350b2297cf5385e2c0b0032f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/same-http.keep-origin.http.html": [ - "7c147f23eb62bc5fd6397cc9a25d659b292e0661", + "2d602531c83c9a2631236ac21c345522501aa8d0", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/same-http.no-redirect.http.html": [ - "d37f669f217de5609a26d9a03ecf63b22fb8afeb", + "f91fcc2a5c712a3365cafe842277c0490e43cca5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/same-http.swap-origin.http.html": [ - "ec2fdbd14d85ae7788f32e1456d204a3c6f45b51", + "40b8decd33d67e09b3b4cfa0920b8c2792096573", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/same-origin/xhr/same-https.swap-origin.http.html": [ - "a5cdb2c70fa17c77deb3618796bdb86e16f41436", + "85be91bd8c40e33f8f331059b998c66997a79249", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "765ede62e3d2667723c83970ba5e6d40f2ce9099", + "04f379f21e59b6ef0c9494eae1df1a8e852f84dc", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "684646f78315512195b58732760dcaf9eea411aa", + "7768727f457c7c0b27512d5cba8420801ba6c371", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "eb5d6982d7f4fe9712fe9d30af3f49e6e56dca8f", + "b26c6cf6b5ecbdfab5b1a80dc521308f4f087fd5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "b85e61b03123978af839c12e49db5dabb2787bd0", + "0ae84da8e71f5517b33c4be80c7bdaf92123506b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "41dc53d3a554ef518a27448524cfab9855dc558b", + "c4d8f9f9f75499c6696c1e37859a27daa9bda3ef", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "939ec199400b65dc794a43763471138747bfa391", + "16396ba1c4c434f47d43772fcf8198dd240db5d7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "dde5deb9c43afa8e2c514fd78c4d7d7c2a39f64c", + "1f652ed96e5ac7d6d4bad00a1da8a97ef07c2aff", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "c0de913d9c73f8a26c9415bbe901b0a9c8369b2a", + "7ea765e772bb3ad5fe1b0c2ce01ec4be405f8726", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "ec17260f0ee26a2e2b3d0a22376cf27b26967bff", + "0c67b6c5f5066a059588e59431b777f0ccf15655", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "7c659e7711bf0ae1176179fb900c6fd1f2a9f724", + "adfc4ffb8ec95a691720d1a55ac0dd340020e611", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "9171ad57bfe2a9c3ac85aa88faa6534383d4b239", + "4a599c231ae2a7a47e071f0b58ff94ff4e67408d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "5d1da1b64de1c735fe9ef19b978c090008e78158", + "09857811f5450c6b74c4f06b6b64cab70d2d9370", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "0992af88c524005b749946403fc8e34809727561", + "7684917966ce80babf3a05c8367076bfba55a438", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "2b267e474ed0c4f294a2d0cba4a5a27b0a5fb60b", + "3af26b1bec28212353395f2c787d0819809fbedf", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "5ce50b1a9050f1a94165f6347bf8535579b9b9a2", + "ffb9e111456a84f336994724a83c8632585d7c52", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "979cfcd9f95fd1461d7b2eea4aa8153cfa5b2987", + "2a84f11c652a56b1555cd59add90f36cc5ae473f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "4a59fb339ed02c1114eeffe4dcdde701376610bc", + "3c2c9f9a026376e2b54f18af62faa7156fe39ca7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "45d520f5580887ba2388b49796ff9a8f4423c6bc", + "191391ab31162d16cd83d070815a97eee5b5f551", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "8f155d3c1426f18fd92d1ebfe95f08d243a42587", + "027f55ea0c114ff2a62191a16841d50b90f159c4", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "c4a36aa3a9a4c2b200fb767a6e70bfeea0c02604", + "5933a804c63a130344951d4589c0effa2655044f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "458079006c0c8f6ddb9b9de7f174258563d481d5", + "9cab9b588ca70146e64686a30ed754691eb1943c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "99742ad3815c5ebcc1888de5e68b4cfe60436eb8", + "638a75ae1cf4d3bf6332028e3c3d5480eaaf3c65", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "d98173893ea1d56298d6fe6162432905078c096b", + "2d3fd299398e7f683daf5ec358c6be0a4163faec", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "be8076df6bc5484df5c5d55b4ad0257b78d43d05", + "e5c97576ff53cd6ad2e5a8d94cec4177ac931129", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "55063e335f0e9185c998769d92111338e4640b6f", + "3d7ce707212aa14a1f99b619b932c0ea9f1f402f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "a164d3ca9fb18d523aea155b7eb271b0567ec041", + "1e56cc4e1bb1a0233789b282c5b4090ea18d0ee7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "e9383d0a5a43af3d766991927cac1a527e6e869b", + "c057078c8d13779373cc2c86b81c0ea21b81ea6f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "3b3459d2b4480fdfb864b87432307a28a0186c3e", + "738db2d64d7d1c8ab407ab69a3d5472a9353c3f7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/cross-http.keep-origin.http.html": [ - "c791d7c6c90ae60adb4c9c53a6cc523bb07e942d", + "3c4fb90d43e6f2653a016f4b5834e1def7da044c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/cross-http.no-redirect.http.html": [ - "948e77c23236f9fa85e1a21aeab01e0486d73db3", + "c5de37784a2e87d9fff026942028000535a0181d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/cross-http.swap-origin.http.html": [ - "dfc46bb9a02fcd58fab39dd2dced42e1d9e7d084", + "65c20b010f892c36cd428fdf3664e421aeeeffc3", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/cross-https.keep-origin.http.html": [ - "45e35de3e6dcae3e4e7bfd0b7958f2ffb2e79889", + "c073bf16f041d3bd22ff7fc5375317f7ec8803ee", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/cross-https.no-redirect.http.html": [ - "959c1185ed0ef89d1fc4b96f53ba9fc788f3c360", + "98c60e9279a0716e86e9679eb728a58a1a2d7a29", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/cross-https.swap-origin.http.html": [ - "943d9e9300de1cf3898f65321385342147608a9c", + "fbf79f0c0d038d5f924709f166d323a7edc5eb0a", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/same-http.keep-origin.http.html": [ - "7a07ea6f0cfbf6e10bb6839ab61a965aff693bea", + "18d4d666c435e2864175fc9fbb0dd97452b23a59", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/same-http.no-redirect.http.html": [ - "441378d3d9e9cbd726578eaa8668c6804d539217", + "80ce51658e28a97fa3941b3545fc9bf916a01cd7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/same-http.swap-origin.http.html": [ - "e370555b9c4a7a91e2bff7eedd168dd25689920f", + "f594282df2a42c170c0a23aee7a8259b0b08b901", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/same-https.keep-origin.http.html": [ - "529f51178a356f93a3e1a94c500f9fe39890b8bd", + "ce992d7e1c100258f98e299fdae558d78b5444af", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/same-https.no-redirect.http.html": [ - "1f0a94076e662c91a0c5843e1d8956dc528ba449", + "884a0983e771be057ed72563418a5513d3edfddd", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/fetch/same-https.swap-origin.http.html": [ - "8a0b1e2d03e62d9cd2692da9aa2f09c8d37fb7da", + "f433eaeeaa672a934c9529b9d16080f4f9554af6", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-classic/same-http.keep-origin.http.html": [ - "a34370ba1089983ac0134c69d6af8fada5139e37", + "508ee25c82477a26015da7f2a0bb5c2c62c28e85", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-classic/same-http.no-redirect.http.html": [ - "9433fd397d20c78ccf8b47d268a120a4ce8182e2", + "f67f753460a304f634599f461984d52fddecc052", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-module/same-http.keep-origin.http.html": [ - "20fd1ce5099d50afa336232d9d6678e100cbb8bd", + "fd6190ee51389de60cd336f92b51199933835137", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/worker-module/same-http.no-redirect.http.html": [ - "e1bb290283fe4e25403f85f2d749bfa51876574c", + "cb6a39097b0a7ad23532aa4c123bccde2012b7bb", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/cross-http.keep-origin.http.html": [ - "4ad132b120bcd2ae8d045e68ee873aedcc7966e2", + "688ebe2503bca860485126873638ee6e232ab4d1", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/cross-http.no-redirect.http.html": [ - "d86f49f637c2d479ffaf059af5ba8d395d41bfb7", + "9a07afdd3bce80c02589943574dd1ccb80937ca4", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/cross-http.swap-origin.http.html": [ - "a341a0d62618425b731f1b301105950fc0f11b65", + "283eec4941b4f10344d802807f9f3e5166e0c31e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/cross-https.keep-origin.http.html": [ - "a78699124ed38c90a060c3b10de5165f1c834bf8", + "5eac4de84f244c034fda74fa61c658bff057767e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/cross-https.no-redirect.http.html": [ - "28c92ff3e639d67feccee703b3aa0360e0aa76ff", + "ef0a65d1cd678f05a8bd3122b0a698cf7d753449", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/cross-https.swap-origin.http.html": [ - "62df9999b4031765f615332115ff7a3c66f1ad31", + "9d78e4434f7d6a01cfb13b504b0bf32ef6c796a1", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/same-http.keep-origin.http.html": [ - "bc93d873258f49d2abbb8d85adaaeaf195639e5e", + "721e69e65777760b69c43546bd5334a6ab7cb8f0", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/same-http.no-redirect.http.html": [ - "ef8eca364654dc6dc8c43d6a39fa9ed92c5ae4e7", + "cd0a701c5ef8c444dcfa119ec4c22b5984bfaf1e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/same-http.swap-origin.http.html": [ - "94dbe390156e23ca46a6a8bc64113d2823d95207", + "44afa347ad17dad05d026ed5a25dcc28dffedfd3", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/same-https.keep-origin.http.html": [ - "b6347dee39f0c27f89b65368d709eb7786194870", + "0dbe4788c4f399d2b3f35ac72bfbb3ad5ca7e56c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/same-https.no-redirect.http.html": [ - "69c9db4e2c63da2b822949c57d80d0dd11b344fd", + "38907838076f8fcf6f2faf585d999fec4e9bba3b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/strict-origin/xhr/same-https.swap-origin.http.html": [ - "b4ea52d9e6b7d5fc66c53cb500f4e2292841500c", + "3490ec97737ad0493e5c3bff975897caa3f4d88d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/cross-http.keep-origin.http.html": [ - "89ec238f6e8f843edeccd270c13da4e9d597d893", + "44ebb43e8054a7539b8046a1115975d6f1b95467", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/cross-http.no-redirect.http.html": [ - "487db06f7e11490d106a4d1cd5ab68a3018b1270", + "c1da7df08f2fc1904c2f8871a04d31228e0d91b1", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/cross-http.swap-origin.http.html": [ - "52febb51feef0dcd3f65b0ebbcc6ecdbcb5861da", + "f68347b96002b628b0066f9f04c07e25b223b441", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/cross-https.keep-origin.http.html": [ - "1a3320543249424d432710b62a57832ce9cfe6e5", + "a996d9b6db10a3dcbaddd74a8bcfa02bf52509a2", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/cross-https.no-redirect.http.html": [ - "9cda36a3a36cf5f59d710caf8de557ad9a88cac8", + "e8c55b6da9055f966f915caf0714f10ba2fb87ee", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/cross-https.swap-origin.http.html": [ - "c0686a0dd6677ad1e38908d9b00fa1170f385f35", + "1bae6566373ca8568c516bb81b8787fff5393872", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/same-http.keep-origin.http.html": [ - "001f13c4a595e7be83561f5cfd5b2c36fd3df0de", + "e5cf65ef6715d9bb1319285af2dbb4ac50213365", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/same-http.no-redirect.http.html": [ - "3e87e65f4ec679b193b5c9e13ff2a5a9e57c844d", + "9a7972139145d61d4ed166c42385fe7b87a476be", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/same-http.swap-origin.http.html": [ - "9c00a33dc37f72114eacce4c4c54ef4d39e6dc36", + "46d7ebfbe649afc88bd18fabf7a88c6a9433ef96", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/same-https.keep-origin.http.html": [ - "e61756c1143c1f4032638971107f32559b95bdd3", + "6ec2a508d8c1e438bc54bfd5e31a1caa957ddf34", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/same-https.no-redirect.http.html": [ - "5d66b221d5b7c0eef81f2cba5231cc36aadc4273", + "b672a1ef975f20b9c5db629ebdd4435c13b94e2e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/fetch/same-https.swap-origin.http.html": [ - "1d3323cfcdac8f39cdb5ad0fbad8e0f4c2e6e8e1", + "8f87bd9a9cb7becff7b602c4e3bf8633cd50d197", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-classic/same-http.keep-origin.http.html": [ - "239933545865e3e979f379301f96e0628b743177", + "4545495108202bd834d64b20161d36d4ec0805ac", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-classic/same-http.no-redirect.http.html": [ - "24487e579901c17f2bb7304b1a2d2d0faae5dced", + "765bf8cd028c586866460e73c151cdbd68b919e6", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-module/same-http.keep-origin.http.html": [ - "73f210cf6b6b65cb8b0bb3a41f4f0408b0078752", + "de8e1c944af7c7d95aafa915d662dec637173633", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/worker-module/same-http.no-redirect.http.html": [ - "3515661e1dd17772fd184d7acea8f9de5f2dcf5f", + "c518301102964d28fc8257014b705eeb518f1227", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/cross-http.keep-origin.http.html": [ - "8752e769bb5f3eeeeac9df4e8397158cd4014710", + "ffd46b81a46d01b455832722ca9a60026af21a4c", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/cross-http.no-redirect.http.html": [ - "c9f944a4d670a422e58ffaacb533541e64211fb5", + "6b8bff53e847cfb3988ec31d673975ea55f17682", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/cross-http.swap-origin.http.html": [ - "63a65114fcaea638b7f3dd62d113a3b4fd86a601", + "43c5ea6227ea2eb3d5a34b39de08859cec7d8695", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/cross-https.keep-origin.http.html": [ - "2525bc4edf0fd031bed03a863ec3f1ab47ba3890", + "5e349917a702f1a0db8348a38097753f6e3296da", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/cross-https.no-redirect.http.html": [ - "0ba222a713bb3c5d9115332969bdef18fa939ddc", + "2eaa6b0b30b9e9483e782d22bc18c8bb8b929cc1", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/cross-https.swap-origin.http.html": [ - "d3ab30b3f8fb8ceab1ecb718eb0eb808c317dd22", + "d3e0009d56316de652e990701ec236ae9c12997b", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/same-http.keep-origin.http.html": [ - "ac870d795a39780a538ac40de927463bf65cfaee", + "62d3310f44cf4f6a87d14c2adb88f1c36800bc80", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/same-http.no-redirect.http.html": [ - "a054d11232afbe58de9b65528ca63f2d8374fa93", + "afa85368ea18bc76117223348b4ee282b9a6d287", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/same-http.swap-origin.http.html": [ - "83ed6ea49b94af35c15d8d3cbc725cc003327cc0", + "20b64aae72cb1c5b0d124badcc9900482fe2abf7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/same-https.keep-origin.http.html": [ - "abba4003a33cfbf8e9fad5ee0685253f9c64a9d8", + "38ee3daf519d4ac385c455d6c9fef6581d75c152", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/same-https.no-redirect.http.html": [ - "c93f5faf837db0b8d46c00788d046d2a98ccb3e2", + "7073cc96193055d2482f5953cce05a2b30d42721", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unsafe-url/xhr/same-https.swap-origin.http.html": [ - "e5ddfe102ed497321e290d6805f6991953f81211", + "3b9234a25ed7ba9e660a396e208c3a8770a1202e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/cross-http.keep-origin.http.html": [ - "f87c439209d71a0fabef91979d0545c9c0445c78", + "96c42a63c8968c1bf3215109f16bc1437bc15721", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/cross-http.no-redirect.http.html": [ - "2e25529f33745517c2b209389401a4535a0e5c3d", + "57056d69c145b06ad470fe21e27295535c41e3e6", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/cross-http.swap-origin.http.html": [ - "aa74648e670fb20b79fdd902595112010c05bc81", + "f71edf30584e6c8b2dd405bd052edd5013fec742", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/cross-https.keep-origin.http.html": [ - "a8a0968a59804d42d889166d7c5d7538d5b0ab79", + "89c3cfa17cf150ca100072d142ff3ece6dacb9e5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/cross-https.no-redirect.http.html": [ - "78e5de90addd8b276398ac7969dcaee3c2ad7d42", + "b076b2164a7a81ed0db46123c45a68390403eb4f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/cross-https.swap-origin.http.html": [ - "e3cb0f03e0fdb6bb267952ab2261732697302c60", + "9740934bc5fa4c25bca46a67a700ad5e8fd86920", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/same-http.keep-origin.http.html": [ - "8c615d24d427852ae72f79ae8beb33752addf748", + "04d5dfb8caa0e87d0364511da875f49ddb278538", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/same-http.no-redirect.http.html": [ - "5ef349eb5d441eb56f7711464b5c155c1d802f60", + "edbf6e6a9ac3ec66a39df099835a0b1270406dc5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/same-http.swap-origin.http.html": [ - "84e6b53cd2fd29f465e7423b4070ddf3b162823b", + "c84127d8cfff6d0f7d82f2c8cb99072cc92cdf2f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/same-https.keep-origin.http.html": [ - "9721da9c58c274b48672ec8c7ef74d9e4f7040c2", + "8ecf867adf340b396a1d6950ca40e207a84fc003", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/same-https.no-redirect.http.html": [ - "99ea34500ef9bed25cdd4a3cce37be620ecff7f9", + "c0e540c629370cb85537de799d1aeeef481025b5", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/fetch/same-https.swap-origin.http.html": [ - "81fb2f573cbf504870a9ca8b546e0d1a83bb280a", + "f6177e7f8b29c6e96e3336694855d87da1059bfd", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/worker-classic/same-http.keep-origin.http.html": [ - "ace5fcb03a3b94f5f26f5e71cda62b7d6d260eff", + "07bb67b7db533b917081ee87b50cf3be378acd24", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/worker-classic/same-http.no-redirect.http.html": [ - "f6ad26085ef980befa89157923a06dc18ca8449c", + "48e9208a3468342bfd7a7da73ca532c8ca46a8a7", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/worker-module/same-http.keep-origin.http.html": [ - "7dff9a4a1cf4d4b9daa5d0ae80e3d5ab028e3472", + "3ca8ef7b4b8cd3517b7ccacf970e2dac92daf74f", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/worker-module/same-http.no-redirect.http.html": [ - "d2f60a9aed3d08436020adabc61a956e562e1c36", + "05c951240084f374cddad23f0a792cda47e4f3bb", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/cross-http.keep-origin.http.html": [ - "46ced07040fc5a4432501e3f89330daa08fc0605", + "f20c066df28788f513459e85f6b3711505554ebc", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/cross-http.no-redirect.http.html": [ - "e1b9e68f4355c0391842184cfc756a4a239ebc84", + "1a8f13ea9f76dd331acf7d9af7cfcd0c11c24b9a", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/cross-http.swap-origin.http.html": [ - "7da4e2c3f886c5a1eff99b2653de1c9f692ea466", + "acb564d16e8ff101bc96f614b8ee7a69ad7a213d", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/cross-https.keep-origin.http.html": [ - "80c598e29d98646a3783c48e309210226fc02046", + "18d15bcf0698cbccacc93bd4abb2c0210451b68e", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/cross-https.no-redirect.http.html": [ - "595132c6aa712cb78a05e8fa4418ba5f08db7dfd", + "0b5adda3d8161ce9c057ad99c78cbe2ede3074b8", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/cross-https.swap-origin.http.html": [ - "37f034b327b9075959c4ea1fc012650eb5b20e03", + "b1d04d2b49e719acea8bfe984c95a729444177cd", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/same-http.keep-origin.http.html": [ - "19d4ef2430e1716fdcb83fa95a2d9e0447a4df55", + "8ecd583ae9474896ba95cabba1999a7aba46ce81", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/same-http.no-redirect.http.html": [ - "98c4f7a1eb4c2182dc64b740df647b538102520f", + "dd428f734ecfe9d6caac497302a519d3adedeedd", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/same-http.swap-origin.http.html": [ - "00d79fe858102bbfdb6fc9f11aa3468f318eb586", + "c34a62747b2f85ee450cb80e85fdbd1216248175", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/same-https.keep-origin.http.html": [ - "7d7d06d83e47d659c33b4df197c8f50626ba66c0", + "99db6c438ae1a27cca42358207f185b46559da17", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/same-https.no-redirect.http.html": [ - "7c71974147ede2c621f26aaca595a06490d5f0c8", + "922174090b7c0b0b1a41d3931587a54e19344aab", "testharness" ], "referrer-policy/gen/worker-classic.http-rp/unset/xhr/same-https.swap-origin.http.html": [ - "6cf8f047e1532cae416c5cfe2743ebccacef194d", + "fcd2af596b046f34fbf63cbcc612cb406be2d48c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/cross-http.keep-origin.http.html": [ - "818733c32969ce31d6bc79a5913c4a0bbdb1f5d4", + "b3ea18b9fb6b58b0dac38795df3f6fe61ae537d4", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/cross-http.no-redirect.http.html": [ - "3dc64f40e063326e2de896e256f1c4fbe7d32ed8", + "7f6edc91be64c10e7c3c460c0525466b4b9fe8a0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/cross-http.swap-origin.http.html": [ - "663d39d31f203f25968d2b2e48bf9eddb19b6ce4", + "61b7268f9b3868b1daa6c8a1d844448c228fe2f6", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/cross-https.keep-origin.http.html": [ - "edcb9c2dae36bbd9211ebb01c448ce4ae920ac80", + "072d94f9e34dec56a0014993145b6259af7e97a3", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/cross-https.no-redirect.http.html": [ - "788f96c8790096f5c583ea5e764aa1ba34dc9398", + "d8eceb33df51132a4775db88c447e72ebb1673c7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/cross-https.swap-origin.http.html": [ - "46ad1a34c081a34cfe693e0b521b444539f647c0", + "b329b3351a2a7ea7099610ea76927d32d3b8b89b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/same-http.keep-origin.http.html": [ - "520b9fc73e97c86cdff5283ff38e43b6a56452f5", + "fa23f721ae230ecb0d86fa5a4d5e97670591ae1e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/same-http.no-redirect.http.html": [ - "735926ab71e2b8aec6142974de92389379270f2d", + "30a0b8679b0311d86098d5fa5b553e4188348b72", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/same-http.swap-origin.http.html": [ - "26f2ba7d581e07d64c70df4878799de09cf3a435", + "aa407ccbe448245efdd29d921a8fd698005fd832", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/same-https.keep-origin.http.html": [ - "8f814bad57f6be1df11987a717b3d4245f4c002c", + "7710fd83c17ead83e37644c71694b9c9c7925c23", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/same-https.no-redirect.http.html": [ - "cbd9e020b6dbebdc1c44f65aba7e4e277ba32abc", + "f1d54a402bf8794ac8873b05ff4ce5dc8ec38a79", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/fetch/same-https.swap-origin.http.html": [ - "a411ffc400ce9fc23031ccd69f0c94327936692e", + "0dc6271f34a8c6122725b29db7faa1c97ffd8705", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-classic/same-http.keep-origin.http.html": [ - "a064bad0e50d4f78bf961633c404633d88ca242b", + "2a87dc17257659ae7913e46d613f761f0819d173", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-classic/same-http.no-redirect.http.html": [ - "cdbd2b055bd06b61efc3b23f7de79672f8b477da", + "292fdd1e8d1f7ec3f5a21f5b946809b75bbbe232", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-module/same-http.keep-origin.http.html": [ - "a7b653e2c76518535b49e0a5382d4edc3dceaecd", + "ab959688664a77ecfc20d9e3a83d85e07deee006", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/worker-module/same-http.no-redirect.http.html": [ - "540059440bc8e0c8f3b9904c761d0dc137fea008", + "a5cba23dc8002d20d99130f457c994c5d0a33d9d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/cross-http.keep-origin.http.html": [ - "ffa896147d793bad4702a8d20d4aee077656b318", + "add8b647fa07fd5543919782382fe3e658a52e68", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/cross-http.no-redirect.http.html": [ - "c18106c02f23db2b3bbb8f66ba750a2ae8fd687e", + "400756b999e9296f157fbd9f8ae20ca48de746dc", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/cross-http.swap-origin.http.html": [ - "d9b5ea9468fd41c2b70f0560bf9c119aa66476dc", + "42e16819495eef1a1291ce5016e9a195b2fc6364", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/cross-https.keep-origin.http.html": [ - "c6fd0f10a5d1240db209a79946f3c93597e5aa55", + "e9a77ebe70c02d7ffb476b2cb108f5e7eb1cfbe7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/cross-https.no-redirect.http.html": [ - "66f8ea95d8ca8382f6f96b01c73dd8f182048d71", + "3e3810e1f7362a9879b455e5dcc2a3b075b25154", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/cross-https.swap-origin.http.html": [ - "c6e23f8507a48a16d3f880a7bbbab7708e234f33", + "423b23862fdde920dfcd677f1388e26059d92939", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/same-http.keep-origin.http.html": [ - "b6822c58e0dc1facc8c25a950915a3a64b7fdbf9", + "17433da6149a789666afb18dc098d1a31194baec", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/same-http.no-redirect.http.html": [ - "6ee9252103a61f28cb539622582ba226c1e8afce", + "9cec405a2ae83850417484d7777a8d927bfdd46e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/same-http.swap-origin.http.html": [ - "ea57e8e319db42fe13018ee76fdeb96eafe85fe2", + "04d58fa287cf76998dca3849510e74e781802246", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/same-https.keep-origin.http.html": [ - "edf7ef0c4797e06674dbc0e26e3b59e667754981", + "a3435a931317dbe444eff370aa8de237a6ccc641", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/same-https.no-redirect.http.html": [ - "51c6ebbe347d20a4c132aef05eaaf126e038334a", + "ec006ea8fe3c957c582b5cee0193f107b9e5f4ed", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer-when-downgrade/xhr/same-https.swap-origin.http.html": [ - "c75fa94e278b4c9c5e4c8b5336cc4a96d965b3bd", + "d9ba51a757c7d878dea95e5a5ca546df89eed576", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/cross-http.keep-origin.http.html": [ - "d6875a5e66dd63cf372647782079a1aee5107047", + "611f331b7357c846ed8005095cf8882e3540c7d0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/cross-http.no-redirect.http.html": [ - "a7a9256beaca4faa41a352250ba0c97ed3b60328", + "d04e5019da1d1244db7e348f973907bced0a6dcc", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/cross-http.swap-origin.http.html": [ - "2d8ae3103680ca2150e5b8c58bf02e1fe13be9e3", + "193d0d7d9b5ce1ae5752432deda9d7e809d561b3", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/cross-https.keep-origin.http.html": [ - "a62b8e83f7c6e4776f83725c8523e52039183b6c", + "517274e7857e34878e5a62913385adf9fcb842c7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/cross-https.no-redirect.http.html": [ - "6ba5d7586db49d018cb38f5bfea867aabe9e5751", + "89f91632266e633d782d477250cefb754f14aa63", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/cross-https.swap-origin.http.html": [ - "54e03e817b3a0ad0938970aa40718a1d068666c0", + "15b057805a4978028efdd9907a0ae50d25154e78", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/same-http.keep-origin.http.html": [ - "f72e8584686207ca46252414342432a6dd4a49d2", + "82910461dd7760ac484e017c9077f9732c80e7ac", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/same-http.no-redirect.http.html": [ - "9c2722ba8cc2636113b0822db9a3623056c36282", + "67d5422be002a5d850ad9735f352d8cd01c81445", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/same-http.swap-origin.http.html": [ - "88e6e5817d44bf2398e98db62a513ddaa121cced", + "d7e2dfba9f36fe04c6cc826094c5b0f8b0aaa533", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/same-https.keep-origin.http.html": [ - "373d60b5c27b91c3b7d498142009ab21a56416d6", + "bf181457325aa6e6accbe11f1538e98069729f91", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/same-https.no-redirect.http.html": [ - "3be6f3d7d54ef8e2af74c687ed5221908c519831", + "bf48e758e1c5c60bef27f0893a4de2d3e38775d2", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/fetch/same-https.swap-origin.http.html": [ - "9963495e1fa3c32914470865c4b525b047c075be", + "e3ffc841db80465969b85767074d39384abde431", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/worker-classic/same-http.keep-origin.http.html": [ - "c0bbd9e80e1936e612d7e82c6f5a17c3b2a8fc10", + "d2edb3df4226891e7c1e19387ae83249b51e85cf", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/worker-classic/same-http.no-redirect.http.html": [ - "710d8c9d8316c67ef00ff60b0140462f88e0cd56", + "ce3870f2463f0efd0417df0ef6affc40366abcbe", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/worker-module/same-http.keep-origin.http.html": [ - "46a77fc0a0975b11e86137367da7d86d0581997b", + "23c0dfeb05ec40ffed8a3b4eef51525d2e9663e4", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/worker-module/same-http.no-redirect.http.html": [ - "f7a98d21c2270bd614927f8127ba67b273e430ec", + "c58ad5f2129b5437d14159c78d2d7f4cbaaf51f5", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/cross-http.keep-origin.http.html": [ - "7b0b513fa4adca942e3610b3b335ec2be6453ed4", + "82f55e05aad661c9edac25884640893a3747a872", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/cross-http.no-redirect.http.html": [ - "a4383529eb9617171123992e7ce83d6463cad759", + "d69ade0aafd1af766d58e49869fc434d02980e75", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/cross-http.swap-origin.http.html": [ - "e51a3084032b64b644a3b6215d3a696ac0440380", + "b0de756296956f7e5d880bd1c474e62e13f600d7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/cross-https.keep-origin.http.html": [ - "ad2ce3f93e11f93ebd1f4af982a83b5aa7a79b41", + "7d650f0063fd371402236b4adfe5a60b0053bcf6", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/cross-https.no-redirect.http.html": [ - "3885092582d960993eb086dec952d2d6749f353b", + "df7182c5d107d1a39a235c71f6bdb877db7d0890", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/cross-https.swap-origin.http.html": [ - "48a868c082ec9fe432f08ff14c151f62013d46bf", + "cb374d68712728578eb0c14b2680f0c482ab1130", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/same-http.keep-origin.http.html": [ - "2880de69536296a0b85b3b2d251e6c8dce86ec3d", + "f8404a257475b4cfff3695cab496a18f1debe87c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/same-http.no-redirect.http.html": [ - "03b819fb3d19b336a0bc925b6338d26c277ff4af", + "6dc3647c053cfcb0ee32049b80e14eadeb82bb81", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/same-http.swap-origin.http.html": [ - "dd35c863635d20d6ed475fea388c7d62118ba53c", + "173c27e96dfe2bcc03b70df56c58f236ce857eb0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/same-https.keep-origin.http.html": [ - "0b67779386bfacd102cda8a971f62ed4c2cd15d2", + "4b3dd0fa3afdfc3a5ce824603bc117c04028cb67", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/same-https.no-redirect.http.html": [ - "c52972debadc583f1533d8778f19d8cdd47bc4b2", + "1ce6da3d97ce523597643ee3b0485048e59c93b4", "testharness" ], "referrer-policy/gen/worker-module.http-rp/no-referrer/xhr/same-https.swap-origin.http.html": [ - "5ea2c27cec545ec360ddd066e1f3088582e1c6b6", + "8cc3e20a88c1ade33acb8cf6290757e8b5bf2924", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "5156daea69aa54b5feba3a8b652513dc62868b39", + "ab119e2dc4655e517c57b4cc1e35a02485a8646f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "f909452193408b4a60f33edb04c23b4697b078af", + "084097e726029ba5b412ae66842690a1c3927fc9", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "c99cb5b5bab6840b35404b1e399b0f2ab4d06754", + "b9b4829ac78eb2d1b2ee654949a3d673c27fd4fe", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "e063175993ba190da13a95eba4e735bc6f61d0c6", + "7aff19a116933c3ff6eb3aa438938aac6f9bc73f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "32008cca880987d998a93d482a34af5deccc4573", + "86bc9d2ae053976fcef96043a1f3b11cf54b9258", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "668e35619e238f8bac6fe6da0e5cb19663780e48", + "2f0325f0377a6e16012ccd4cc08daa7a2b544cbb", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "227b513743074608740817cc3b0e235c124543d8", + "7c01039414e408109ddeba9791d9ee2e9a9b8b59", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "aad87e7856548a54d9da6e78f5a847ebd25b4fcb", + "f1a8981a37c0e7ea60157d8bd4ac638235d4acab", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "520522a066c2931e07effc0d202dd0451fd39948", + "058f6cc6ca036f506270e01d2bd87525e74556c3", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "8e1c6e61d4cf3ccd3d77a9a66669ddf3c46ae6d6", + "8eac07f576e3b981a77334dc4cc1f8a633595ecb", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "13ef33f29e232395b4a47a5b62188efbe79f27d3", + "ad64aaa90f9bd30b40666d0496be6fcafa21b35d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "5234b75b68c08e23fe5a7ce54f866d371809faf0", + "0e7e7a8942bad19d49a5a1d049f7fb36bf700d1c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "53895882f62b9ba0469ebc1d824063c764fc80d2", + "be0090489172006897875bfed70774511cef52e9", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "2a7fde0f23e7a53f16c3834a8747a9e11377a688", + "42837199b749113ca1845ebdd5c82e97112b608f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "ad13fbe59fa70d5536af1811b380d0a85a77fab7", + "acddfc44bd28c3596bbc8321b065a8f998540605", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "c67005d2d44caf567fc5968fbc519ae67eba74e7", + "192ea4758816ac8015c1bf7f6de88e4b4b643494", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "c85d240a123cbdafcc2499219f9789a9bfe660b4", + "cedfee0933beed058d9037d74a9fc08d3f707679", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "5c09631e9a969366c86dbdae0c7d827cbab9ea8f", + "81c14463c9a4c9a8a73f49bcaa49b14779cb995d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "eedc489caf598ac36e5ede5e83d9223f3071e5dd", + "ae67981efe25511a08b52f221a5246bbf5812d20", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "5bb6cb6f07c24c9c801b4da2425474410d49370c", + "e5146301f3a57d3cb3438782470fd7832ba5ecda", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "bb391df01c4d4f909ce55d2482b706c492775d16", + "8b33dfc99959fe1b0127b586342651e1385fc997", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "6201cfc00daee0e04b05a3eba4e85322e1d2b628", + "75e60476ab884f61f40364553ea65f86ee1039cc", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "c1168e1e0c3704e8e470f65d26c2af1613b49d76", + "442ea6e0317c19a8502ab735e9be5a2109cf7363", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "dcd18e9c90ffd269328d1efbcb3a5928faadc051", + "a96bb634c2c77ba16d162831fc8aced21a20f146", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "947e464ca12f1641c1757624a3e7f715a77e2518", + "b7311f60dc9f4a3c997e0de87ae6b11df8a2a0a6", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "58499fdf5036d8b776e396bf3929932fcca74342", + "c08aa615fb83a454af4f7b3e8a68744744e57fff", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "6a8b94b7e8227410f1cf16955f957172fd6159f7", + "abbafe39c3c449ffd4270a7b32c51e65c1d18935", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "761e211421750d53063b04fa617514da995edbba", + "8bed094121eda8b1772cb75ef5e769e79cd5cf96", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/cross-http.keep-origin.http.html": [ - "da5ab1d009dabf3e3baf09b014f3049fce611045", + "48ace14fc0211af5e7b5b3acbc00cf822f7274d1", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/cross-http.no-redirect.http.html": [ - "5ea186112998290e3b2df19942d0256e56372049", + "eea1c9d23ef2ef0d2587c13c6512196796e11802", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/cross-http.swap-origin.http.html": [ - "e98531f3ea6fbb9fa83972555a75c07c2f5b73d9", + "1ac01f95cf51c37984e74eab1b63e626bcce9a1f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/cross-https.keep-origin.http.html": [ - "7cdfdf01e3a0d7f6f1ae3108d632b91a71d7235c", + "72ffa499ba2df76206c9a418ad516364a2f3224f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/cross-https.no-redirect.http.html": [ - "3e829995a21aca3b757781e6dd0766f177154152", + "4cc4e6aee0b6d4d0a0ced9321a31a450c1496abe", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/cross-https.swap-origin.http.html": [ - "82cdb9e1f7af7f3da077c944e53d37c371eedb6d", + "20aab6e89cc6b1bd247457ed472b9cb724214011", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/same-http.keep-origin.http.html": [ - "83b5aa77252ced3f5256c9b9bea09106fcdc301b", + "730161ba65882d49f98b9fe3936d3b4300b2e510", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/same-http.no-redirect.http.html": [ - "0e10655f574cfecb0891a24a2acfbdd3a2ac792b", + "06900b943d1364c67db6a3c1b5896e5a0ff6a459", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/same-http.swap-origin.http.html": [ - "626ec6f8d347c90dadb760698aea6f948a3f4223", + "3bd3ffff584d70bebe775d1ab76bab4a19d48067", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/same-https.keep-origin.http.html": [ - "1d3355357119bb9d2cc861fbf9b0ae9c7b43cf1a", + "03342b57f7d9dc81cc645151a009e7d09f4dd1ca", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/same-https.no-redirect.http.html": [ - "b14a0eb62b59dcd2ab8b2a0b00124516d3aef758", + "0b953699d93bf8a78a1b8cd7ae9c7cccbc5ac255", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/fetch/same-https.swap-origin.http.html": [ - "3479de230fad7b6fbc315e8fd33e73784503999f", + "fa7bcb6b79c613954905d7ef5651a189a936d941", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/worker-classic/same-http.keep-origin.http.html": [ - "5f8779f15d53efc80d76009a4a1c552ca863fcb1", + "c68a11182bb370016b06b2354e0ae2fdf599d1bc", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/worker-classic/same-http.no-redirect.http.html": [ - "1efca23c97ee19489570dcff20596f94020f2351", + "35c7d724cbae90e309565b2531fb1f961577f10a", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/worker-module/same-http.keep-origin.http.html": [ - "c5509188f5ec76d57ef835dd379600e471342f2b", + "639239a96c205f760eeca47502255fd57f8326f0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/worker-module/same-http.no-redirect.http.html": [ - "2e6db6094856559f6565af9ab2a62e429f2f5e5f", + "cafc59adfbb53fa429122230f05687cedcf29c56", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/cross-http.keep-origin.http.html": [ - "cb85c95cf7d4f06e23f4b67bfe17ec4cae2b3255", + "b3520eb171db71c725585ab20d3e617635bfe518", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/cross-http.no-redirect.http.html": [ - "c0fc6ecb12a2db45e120ab4109f9d497bb089457", + "60cc2cc6873de5154ef41342c2ec080594e214db", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/cross-http.swap-origin.http.html": [ - "a76d66e002eb0fd20aec76bf96d60afab1b03698", + "df80d9d36553959b8567a28dd5cd0dfb6ee374b5", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/cross-https.keep-origin.http.html": [ - "7cfdfdd2f7bd5d82f3d6103a6545caf4a51d4112", + "dc270ea2b45d01b0cc057cbcabc3d8a700f70db2", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/cross-https.no-redirect.http.html": [ - "d7312ca7109fb1ab91c623bc8fd5197c0faab638", + "ac7521db7095690d22be9bc058f42e2a148a4703", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/cross-https.swap-origin.http.html": [ - "72625cf7569c9f5d1f7b782b62865fac451acd76", + "a51a6d6d2b4d7e22611336c42417fb07ae424662", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/same-http.keep-origin.http.html": [ - "d918d1cbd9fe614f8897365322ee0332c765b96c", + "ee10efe2898fdccde2fccf4ac70ed08575958888", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/same-http.no-redirect.http.html": [ - "b72a394a20e0055672d8cdbeb19c97383251f306", + "3e73552977013ee6d3578ab2a324e9c3310c1c7b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/same-http.swap-origin.http.html": [ - "3a9a57d2780ee60409d1f26c1753df817ef0b6af", + "e57c29dcffb5553a967d3e019dd11b044917ab17", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/same-https.keep-origin.http.html": [ - "752fd6fdbee631faaceaa37cbd823d38c11ceef0", + "10db4cb622c873648b0999d278118736880ed64f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/same-https.no-redirect.http.html": [ - "0d926198d6265518e69e4bc869dce614f1973953", + "e065fd475045e3056a0246dcb331bd1e1ea5d058", "testharness" ], "referrer-policy/gen/worker-module.http-rp/origin/xhr/same-https.swap-origin.http.html": [ - "9c6df197638a6f8746042ce8142c5f8453f7d84c", + "7b9230b38c0df1c176d661bd733d168b239631ea", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/cross-http.keep-origin.http.html": [ - "fe46bfb18db3225d7a4b432404f4921dfa7bcf0a", + "c7631351ba3990cdf3b17c90887061856a6fb52f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/cross-http.no-redirect.http.html": [ - "941e3cfbad02beb58941c527165fb7a71ddf402f", + "6014e39af6f760eae3a3ee8a0ad9157e8456fc42", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/cross-http.swap-origin.http.html": [ - "d835bb8a8c13ed0b96716fd6686665e9c59ed766", + "cba952c299c477061c04ad2a0c0bbd261536a34d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/cross-https.keep-origin.http.html": [ - "ce3cc478c3a4235a81c21c160ed823d22fc870d8", + "b896713e991f4e3cf4b458838e44a4e388120a10", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/cross-https.no-redirect.http.html": [ - "970aa8a8f9d5df06eb322c04c9fbd2092a846c51", + "9a20a5fe2da303c73d614a1b65419c4f5cca3bc2", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/cross-https.swap-origin.http.html": [ - "ef337b745303c4eba99ef9abbbb66be438ff8364", + "2beb5b804f6bdbc48a7c86eafd1494f62099dbe8", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/same-http.keep-origin.http.html": [ - "3c45ca857b2428b5b69763440cb78c8f9a6e97bb", + "f525d19e5852a8e317aa48b4d19a6393f888b28b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/same-http.no-redirect.http.html": [ - "23932cd7bedad24e82d771f90559bd7c1816bb4a", + "a9f0e1b6c65510926f5f7092ac029c2afde2b341", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/same-http.swap-origin.http.html": [ - "88df9f92e3b4c8fbd3ae53670a5a58097f369a46", + "af2f6542d69d30a459a10e5b7b75f213407bc9e9", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/fetch/same-https.swap-origin.http.html": [ - "e275575f1f8c0b857018570eed31105b9c3b6319", + "9f46518e7206c0effc851869b04a8a7754ff2cf5", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/worker-classic/same-http.keep-origin.http.html": [ - "ca664f3c2498a44e0a6f2518e5cad2cc8e2c0294", + "fa7957328af4d67570347b99f37f59ddb2effb81", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/worker-classic/same-http.no-redirect.http.html": [ - "fc3f79d68df6bb5d43031747a8a643470027a251", + "61180bb3d6d49b45fcc40adfb0a21ed9a26f231c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/worker-module/same-http.keep-origin.http.html": [ - "c9ea722bf5f1451b5ba62102e280e38de1be0fc6", + "95f6c8ebd804b7da8e769fe4786c5593ba8c0f31", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/worker-module/same-http.no-redirect.http.html": [ - "75ce7b9c59ded5ecbfd001070ed7776bbfa37540", + "49db7eb0bb2f80adb866f100b351ece66efa0fc0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/cross-http.keep-origin.http.html": [ - "3fc0180ce2560f71d94834b2dd0d5c42550becc6", + "c9a0fb20d31192cb5fd397a1378e4fd67bfdd20c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/cross-http.no-redirect.http.html": [ - "f18afa664c510407e4fe83f1a5b4b92c8e7c3e61", + "7550a8ccab67b250945cf5979a6fdbd4963f90e9", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/cross-http.swap-origin.http.html": [ - "dfb4cfb7f3db46dc4c5cdc6e330dea92f361f2d1", + "d2d8b946ea8184af2fa7db9239283a8badddc643", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/cross-https.keep-origin.http.html": [ - "f0256941b62e45932bec9ec265ee02bb469b44a7", + "7a688a209dd8442516eae963aa1eb6cf79d5435e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/cross-https.no-redirect.http.html": [ - "2d0a8017ce084d4e9c71e4874a24ab793c50a491", + "821792a1d222210481ec8d1a3d938d5c8dc2d1aa", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/cross-https.swap-origin.http.html": [ - "8bfc669a2e1dd01193c8afeb858a00c2b4c43e77", + "31a2bab7b0f32503d2db248c20d90228f62d5430", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/same-http.keep-origin.http.html": [ - "ffbaeca37035002391ce00090f810f2135053a39", + "0ba5aa4e567f00b33ce5521d6f9096dc21663116", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/same-http.no-redirect.http.html": [ - "33df3bbcfdf89c9a2242e3643cea2958b12ee01b", + "6f3365748eabb94178c967d4951e208e49fc35fe", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/same-http.swap-origin.http.html": [ - "9e46cc2f0405d368ddd12fb9ed7903120a6f2698", + "b7f11716e55dfc28170a06d416c48f3bf6998161", "testharness" ], "referrer-policy/gen/worker-module.http-rp/same-origin/xhr/same-https.swap-origin.http.html": [ - "2b5b44f73e8dcdc7054cef043b562945299a9362", + "5f02b6f50274fad0c1a7cc6285b7ab439c80c256", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/cross-http.keep-origin.http.html": [ - "90d1b34b76e3aae7c238cf1c0c2adda793e29f24", + "f481d9f5a212676fada0a012b7048e9e4f154493", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/cross-http.no-redirect.http.html": [ - "5f0d0c14a7c38d137800a7e6910d4f38040c8cac", + "248560aeb3cd1b6985936a627512925a01f0c512", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/cross-http.swap-origin.http.html": [ - "d1e08efe193bd6f505274ff0bb1240b88e67a95a", + "64b579b819b92b0d68d64a7d8ff23addb2e92a1e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/cross-https.keep-origin.http.html": [ - "7b35037645f50a6b0977f67a5305b14ee74f72a9", + "9e314756d3871cd0f3c0f64415363ed23c9e3441", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/cross-https.no-redirect.http.html": [ - "b9fcad92b606c0bbdd1a0c2a5feecef42337c5e1", + "e026230304079526692256667081b907282a491a", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/cross-https.swap-origin.http.html": [ - "3a064f0e6098017d4a9e3fa1c1179a250b67d372", + "ce01de639fc0fbc43f64d525c5f9a92fb5e3265e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/same-http.keep-origin.http.html": [ - "622c3105e74fc9643dc00d1df35fd5dfc10672ba", + "5fbd8a56376be56e0eb64babee9e0e451f06e108", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/same-http.no-redirect.http.html": [ - "456470ba3b901afcd1013073fc9d73edb0dd7db0", + "bccb924537c33b0fc95a2a4ecf85ea5e61ff2550", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/same-http.swap-origin.http.html": [ - "016a7e351cf98a15968f77d14188c71c7e4e5205", + "6dfd5d33c265361ca8198d009ddc4e2a90722359", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/same-https.keep-origin.http.html": [ - "11b8af7d62a856723910e8994600146274463239", + "3394b87c727e9e7eb2fcfac6833b7a4de9eec680", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/same-https.no-redirect.http.html": [ - "478a6e9cc3ad781f6a6dd5514d5cd10713dd8ae4", + "efe8f5e647084fed008f61504458e14f47582765", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/fetch/same-https.swap-origin.http.html": [ - "4a20ba61ba8c0f06e08b2883ef339ff15a6e2039", + "849670a060f450536a1a1700dedf9aed29672f50", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.keep-origin.http.html": [ - "05ce6164fa64c32efc01602476d702776bcbe06b", + "7a9386a684f548215350f935e7c8fba9ca6d1399", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-classic/same-http.no-redirect.http.html": [ - "99935de7cf95f8ce75856629c8f691a88a472a0c", + "cbbe55e82228e69a3edea850c0e6648a6de3f25a", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-module/same-http.keep-origin.http.html": [ - "1f995a6f45f436e97fbdb86745101a4a3826b441", + "27ed0b5ec84fc691dcf34d395928e4af6bda2523", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/worker-module/same-http.no-redirect.http.html": [ - "5a010ce546bfeaee0e2bc75ff1789275ba7fde6f", + "f44d5344c5c9fdafa13b04f40ac5bd0d26af5c63", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/cross-http.keep-origin.http.html": [ - "882ad4831b3d51b020e414fb3406f0d16f81238f", + "91e470231a4b0205cf636ca724f0901a1ffae1a1", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/cross-http.no-redirect.http.html": [ - "641d43fcc9b3e41c6b0c60c52f74bed18ae0954c", + "549821f7512519f5cdcdcfeab07360763c1010a9", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/cross-http.swap-origin.http.html": [ - "243de3eb4fa10b1eb27300bc27881f8d74f689cd", + "79f79f56d01a4687eb2c439a04812575513db9b8", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/cross-https.keep-origin.http.html": [ - "6e880206eb2606c746bdd5a147d4495be16ac296", + "9fda252bd4b159a1dd0784a5ac82058b0c0345cd", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/cross-https.no-redirect.http.html": [ - "eb8d89951ff806df7ea664f0259f6a0f9dba3eee", + "9dc86ffefb45fd481e73b2e79a7477198ad0418c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/cross-https.swap-origin.http.html": [ - "4a65e04cb47356864e6bc8911f5ca6b686e23be1", + "1507b217f9b572f3fdef99c63324fc46370aeed7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/same-http.keep-origin.http.html": [ - "4839c083a3d301696bc781e71fe0a5df519b713c", + "74345f2c6f9c8cd6b56c79c734fb9b9b1fe5c75a", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/same-http.no-redirect.http.html": [ - "5a06b7289e52da37d059ae74d26f664cc9c0a674", + "fa3be90d6714f4077bef60087c94e38b1b4108b6", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/same-http.swap-origin.http.html": [ - "db5e0c7d82e348b8cd89c86fefb05e85e4088ac9", + "9a60398d6845a360040ea47132cea3c75189c1d0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/same-https.keep-origin.http.html": [ - "38bfcabc3ffc8d043500259cf8b78035378e2a1c", + "aa51156c0f98feececf676476cd26dd804172239", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/same-https.no-redirect.http.html": [ - "a5fe5b441cf15033e0fe61b089bf31d63088b3a9", + "a853214df4ea276597d27442e292c5423e3c588a", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin-when-cross-origin/xhr/same-https.swap-origin.http.html": [ - "2312589b7e52dfa56e3aff04bd342c2ef206116c", + "1d732252e5ee187b387c8208604d5f6e575f29d4", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/cross-http.keep-origin.http.html": [ - "d82eba968f3beec06db48e40f750ac522a194d3d", + "7a178fb5cefe7b8da13836bbca0f38fe5d4119ee", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/cross-http.no-redirect.http.html": [ - "89206428d25e6f87d126652257244324bd475d26", + "6946b07bd344b9a312ebcb7623511ce42f86bffc", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/cross-http.swap-origin.http.html": [ - "d1155320397516e36fdfc48400112a49e0bd0736", + "fa449166850af76f0650b6fb3b2605838795bce0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/cross-https.keep-origin.http.html": [ - "4bc5fe6e0e66387d4816a9d8a50c657f903da911", + "bb496473158d84f2336a95e84466d3ae28ea22ea", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/cross-https.no-redirect.http.html": [ - "515fbfb12b4053b51411f28c4711dcc6a6d33052", + "2b149337164f092f5b3680beed233a28526f3482", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/cross-https.swap-origin.http.html": [ - "c7db5997b9fb3d3ca6aa2962abc5ff7af0cb93b8", + "fd507dc25ac713451e3f91de86510f7087ec3e1d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/same-http.keep-origin.http.html": [ - "a12444412815b933f2317d240ca9cd4b6b64b03f", + "9531148cb4b789ce1b7e47a76fb489861a74c9ba", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/same-http.no-redirect.http.html": [ - "9fa6617e51910cb81cbb0bffedb30feaa41145f1", + "7af0965bbcfc5263ce0d40f1bf4c99f59672e178", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/same-http.swap-origin.http.html": [ - "1b4961d339215390408426d3c8fd36551c00d692", + "c96bca8e16a72ad9e2867636916a0f78f544e9e1", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/same-https.keep-origin.http.html": [ - "18f675a3be03e7c83b1178404f36c2c379f82a0f", + "4ab844150034b2fd57c399f8bfbb57813003ad29", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/same-https.no-redirect.http.html": [ - "6c9e78f30147478ab13d205608b7866ee8590db1", + "41d419152675d0305f23940681e106b244ed25fa", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/fetch/same-https.swap-origin.http.html": [ - "b7d28caafb3617be17909e68a6bcfe6e2a07d479", + "00c48f598961c3aa14a922f8184b107378f8442c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/worker-classic/same-http.keep-origin.http.html": [ - "215b3edf4f808b0d617ffe509320c5b59510e7cb", + "963e40df49ccdf5ab68ca0a562ec5b8ef9766559", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/worker-classic/same-http.no-redirect.http.html": [ - "64733a5f5a7533d18eda26fe6893100d55591faf", + "732985bc4ccdfbc68c8c2632e941f0b54d766d1e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/worker-module/same-http.keep-origin.http.html": [ - "b39461bc683c94af710efe0e69b67a838e7b7178", + "88bbfe1bc166abf35aebe81ead7de45980b081ad", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/worker-module/same-http.no-redirect.http.html": [ - "4031424d33769129fb31ae50ccdddbe675d79c8a", + "88724a6a8b14cd90d1a598260c5878ec15d3f164", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/cross-http.keep-origin.http.html": [ - "412fe07e57407214895b8257195001d4d4362611", + "8e83ead68782cdffcbec6815e57eceb570be047d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/cross-http.no-redirect.http.html": [ - "18749d4289af0ada7d29252a1bba79a4f0d091b6", + "884a0be11e01eb38961014ec5a61198840d37482", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/cross-http.swap-origin.http.html": [ - "d09d298f9bb403d22fbd7476944b779560d084a4", + "1729cafecf9a863c704f5961198ae07c3038984d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/cross-https.keep-origin.http.html": [ - "238f77d1178c3723a0ca8511fbd9f6a6fcf00598", + "6bfcb3e7be71c2223644260459dd78185ddd516b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/cross-https.no-redirect.http.html": [ - "64e5c9a2cc5b11ca7637bd4356ff298dfee61dde", + "c3a62d2215d144752ae4029dde98bb3737dfd208", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/cross-https.swap-origin.http.html": [ - "1d95b2aa34d053512439197d5b16d2660696119b", + "63b71ac7753718b6fad99c14cd49cae992fdd235", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/same-http.keep-origin.http.html": [ - "403f3e938ee8e6f6f98eb90f3dac4489581f80b2", + "ed558957b4ec9b3dad125cc1d6a2df023382bf3f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/same-http.no-redirect.http.html": [ - "191179ab804d574d56797ab17515efab3ff32b9b", + "3334ff974ec4c272a749cfe1b126fba4e2832a53", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/same-http.swap-origin.http.html": [ - "14e4f635acbd4b328daa67e5bf365ea463e63f26", + "c4f9cb93c5e7f0cac8f34ee828239e8b1f885b78", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/same-https.keep-origin.http.html": [ - "5074805d3dd5f84dd94f3116971316fa4327e2d1", + "b7c897fdaf5ea619031d3fff34a5a93a6bd6dd3b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/same-https.no-redirect.http.html": [ - "7562c4417d86d3f0d77e2700b54a8aee372e8881", + "fdf56bbbfced7fdf61b633e317d7cb3aee260289", "testharness" ], "referrer-policy/gen/worker-module.http-rp/strict-origin/xhr/same-https.swap-origin.http.html": [ - "2fc3c9724d7a4cc8281e7e11296f4914f5d08c31", + "220f73a75b02d0bb57ec7355df81008ec4d9d91d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/cross-http.keep-origin.http.html": [ - "955369ec7bbabc17bb2282e50405c8126615cbf3", + "e90b237a3474a74f0a39fe55fa4d48bcb3b15814", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/cross-http.no-redirect.http.html": [ - "b5f3302a03a29073cd503177499e40271e75f039", + "60a64641423636f9188bae73f80d0a9829a1ca7f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/cross-http.swap-origin.http.html": [ - "7d56f9f8b383cdbd8249e332bf4985c50d8b7d57", + "1ef980301973347f16e76417ac8e37602d9d8318", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/cross-https.keep-origin.http.html": [ - "04c561d613ea505f9f7a6484ee848180a392ee98", + "be7bee7fe28dcb1bc59a5056125bf407f4023ae0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/cross-https.no-redirect.http.html": [ - "0edb354842eea47d3e28c003877b8317a049d330", + "7cd678646a7ec841de8ad8db13daadf48b822351", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/cross-https.swap-origin.http.html": [ - "6312f93a211b015370d14769c6e35e4ad0042460", + "f3e5ddf1866acb664521faec6a14493853335ded", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/same-http.keep-origin.http.html": [ - "c92d12158c28e82fe6ea9c39bd78e54ccffec864", + "161c346d9775f693f08936c6ca1987c77b5633f4", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/same-http.no-redirect.http.html": [ - "eaea95ad6a3b3f8c2ea4b41656f2c3b6df2caf09", + "79675b86528d495d354b2d8d0c6afc8f4ffa80e7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/same-http.swap-origin.http.html": [ - "f065e43adad90a7bc1e56813172110a9b9457b23", + "0c0ad4f1dfa66c12df0207e1dde0f5135a4acba0", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/same-https.keep-origin.http.html": [ - "29c645149b92195dce989b47a7c12dadd0c54ba2", + "5624607190b9dede8cf98f9dbe01161b37f38f3b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/same-https.no-redirect.http.html": [ - "fcb96b869be8dc3df3bc0a33133b45392a016425", + "54e79c9f453c1791c7751ac70dd03572b87ddcc3", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/fetch/same-https.swap-origin.http.html": [ - "e918da49e6dd624787f38deb22f0f301d2904194", + "74be6bef4d3f517f619d1d4f52f95c38421f5f0b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-classic/same-http.keep-origin.http.html": [ - "acbf9e02edae9f9fd821f89ff667d39ebe38d537", + "5f667ba8d5e2d29e2e5b6e0b7927f36f81043bf8", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-classic/same-http.no-redirect.http.html": [ - "7824eb443fa5b399964f0e5d1b05a4ae56a13539", + "3bc18ea783f33b1ef5b3a38e439322fe470a390e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-module/same-http.keep-origin.http.html": [ - "6940fbf9317d03dfbd528a647dbc6b53c2cd115c", + "907d1553b0d4ba48b11ce2d3f860514fea68e585", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/worker-module/same-http.no-redirect.http.html": [ - "e968ee812ee84c9b297c6e26300925502658981e", + "8280d61f39f35ddae8abbc78f6c2790eea18dc4f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/cross-http.keep-origin.http.html": [ - "a74f146f721b7c336d7ee1206917532d841d3e1b", + "c84efa19a9a3d7629fa5d0a2a8b5f6862fecbece", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/cross-http.no-redirect.http.html": [ - "636696bbd8a12582f164f07bd933926166b4e14f", + "080d448771a92e85364d0a97c5361e60e98a0eb8", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/cross-http.swap-origin.http.html": [ - "53fb44d2a8bbba37f6f7106897a2b0db5e926f7a", + "dbe7659d870e5717853bffd9948f6f2362403322", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/cross-https.keep-origin.http.html": [ - "2fa9a68e110e7b9bdbf399d0aa349d1e7ebb2baf", + "1d92d6de03d7c551e27ecf61c7dfc32b05609498", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/cross-https.no-redirect.http.html": [ - "a9d158ea3eb3f45170177a489185655c9f8d8725", + "d11b4ee5f60fcf0e142b5782353907e4493cf364", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/cross-https.swap-origin.http.html": [ - "24deef5b129fcf6c790f121bc6d33a38828c7a44", + "f4116fd9d122dd0934bac571800a5033d95e0db3", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/same-http.keep-origin.http.html": [ - "27f58ab50bcea716e0c8391cc56dc3bea050c37f", + "d550e1ce40c388ee7884ed02159df1d822eb795c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/same-http.no-redirect.http.html": [ - "2d5b9e2199cce145cb9f9b18c156c8c316377e7c", + "f2d8e8cf3d52fbf77d448e8f01b3fd2d03ee92e8", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/same-http.swap-origin.http.html": [ - "d90adec850c784151f7b4d6fc2537971983753f1", + "8b2ee729768eac0a6adfbc6943076a1093504067", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/same-https.keep-origin.http.html": [ - "7d219765d862256abb808fa2f7696ede1d592dc9", + "9590e6af037aae53f1c29fdf4bd0011ba417a471", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/same-https.no-redirect.http.html": [ - "0ddc6b11b9a8134d79919a45afc589ef10d47c27", + "731349ba25fea48dc7c14683b1b5c67f4772304b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unsafe-url/xhr/same-https.swap-origin.http.html": [ - "50926c70bfb0dd694b892bdc2197b925a56421d1", + "15dfe031eefd0fdcd5590f9ec7d91669b8895d9f", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/cross-http.keep-origin.http.html": [ - "f341ec99e52153b6fbbe502e7824dc0dd9bac4a2", + "ac262b509c086541d49e1b04e01f74c99e624373", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/cross-http.no-redirect.http.html": [ - "760bf977119788803d5f41d27cc98e605f459ff3", + "d56b994ae57f12504f4bcd9b0234dfd268e18b65", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/cross-http.swap-origin.http.html": [ - "43023a21938d939020509873c4a611f20dacd177", + "ed3d3d188154ef835e49f8ef7538e1e275e8ed86", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/cross-https.keep-origin.http.html": [ - "d854190b5b16454df4cdd08f5988d1a861cbbf6a", + "d0de32d414b1ffe2313ce02bc251313141dfbf09", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/cross-https.no-redirect.http.html": [ - "210fb465dc813c40cff9c1301f6ecad4edbfb3dd", + "ce96aacd3e2959eab66040f86e37184a081e423e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/cross-https.swap-origin.http.html": [ - "e19fb082d644e68c5222408d341fd9acdc9a29e3", + "f641586fda401c74a08f03d1cba8c1799593d62e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/same-http.keep-origin.http.html": [ - "9365ed50ac112150195a7a8c6a92f331be1a6852", + "da106961a25c9db0927864b22633da67b9a33add", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/same-http.no-redirect.http.html": [ - "ea8a0130c689da0d6d2ffcc1c29b4de3ad9656b9", + "ae97e66b28ef31563193a1a256d46002f9b20c6b", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/same-http.swap-origin.http.html": [ - "17122d38f52c3a23e93041c9a09ae3891c63058c", + "dc8420c83220d8504f1495c5c8518a44e1f1df85", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/same-https.keep-origin.http.html": [ - "99fe324238858a80a0fe0cc3fc8655529684759b", + "e35002aa93fa86e850686644954c70a44a1f8cab", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/same-https.no-redirect.http.html": [ - "ce0bce54fbef62f3549356b1c0e8f7bc99629a2e", + "d0aef00b0b82d31a130be40ee15ec1c5bc3f05ae", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/fetch/same-https.swap-origin.http.html": [ - "b51a46c48350d3f21c9ebbaa514037f72e6a8c00", + "d659b2e417ac1c148113e0f742332b1e045292e7", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/worker-classic/same-http.keep-origin.http.html": [ - "f2266188fe9dc4278ff9e9317ba482b83a916049", + "320c613e2c7e7902d100ea4b4528a84d7c3e5ad9", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/worker-classic/same-http.no-redirect.http.html": [ - "3eac1bfb8894c89c34affff6d15dbff7745a3c39", + "95d7966ff08b49d43bcf697f7bff117abb8b032d", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/worker-module/same-http.keep-origin.http.html": [ - "a7422bf0f9c25c7ffcaec4e1305b32dac28617c7", + "9a7435fb0ebbe071304b0a71d362564044affb1e", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/worker-module/same-http.no-redirect.http.html": [ - "fd43de265609df2d4235bae278e29e50e801b334", + "60a84c0c237405a84a26723f708fed6d63cf09c8", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/cross-http.keep-origin.http.html": [ - "47b181de913e87f24b47c15ce358d37f23a47908", + "80913252f5b4dee9559a391335728fe7b0caccdb", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/cross-http.no-redirect.http.html": [ - "3b22ea6a5d5d7a667971e2e385ad8c4d3a87da02", + "036fd597f4868052e6c5da9771fc76098e2c5f94", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/cross-http.swap-origin.http.html": [ - "9cc882e3b3b7a695dbc055b0b04684333a72171c", + "c8d4fc0c48fe09b7a993b4bb14552117a85bad12", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/cross-https.keep-origin.http.html": [ - "4bbe1d761526f95063d1cea8e26e8f6970dd00f7", + "e9643395ab380c7b501add177159622ae97d2bd5", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/cross-https.no-redirect.http.html": [ - "e2208cba1ce5d10adacf70bcdf6a4c99c84f8fbf", + "faae5d5928ecd02aaf4a4521d9ad758c52980821", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/cross-https.swap-origin.http.html": [ - "dc7c389d0cff6396d8bb5fafa670a85b577bb5f5", + "e9bb2395477ff4038ad686650624dfa1e52018b6", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/same-http.keep-origin.http.html": [ - "d7797a75e29f2e7cb9d23f744719e09287c0564d", + "07a3e6ede152569504ac4e8f9aef12ff8498d7d6", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/same-http.no-redirect.http.html": [ - "350cbe30a0b9b8f5d407d11deaa2a21c7f1c6048", + "95fdd6ae78d99d529e9a4a792e127d118d56b9aa", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/same-http.swap-origin.http.html": [ - "b4b372508ed9aa7d044e7bc5167880aa3e2ba1f2", + "e960815b069af43669b06ca59b4e18b68de03796", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/same-https.keep-origin.http.html": [ - "47951e9b729aa5637ce17bf9fe1a78be34687537", + "ab316a05de76b0f386169a23829930f04968fd1c", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/same-https.no-redirect.http.html": [ - "46d85b141d399e655ff216674bb7a31d8015d7fc", + "77dde1a8902a42fb541355ebe75221a957e29f30", "testharness" ], "referrer-policy/gen/worker-module.http-rp/unset/xhr/same-https.swap-origin.http.html": [ - "57a3e7c5d8da5ef1c1cacafe423598f5a842f10f", + "6258675a17c11cbd2440f20e7044044f2e341fdf", "testharness" ], "referrer-policy/generic/iframe-src-change.html": [ @@ -507054,7 +507054,7 @@ "support" ], "resources/chromium/nfc-mock.js": [ - "84c2726e09b335c12ada7cc922d8acefa21ae805", + "9211b8b70585d785340f29ed48086b717b08034d", "support" ], "resources/chromium/sensor.mojom.js": [ @@ -522174,431 +522174,431 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html": [ - "b85583ff2cee179ac58a7c429c79400c438c95b2", + "9c9de003230311ff0689f2055ec165d224c7f16b", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html": [ - "df420b3b9228a6cbda63cf7de47d47984c9cf9c0", + "13c51ce256f3b25b7a790f2bf53284869f189d93", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-https.downgrade.https.html": [ - "d4bb05e83072b72b3e4910405db72eda6fce08d4", + "3135cc6c8f9eee3a1566c1fa67964debdebc99be", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html": [ - "6d15509430aad2f17f9412b28f5b7d1f5a0b3565", + "4fe6ab5bdce12a6f2566d59174a1c6493c7bc695", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html": [ - "7a7fa666b061e0e8f9ff820bc82aac35b2af171b", + "7447bbe3264cd5113c46e373d41d76684d651ea2", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-https.downgrade.https.html": [ - "f4a2cf3b00d76ae9c0922f440951f1638bc793cf", + "229c395f0c74ea3599433dc42e63a4a0a281ed77", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "77d852eb7639e5916230d1ea7c0fee6a44938a40", + "ccb1ba7640908ec5fb958a7b0c9ac8c1b1e3ccb5", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "8ddeada8b824951fb268d07fad6f77b7a91d2e70", + "9c6aa96442524d778968130c939c50ade257ed04", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html": [ - "ae8d161caec34dab699c2e0f9761473d18ec025d", + "4af67909eea0301e859a2c832c5de5113a5a0f00", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "32f330f3d5cec35afeaf98e9956543f5206dfd06", + "608b4799a687e18247abe8c630187ebbc9edfab0", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "52dd2dba9f71a9cd43232c29ad290cf34ce40080", + "b114aaba58530f5b482147c9342560c6536d6f48", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html": [ - "884636534e0a6d68d3aad05c6d9c86f947e8f442", + "fb1cb53f2e91b8cc7f327154d2d7d54917aa50da", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html": [ - "4e663d506f025b2a91ec37cbff82aae3c6a71bfe", + "42d1d89905d00bcf632fcace64609aaa1cca8bfa", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "3fe338de501f589a85ebb45276f4c1d69c2dd752", + "d7e03c78914545219292f2d8b42fdea8e46fffe4", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-https.downgrade.https.html": [ - "d3b84f01637bd100163b31fbd740572c1205ea91", + "ea90dcf5f2d649ab9efc38f5cb7ce6f61c2e7b9a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html": [ - "e6f8e35fa213124ccb53e365bbe14ab09891a456", + "702c96a1bb38e35165a900dcfd3956c2c849c22f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html": [ - "0ad5ed13aa5c642c2985a27a3ca715b602c83471", + "1975708b895b4258a8731650c2963b3d911c8885", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-https.downgrade.https.html": [ - "bd2ed054cffed919932a4a15680e05a020670060", + "931e800173af094b39a6a3374b1291ae53352b14", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "86b0170706acd17a37d3a722734533e2dcbc9940", + "721e35973858e77b675f44206233054ceab3e8be", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "274908b2b64d96e0abe0d0010f23f39c02b7bab4", + "f6a0cdced13605ef8004a3a50ebc04f5e4c0a67c", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html": [ - "763fbd6d4aeb1e5ad5d5034e979602f7618f1263", + "e3181df0e5017d9730f56b2b36e1d5a8b507f749", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "fe77266af21527d0e5a5a8bb5ae816f01c327a43", + "d85c6364cc59c52ae198d74d862667bd645895de", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html": [ - "7e27068e2fbd8e40b1d8aefcd3fe4450de8271af", + "248a1c36c13a36b9c6c3565c90beacff7d2beb9b", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html": [ - "1144a7b9b11b5a69408f347f953ae6e971f48bd5", + "09afa4a1ad5f36338f8b0b86911d1ff28ba36d75", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "47ecc6f9946648cc4c61eec0a8d8efcf880ba736", + "6b84e67ef48aeadb3e13c653b0d061905fb2820a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-https.downgrade.https.html": [ - "3a75e263c7aa2c94fd9c985e634602dedd5434d8", + "bdd607e66e2bb1db79390e31ae0c102121be8b2c", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "cfb4519dd5be2488d077473ef43eaeba4af26888", + "4d52cdeb1fb62373f15dcaa23b573b98f36ef33f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "79e6ad251013ce23b31c6e1ff0efd7cc769d7a1e", + "c9bdf6593f14f3693d52b9ada0a4fcf4c7a2ef79", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html": [ - "68064dccb9a0c84d332e1fc716464b08aeebb649", + "e67e525a19fc57959a45a6711fd7d8c7b83f43d0", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "fdb0f73e510d3fabb8c7a935fbd33b66993ad8a8", + "431ad44a837e50e485e230a379de891bf55851dc", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "df11191e3708f6c67265fc524792c727f2a3a845", + "5f13b36693940b4eff6218f03878ccc4c522c7b5", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html": [ - "e3e47cf713a06890845053fedff8c0cf029f1dc9", + "4d25d60c24b24361fba25f15b54d9d2d36fbb282", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html": [ - "5976eb13ac0c78b5485af3b8e2dbbf161213f55b", + "a7ae596997c5e57f23266d895761046ed04a5b37", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html": [ - "61932351631d2cdf429c0bf420e0dd35f2215580", + "39354703b0166fd37f41aa9d4fdf401e923feca1", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-https.downgrade.https.html": [ - "6c0cc3a6051427d4fc8e8a768af8eca459be685e", + "e638a447f990c88a16df28f33b6097d22f5e3bbb", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "73f1ba54fd4bddaffa834e2ed2d8442cf35429e4", + "2b3bb7e22959ed0284884e6ef36db9268961d16b", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "0267b811121c1939fa46b46379fdc25a2b45a7ce", + "0e9543f869e885cdc0ca3fdc7b61aa7dffb68e27", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "dc014dea99c19768d2164cc10cd7bb4244c9c188", + "df1c0cff004ae31c0e9e262e14f78ab6487771c8", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "781d3c656923dde6f968f771fd6d44cd66b3c36f", + "fcd6e8a362f6aefd72e70132ceb63e18fece8270", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "9475c532a51bdfaa5605bb4f6a0f1f7da1fa8caa", + "c7418b6ba9d0d41f3cca398ee5a3f2059b3019d9", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html": [ - "7e574f94292e10f92cfaa18ce40f7648b8bc577e", + "66cca764cad77de7fb584321a7ac3e209130a543", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "8e0e431c156c4ffb0007aa7ac2bb576ab879d4e3", + "4ccda7638c9f539a5cb68d5efed613f32866889f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "70314595f530880b122a953575eb5b0b26b71548", + "17a743fdc2a33094bdb1379213a010019bab26b3", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html": [ - "126a81d2e1c5b6eac6da5c6524d39cfb49a33892", + "2d151d9942b94da7e58790b7fbd0f6739dfe4021", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "9c4e0e292359d3e83f6509717906edf67fac48fc", + "f15034029de691768e8783e3689b8dce65689685", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "1360503d81b0246a9c71bd3d47c62f911b0c3e90", + "3ec31ffd10e60e1e557879150d493a92f93e58e4", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html": [ - "5ed35529540118170928ea2204f564e50b2ecc4b", + "522553b624b5bb9865ba253d64645617aaa69803", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "a61c8f79f39578d39f92827dd1feb51279fd6457", + "cad46225e4a14cdfe1cdada152e1aa5260092f13", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "61b78e828321ea7ff3a1aa2b7f576f4fd230c820", + "9577b03b199020081bb24d089dadcc42b5bcfdde", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "e4d12ee64c5d15453e6a385e4393aaec3adcc907", + "cada0f4f0c0330d42de4b485afd5d269eefbee78", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "806e148059eaae586e2a111bdef10020c1763853", + "6fb498e0e6c7ddcf2bbaf3f0889e99acd957d2ee", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "11890a310b9efb5e270cb80fb3abe636e929cf32", + "1bd15a79d1b97caa514c913f754371d6b3ba736a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html": [ - "4158e4e4eef1038f2e5ef44cb538fccb26575717", + "3f2b2407e069eee5aba236a9875994fda81bf8c5", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "032ddc9c40ac6759503b6ba12dbcc5543c49cbdf", + "408ee4c610f641c0a592bba3302a49c5da36b978", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "63081ef51f2c68ee3405f672144d89ff55e99658", + "a717fb6abeb39d2a9e7d0472f6bad43ab2ebe016", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html": [ - "abd52ef4dc1efad21a10233aef1729920238708f", + "612e119b294f6ba61e8d34eb448ae3cc38616056", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "9c7b931f3ef52379df464764d343a46ee6d7c4f0", + "a1f795f70b73bb7851c32cad5ecfd4352c0f7700", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "4cfa5018a38747c823bf963f39a38701434a67bc", + "678fecd445ae743bfb09a5716e0c935d0ae13d95", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html": [ - "a4aebcbbd98178fbcf8aaa8be5f699d4c9495aa8", + "e9c11fccf5ce4bf164735e0282b1ebaa7707ddb6", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "8eb246cb3a1efb5cc5123949427db4e318050697", + "2b5ad96119638bea0b527194c17909d983725677", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "ce5fcdc9cfd58c85b014595d09f6fc3430c56891", + "1799a9eb722a6f4fb393c866ed1f5fca4732d14f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "a765c02906a29016552b57307377f87838ef0556", + "f7d0927e3322701285d5be8fbf86e4afe3f7e54d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "d83ecefa811210c65b677e21f2b156b47b02f547", + "2d7cca9fb4b1d9f2f013523e6b6ccc3ea6125d37", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "d7d6ff4f9d53fa9dddd0928ba30acd8e105f8181", + "2195c81344d5f384e3b91513fd19c1903cdb1699", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html": [ - "34b9b4a53504727e46c42e46fd1fbc0654ece2d9", + "21103ffcd28d54150d599ac34a9a1c64970f5acd", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "45715ea321e9d98dbdd0bf91897b3adb0ff98c93", + "ec1b48ecf2c57b30457dd69747a313b309bdbc02", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "99a80ac234926f58c34c5ad64eafcaacda3bef1b", + "ebf1ddc2ee52c1cb55158dd1496d75ad14dc7567", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html": [ - "2776905a788b8077d6f9114f5352b7e15965c94e", + "9643c59f470995140cce9e79a4a686d7a1e5c21e", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "275dc056892b654ade7ac28ec3a8a657eeed0326", + "578aaa888806f9c0c4dccd747ff3419f24d89dcf", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "3f72a04ab5caf976f8973c1e225e9712fac55e4b", + "19af6b4ea00d8e5e0cb1cfe76719a8844d497ff8", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html": [ - "e038c8edbaa6c3d86c82421cd99426756b00fd6d", + "1a25c627f12061a5aee359b33d43ec2a01c9f368", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "367bedfb2e10bc81c9ce10d1b022d34ea32a30e6", + "67465fe1f122d799c156fc50a737bd12103e9929", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "45c8a2cbb42b3f7683c76d80ebd0d6b6dea3bd9f", + "63ed3803bcdad3869f63672408088b991702180d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "8b3ad88a2c3d731f323cc26b42459ceac1c62ee3", + "dc5e9299fe17d51b2ae560dc0fa230c14b60beb6", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "9d9fe1d50de33ca65f8541da793d0d8801d91e4a", + "ae96afc66cf78696ddd93abd72a8c8b9cff85853", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "d08ddfbd465bb1cac26bc723942e8f3d4ea1aeef", + "4389e79c1c5b0fd350c42c6d43b6a4ac2a26097a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html": [ - "e9e26b1991fc3b47dded3945c1b62173d896dfa9", + "3f19963530baf7473b2908000e9d3c1c993dea7f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "37d16b63a4e05e4833b25dc7d7b5fc49dabd70b8", + "906fe3933425b47495dfaa0886605c87f11260db", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "3336529a41a884fb38c0b3d708d06b7d2a53e961", + "96b32dc3de2a40444922d58d6e67120e5e93b35a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html": [ - "35ffbd75717985efcb6529fa0114d9cff4456f8d", + "14064fdb072d298d9bfbbac0d5e273e128fbecbb", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "b92163e44e8a8ee9abdab660aba190bb430f8c1b", + "df5f7cf42edad9415698d3417d4904a04b772ed7", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "bab2213df094c0fac96ca7d45f4be07f78e1b0da", + "47109c554b96efe5b1896ec09ef16b3358d501ce", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html": [ - "7a1e3f58291bc2d2a09d056f304b2765e0d89574", + "65990ae01308bc4cf3c04e81291d15be921ce08b", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html": [ - "87f334e74460bedcaf94954ee74b08ec2fd6211f", + "e06f46e8ca9cdd127449fd3dec0bc1ae9c87b74d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html": [ - "077f00c4ae29eb960ab991d9c3ba78fe003b00f4", + "c60709b78d19ce4e7c2901c0dd92cc0d873022f0", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-https.downgrade.https.html": [ - "112f3c086853411706b57836e17afb753c3a0c94", + "bec4fb99f463db960ac6ef515efe3a2e1265027f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html": [ - "fa4303f50406f3ae61f23409ec1c36581da7b51c", + "8b48b85e967eade1272923dd56c339482b0d2e6e", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html": [ - "066aae1b89898ba45ef31493dbca512103e467dc", + "aba565505133aebaff01270bb4196a6bab837ea6", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-https.downgrade.https.html": [ - "7611729514162327a2ee0921a222992576c82514", + "78f91b196293f14fdf25ab5b3af0840a224564ca", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html": [ - "4d815c09833630af9f69ad5df7c96f7e394f1317", + "a8c1f60a83a9f90cc82e9f837834d3ed9d3b0109", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html": [ - "cde4f053c8157c7ef3c5185117bed8824f48e53c", + "67931e2bcd454ed4ee667a58118d734972a2e96b", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html": [ - "3ef18070f9fb6dca5d381d7b05a040a3e1f97a7f", + "a420b76c468da6eef8666105601dac96f5bf89a3", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html": [ - "1162d570b1553497b9be0b7a9709b5376e5f4179", + "c017e8c22f11cf02a603109894f7a087e44b3870", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html": [ - "a001d36f709cfddde630bcfb7ad535cc3ac5ca61", + "f288ec70431382e482067f9c3044195fa652522a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-https.downgrade.https.html": [ - "c120ee16693c564dfd70ad7a72d328da68c0100d", + "de6d8e06579d166ed2666377b9291f700b129e92", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "ddc751483fe3e4bfb8ff2f422cb580cd9a05273d", + "a9385cd9d317939228c41069320d0c90f6c19309", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "f55db96fc32f2238b5fa4c9270726b59df139214", + "6cf723c0ef2cb35fd4f05b0d8ad51784bf7226d0", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html": [ - "f16e2151ff5db3c17146e7885400c8412d6e15ba", + "597225f83ec37c82df30c8a01e422ad0a4ee00c8", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "461d81f9c3cff31823ad361e7ca19823985862dd", + "655557d39269607a21b12231653782de243bad83", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "cfb5a665ba140632dfcbfbfd811225e886338afa", + "339e78b77c9a12698458ed2e9b23c55d7cf8d95a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html": [ - "eef7cf479398ab2f16b609a1455b59484eb187b3", + "7b9a90f91c6dd7535c55e41f84a134f4ab811697", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html": [ - "4b45675dff208ab6e68898086981bc6ec8151d2e", + "e6ee8929e2c342507196c72faf871f95e0752897", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "1305ce818a0513469b4400226aa6ff090a9dccb6", + "c4018e7349a048ba8d178a66186910675665f318", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html": [ - "eac2bbf8f731383570438fd81bba787fc4f89ee0", + "cafea33dc5f4735146f5a1ba2d2f18778d88f981", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html": [ - "6a03e5715b04adbb579d6783c2a358f7452cc2a0", + "62b7157b24ce047eba89b2cee5e6bb1daf7d9a70", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html": [ - "2a38cb54683fa0d7721f92685385d3df408ee0f1", + "a8655a8818418057d8f5c661b3aec2650f64fe43", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html": [ - "9e3e1bf9cf14d4d1abf2842e08c8e1afd7af5fe1", + "2b2677ad0a73a97ee53a81578fb1eed5c5d57a74", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https-expected.txt": [ @@ -522606,7 +522606,7 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "884844f93a24e0e7a8126600737d646275ccec46", + "a63e0e90d250207a7a3a3af5ed839c2cae459a1b", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -522614,19 +522614,19 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "5f4ef1d07998c766c5f10da0f95ff60115e3c6ab", + "1bd43d712041b5b7ce0d5821dc409305da2bf3e3", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html": [ - "800de216b57cb2e0efeccddb580639df1fd775ac", + "d14816246a22f0145ded294f1f933496d0490a8e", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "ccbff1f2520de57ab8a3e5debdfd76c198d0aae9", + "a79e3c6d9339a5f6e5e7ec774d57592d3b7abbdf", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html": [ - "6fcd98373ee0407ae55eaffa278d361d61b5f776", + "7010694ed4affffd69dc7f5844cb2cf1d976ddb8", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https-expected.txt": [ @@ -522634,7 +522634,7 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html": [ - "c033a44cd9bda5886fd136053631ce7291fc77ac", + "208365f8510344982a4290c933e4430ca8185859", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -522642,35 +522642,35 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "99cee0b279e4ce859b8845fd8a3a2cc47c85af7a", + "e5c4a1f9e01431748b7896ce1765b65a06643694", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html": [ - "b542ddc27a8d2e957ad0b6017d0d4332b5f21388", + "0c1aa11ea23f0dd7ac53c01fe0fa364e315feb55", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "a11b956cfd54522ed66ea3f79c93ec21c546c89f", + "3f75dd6a3c80366a657fda18b59abfab47d2406a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "0369b4d42431cf80e244826cf9510f4c9bc35e73", + "f10db8571246bae2b9b56d2ff744c02eb82d79e3", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html": [ - "b10b8bc2c37f987b766dc0041ed8eebed3984db2", + "13138237f620f74aac5f6106140173ad8a2a979a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "276c608c2d4c24967d7ca10395ea50239261f79e", + "b89ca84621effd9edb8beffa9e49f546bacde846", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "a81788231131fbd1755883d7aa8462461caeebc1", + "3a6ef2d862b8a27ab6d55d0f1ed43da76e654e22", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html": [ - "1c88f0066f69154a71e39c677bd018c73f5b5486", + "93d0b56237881d0402fb0c06d02ba4df7221d410", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https-expected.txt": [ @@ -522678,7 +522678,7 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html": [ - "80299bba9f33cc74fe0fc9b6705bfa6b5ababaae", + "5a706ea7473caea1448496673cd9b519db6944aa", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -522686,655 +522686,655 @@ "support" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html": [ - "2d7a2070d3ba7fb50194bad9d7b89343df809d69", + "a52897c914bad58703911c07a660ff7341003b3e", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html": [ - "a73e68bfb4eb5a52a3e590e610b9805d1c045b00", + "4ca4a56c8020e614f2874729ccb43f17868efe81", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "f3b00d61d51fcbdf442acdeda4dd5b4b5a0dd936", + "773b363f4dee587338e1d98d67a07d54592d7e32", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "4b42be9e79b0061a1f44f0e6034a2d5d0c6ab90f", + "a4ef7937f147bfe26542cf577cbcd628e6517b5f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "279fb691fd324691c78ec04e12095e67434fbdef", + "6ff75d0a694824b5ef0c3f7f63a1ce153e48ddd7", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "302bc0c2046cc57acd6ad1685ba518df9535e029", + "8a8a3ade1f08ac1e100ceca587ef57141239f7ae", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "5f90729c0fc7bad1b21531f88fa19d63f5aa2403", + "3336b939181af9361958c62d5894488c218d0f10", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html": [ - "b639698b97423257e68e002b6f8ad43d0dac85a3", + "ef5059ee6c0e7dab5173c909e0d32ba141403dd4", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "ce203e6d65c16d6428de605c389d31e4de8b7a68", + "c1b6b812fc89cd17bef6a6d30ec3df501bd411e0", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "efb198727fea7a1b1a71670247f8a7d651b7a7b9", + "eec4f30e3dd501900ec3e4c9742e5bd293537b29", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html": [ - "6baa7f45ebfd7d7aeafc0b69763d7a04aff3848a", + "71a5f8e4be36e74f07594c9ca53f85f1c7c4d22e", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "439a7c9a226fc93aee7267282e5434a4055a8c7a", + "c9427314fd88ec236489d60cac2bb92911160778", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "3fad5f1021d5d4213c755ded63e24b727ec5c339", + "57153200c44399ba9a9d9ca06fbe89b9322e9b96", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html": [ - "ff5bd878fdca5fd6ff9831959c35f8fc543c69d9", + "19fdd9e1602f0494c903082ca00200259e5959a3", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "350f8a63f05f324f3c75db143693ac8ee946309d", + "6351a2aa8788169afff2568602dd682148bb925d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "5662c12dbb875bbf87a7b50cf1c443aaa431fef6", + "53d044465fd25b9b2bc3cc54283ab87800a9dbec", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "5fb887f80eee93932e589da11e5da68804c1f3e5", + "af419ebf2eb952a725db1b5d17822da7eef0413a", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "36d14f7f5aa931449cabfdbe687444d400782983", + "383ef5351fc4237fc4f435a2d91365f69cabaf41", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "35298ee1b8080f63a8015cca3904a582a4c7a9a9", + "7695e21ba997fa1cd4952504d6db350c1ae1a157", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html": [ - "ecc03d266e6e7e6c74034c051cd1c09deb5421f4", + "0ffaa8aea196f9798b12efe2630c1770a2080e51", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "4dff0bf1b2d574ef16be178d5299cabf8b2a671e", + "2d3f37b088d30a7591c31a92ec438332325fe972", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "14206c8fd12f673ba7e06488029320f28f5563e4", + "0c11b8730982c264c73a4129e6e10d3cbf52ada6", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html": [ - "82b7ecbea44639335de9518135064fc43f64d7ca", + "e8bd73f4fc29ecea489e910b0630d5e7da15cd8d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "a5885baa2fc1c319c0facbfa37ac3be0120f2e1a", + "83bd891b009cab9cd9ddd47b34874907f2825c4c", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "47337cdcb96487c12c7e298c81e3650108869211", + "9e71b60a6228aedbb6c1a59ba59d24d38742fbb4", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html": [ - "2a03d160571d03aa53eade692e58bff9216dc37f", + "207dc1bd292a144641c28a692f9fb6cf2e1f3eaf", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "7fe5ae10f311b96803f9d5f47d5056b86a894daf", + "1fd1b65ac58a64e33741329274962234807e504f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "b6b6e029df96f4c16f6fd6bd3b93999d5a8516df", + "7c3716a4bf9d67a38190afbff9f14c9782b68bcd", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "abd8f2624eacee52f93a739456cf38fbc1204f2f", + "ae72b58c8652b1218702fcfc8cb2e3e3f9c38b66", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "14bcb5f47e0bc5ff9b0258125fe98521d191bbfa", + "dcdbb6a7ada48fbdb5035d7a407f02a60c68bad7", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "241ef9106892aff3d368326f9b025fdd7cb2c3a2", + "cabced3f61d6574075b3f27742878c02de9dfc45", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html": [ - "0b3ea13ad3475ff48e36986e209e88d6542ff182", + "5d42ff456cf334c49771e4846ecda6d8b97b0071", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "01023441d822685be6808d6eb1c50c666a25d495", + "67c05c79922ca9976eed128ec3411627b9e7738f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "ced106f8f2b57f64263d4283a661bd784152d85f", + "96d4cf807640b83ea7e14ea99f53da3b7711db43", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html": [ - "96bb1c7fc337bb1eb8a33a8d384f46678a32730c", + "55dab1beb52d2f72dc7fe20c226074a4a2bf1b3f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "d63911d54bf2dbd0b9b4cf4e8b49f62e396d7fd1", + "ebd45d92bb6841b676fae4613cda8a471119e858", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "f7dd01186fee2167113668b240a32582b4be5e76", + "2790511c3c0b62a66605dddaa762ee143867b840", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html": [ - "072e5d3ca9652b1617049441440526817ad8c2b4", + "138f5e1a3bf594b1be8ab4f0d80e5bbedbed41cd", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "89f861305c21df4fd31db7b757bd3571aa027d5c", + "2782ed171f2d8bc272ab04fb153660f28e5641e2", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "ded8c8320f801726a2cbe05258ebce8b832afc49", + "ac8b65a43143d8f36e963fc94732cdae3749c50d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "7ebca39bec661f652aeb6ae7a262742e452aca97", + "a3760aa9f5d330cd6f5c30a1d6c5628934eaede5", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "266bb331dacf5e5e31c8c1e82b09ee721769f736", + "b59a96970ab66ad0471c430504403ba147760ad4", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "2d2cbdc8056dc73ee7b5394d330a6f7f3e9892cc", + "ae1f7ca7603a501d73cdd79e72ff184be318e704", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html": [ - "b37b7ad7e49477b55e289cfb625b6391eeb97aea", + "b9bb91b94f24f777ddcc01ece26cfa00d0391698", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "9e8c20c4d4a082d4937bda7e0f469ab0e5d5e14e", + "7857def8a13e8c4ff5eae44d9f77f2a2b2352c6f", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "cc521e77d5800d4df5c19045c2daac57b9a95c2f", + "996501e225e1611a97c369af457f69e2d7cdd1e9", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html": [ - "59b4555e33c32f6c0542c0cdfaad3a0125795767", + "93fb65ff1e50f5831605623c997a73fcbdad3f38", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "e0a2a80419cb5fd1e518b8d18f98cc7f977b80f9", + "f5b4a996318115c39b82838f2bd0361be53d9269", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "0c0fe5c37ce700a752c7a7faaab014932b99d140", + "f762298b16708cf1225275cde2e082fadbc3774d", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html": [ - "8d3ab709d9c4990e3c9b5a1bbbe486c1188531db", + "8855ee114079f0baf445e493f57cd293fef04682", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html": [ - "4bbdbc0178c6fe63e8849c28f5c236f41bfd0a2d", + "415f306d80e21a29ee7050538afa08c2c7623c45", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html": [ - "e2c199e9eca36f8aaff8bf5bd76dde6f76d533ed", + "11b4f6cb0e4afbe4b36bccc0a4a2631bb4970f80", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html": [ - "614e6e837bfb4f403527ddf045b1f5851e27e52b", + "5528ff69ac49a78ae0c07d796f8cc8fa571d73fd", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html": [ - "ee3bfdaa7b042e80d7c7010b361ed513227f10c9", + "f677ac587f4a65fb0d899eede3fe313b82c5a2f0", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html": [ - "969e0cfd7179de03bf6eb7d561875109fef6e99a", + "9ef3ddfda4fef475097db8436a4574c43cde4099", "testharness" ], "upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-https.downgrade.https.html": [ - "af181e9462c702f1f0cd257e48240f53ec9f6c61", + "ca46e296a44dec79c655635e9d921ac034afbc88", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html": [ - "6f165b83c1cf829a82a7512054425d9548dabc44", + "29ad963e1f3c519365766afc9962f814599dc1a4", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html": [ - "c154ae6d42ac951b82cf447cbda5a210a56d413c", + "eadf65c44695df29f2882a4094e3eb292577fde4", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-https.downgrade.https.html": [ - "19cada4b11623bd52c865f2ad7b21810f0b14ef1", + "66e4fe89cd766bff0f05277522957f30539ec0ad", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html": [ - "7cfede294796f2355a3053493d0b8252aeaf2634", + "8e1384f04a4388e7f5d93b5faae4811a33992ab1", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html": [ - "54a5e9a1cd2350e69d98a1db59776e563c16e41f", + "1db67f249f55d2e8192660a28f0577c053910269", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-https.downgrade.https.html": [ - "9ec1a6777cc6825a602d58d797ec2f982ebbc4d5", + "d31e2c8365da14a4842821aab4a9426fffb18b5d", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "9b4828ac45e1afd6b53a1c5fd2ce015bd259c369", + "bb4cd08752cae3111a784a9ac8eb7e1358006c14", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "f6342e1a26fe88ffde2290b62973783b593223da", + "931b55e77fa3f7bc45de92f673e11606f5c3f3c8", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html": [ - "48966792c3b1d41827ab8b626e13e7a57ed83828", + "c1a84d11bee766e390b4e06502f75cea4a550722", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "efa9eba08e50de7759ea9b13ce1d2e34d8354be4", + "c5febd943792207aa7e1fd101ee65faea144c6ae", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "2e78cec61ec2c322fb68b1ca5459d644bc41e2ed", + "4f2ac5ea1c338a6c10156b5b7fa9728c76f1c6fb", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html": [ - "7c3d637ad42ceb49dcecb3099370f77269c60e5a", + "5c4e84b3f646641697ed48e4c8d0d072f73d7370", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html": [ - "ec4bc932d80a421424cf08e601349f4ae00fe7e9", + "277181b5a30c11ad4c49c5ca70f90d1c03415d88", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "139b07bf21d1976f14495e3adbd1a14a08241637", + "7bc80458239e18814eb618d66c0413ea40783aae", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.downgrade.https.html": [ - "0c325ea3f382782ee5d46d6e319da808b0ef9aeb", + "15b0068bab686d2e54f82e4b4d03c9f9151dff76", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html": [ - "e82d1c11e8a695d0c7dbc39058f52b893cbd14b9", + "7536b0d1b4847e02b51f81c81323f793408057b0", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html": [ - "64ba3c24ca345db22868bb81659af0a749d27fc9", + "a4accfd9bb3b0e150f9fd4099318e862e99eef4a", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-https.downgrade.https.html": [ - "f7251e7b494c2b5a2e2484c4ea19e7689b7529f2", + "47d3a947047113787090375e0967bf7ebc7b1a8e", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "4eb31979ea6eb2664b7626a784eac58894a362f0", + "81817a9fc4df4bd4ef4b03e519aee265d5a1a2d6", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "91eb40ea62fedb686ea8512dbd7b7993a1342698", + "4bb57dbc9a9fd9acec31459f799d6c850365e304", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html": [ - "36554b70c19c0225796135901364c7e85ebaacf3", + "5ed7f7b3afb92c92b23d01f06a8b3662da016faa", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "8212f346ccee8232c57c7d99eacaf8018521ba79", + "d4665f488e9eec0d8a5a7707899d63edde8ca2ee", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html": [ - "5cb9d5f2b66049c8ff7b78c51242e53a924a5cfa", + "c6390dc89ab2e10b538e919a1b0bd94a3848daab", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html": [ - "7d6a1f9cd9e24a745b7e9567e83f10456da4dcb2", + "76410cfc8b9e30e287618844e5ef374f538c4bd3", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "106ec53007d28f45b4a4f02c81a51768472463aa", + "9b13c7b2d146dafcf0e3a2571571dfb63bc06bab", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-https.downgrade.https.html": [ - "ca8c3d69cd0599322be1346e5fda020c4727ce4f", + "b8742944da1ba056b1c282210c52885924c6f55a", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "dbd24d34e9be8c5d4488869d830cb2d78b1e037e", + "42e20249f6de0e61d4eadb701f9014cd75082192", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "6514b983f2fac9143bbe2f62b0026d82e2171e50", + "93639049818ec7d2f404276d5159115b9996a92d", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html": [ - "18f496083f2879799471d52c45c103dc6fe46236", + "b738fa5ab225b06ecda8277df00a710af8290e34", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "0c16aff1991d9860dbcf94c84a5d6012de25af58", + "ce6ed5ea0c40c16b3d8b460e77e239343b35df10", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "524b56d2ed339fdafb40a241f54b651e3acae565", + "a76b9859411de49d473573f8f1de9347aeaad89e", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html": [ - "c6339c9dd410544c992934763708bb9b73177577", + "5970537a1a0d77dcb10260e9ed4f447649faaf0e", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html": [ - "da5ea1a8a0f065d3fecebd196686a309f02e6ba2", + "e8d97f650daf40b7216acc14b208e6a511449587", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html": [ - "3896037c69d092ccb4030c2d3f7a73ac2aba2d5b", + "257d4f593759883d62bc05688c3d821a0d749251", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-https.downgrade.https.html": [ - "039baf92d1578f147134eb6307a45f367527600b", + "5f400ca041a10592554d6b93e52f35218075a69e", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "0309cb0423094ee0cb090ba3e107bcfc0ee57794", + "2acfaba089ca7e44503575491c3e626549defb3c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "2434b96497566b102408217964927c773fda9a22", + "40d119b13a68182401dc030eaa9d8fe813ab5623", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "ba6f77826a42637dcbe4fee78140f87e7913da10", + "0c691b43e29f4456f3c670b0713bc89dfe05865d", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "6ebeaa6dc838d14852fd65687e32efc645902eea", + "6cc28ebd6365f80fd1157e30d0593792ebc86f4c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "c1c863566d30248d81c29a61c3d0ff1ed5cc83e2", + "f34a8843b3e2771c78ed33932ff0388fbcbb5d3b", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html": [ - "9298d15d08a4c4a49680a3df2f50a247170f4c0b", + "63c32d16ccd6255ca0e2fa22a5280aecd8037c16", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "a26939d28880fd7c79bc2251391a6660b53fedd7", + "ccab7434376ee8b68bd9bfc0c33902cec7f4ac35", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "2a4cf1e56d847e2a5e6b7e28f26d90aceee6827a", + "dd5a07aec5e43128bdf4bac67d2e11ddc4a4f846", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html": [ - "154b6d0c812a84816a1db1f64cb4ca8dc6ce9546", + "c495e67f6613af55b053c48a84ff8133c6184235", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "bb1c98a99be815f7d1e7342e0d8dd89106bbecc0", + "85ab9af88cf66a22f8007f354fa37028f242bb65", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "1c7729e0076b9c137dc907abdf451e335a04c899", + "f1ec2b850e4ef73f33ba7bbe4275610538438ba0", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html": [ - "9672cfacc0031f3f070e5584100542fc36e302b3", + "aa9280e316bbe7c608c991d231203b0700c336dd", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "673dcb393ad3799f91925b37d0b080841e515d02", + "c043ed304e5dc0be4bef79d3d930b96e6000c06f", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "4ef84c7d605c2a681c2506b2a511846f0ebc5769", + "15e6ad289c89a809bd385c29b6236bd24e458ca1", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "6b6d8d918fe8b22330874054b284b9354ad8f732", + "a18b8f14766ffc92acf2f43113f51b6f431ebf19", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "c7e3806b3b7363209444fc63f38bc88496a1077f", + "2b5e6755761b88079ae8c1e2bbcb11a6544d8840", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "e25c166085dfb12c803dba93e03473649fda60a9", + "e95acc2a761ba077289d026999bac1beffb06209", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html": [ - "911ba1494e6e95c288241ebd0ca78b755c8bb488", + "9e6eca74accdf4df0bff9fbf98ffc4445ba2f033", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "e4362718a20e309e21c0290b16593bc904ad304c", + "c08cf7100f0b1f1a2866274f9b305843ce5c99ab", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "0248efb910f333573eb133b4cef3fad5d8039534", + "75478c090a8ca7936999fe7eca753f95b7753ca3", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html": [ - "06194f2410e661cc17469fd1bfb817d92a186e3f", + "ffc0a7be048a0b4fd006e2790124227ec42892a0", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "bf9cada8a18a5e83c6c328a9c4f561d39371a16f", + "1243c576e16121610fc277a1552d3b2692b18f21", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "413116bcf292b677b22f5e9dae0d3d7248055cc7", + "64632c6d76438bb8394909ac0aceb1d0e9e94abc", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html": [ - "c067eba190507df61d24c1b61d67b3544e9d4979", + "4afab488c32f348b14e8ed8d4cc09022dd71bf28", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "141146d56419a58eb8f97d40fd32cec597c72803", + "b32fc7d38876e80848a6c2a2021cf94f7efb5d85", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "075d6d2e57e2efaf22eb197d550840ebc004feaf", + "5d335335b6cf4845ade9df0d6d65fa9b59301c28", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "5f93b90b63b91172974b7e35a9ec8059b70171c5", + "5409a86d169ca31bac6036784d7f345545ee6471", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "494acbeaa7b24f8dbdde7c85b40f0d7558eebfd6", + "640fc9ca2834d5a00af0375ac0d4150a78aa5282", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "8342a27b190f984fe5113f7afca27d67db8f1b9b", + "715b1276c2deb362e172b555327a11abe6806b43", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html": [ - "de0e3f5c25ac4d7e811f1e7a5d648a2aeba5af03", + "cd0dbe2f23d4ffb97e601bcc94990a77875ccc34", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "ca849d8bfe0dbb45add989c9128d5e26dd476766", + "747c02905876491b2a1a573c1d37e062b70c31a2", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "276e785e30fa0e51d121da641a473ce089bf0bd9", + "c85a6cb2447f045974499aad1a531f90af346b32", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html": [ - "0cb383af95a497bf4e2cce8c821df0ef4e7a1d98", + "f45855c31331d19790a84343e695116d47887fdd", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "eb79935b7bfd3bc310fc966eac27e854ee091d04", + "3e5bcb4a777b2a74453d2507c1f307392a95bf85", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "823e1f14a5f3e5d5efff1a5e2fbbad8502dd008e", + "08f7e751d1b8846a8b7cdbc0e5c4051bba8e0f30", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html": [ - "d28a67c7d86d5b336291106cbc799d08f5c25f26", + "886417f2fe6626052d75c4361a985c97be861540", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "8afab24493852d495bfda27bdd09d26b22004fb4", + "cd96e54aaaca097e7276937a02f8270b46478740", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "95bfb178a3624c7406abadfdd84169ae32492af9", + "93e3b9b9565c0e63069769a45d838409b805cb98", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "c54e3fa73e7e9a094f020dd51ca056aa29886e14", + "debc2f8fb1a942bcf48469ca1a7e9c7607bbe9c2", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "0608f35a1e988dc68125560d91f684044cc33981", + "c1200df0a8c5c54a73982c483dae92b535753917", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "6d1eaad35533de29f0eb495c20707c5253b4cba0", + "c9ab2def155a1e52b5c080950bdf895b076558c0", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html": [ - "31a8aecee617f290f3feafdcb92a835caa58fc71", + "24a3a5e232fecba382adfa7cfbeb99b565da6628", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "dd9c10d27c6ea8df9428c90bb56f5fc84f80f07c", + "3a8af0180efc9f59e36ee1c5aa5fe3b2a08fa326", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "c7db718d84bdb320383d09b012bbc9c4f646d92a", + "b7f0a3d5c8da0b9498785520d30af66c1daa3520", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html": [ - "d1f554ff94d67bb7dd07e2910132a0ac579344a9", + "2e79c3967f296908bca896a2d326a9ab0db85522", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "474b54b2a1267b8ab6e549293f648cd8859fbc3e", + "0978ef69233351d69bf585a35d64d64ea207b817", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "a72e46f34b4616d4d45c12cc029b7a6ccf006382", + "335792e8e10e1fdf042689bdf22e866e14978541", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html": [ - "212288de464abdc783b3a3ba46c2629c842ca0f3", + "603fac3f6254128a58b422f6d0fb26bdd884daca", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html": [ - "8647515e7e9067351459e968910e79611d5b9ff3", + "5383e837c256d34acb8b53d48dac3f4d3bd41b8f", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html": [ - "e1eb57b8a098bde074b4706129b3286c28331f15", + "c09e7ba15d79f0abce9b52ab60e2890c28045017", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-https.downgrade.https.html": [ - "bb110192d28ea919966d5cde49fd6f24529a88ce", + "64273879fd6d06adcd156c9b48f1c897aa2b6826", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html": [ - "8edb94b6b020c1b02b80ed10ea865923c7a9148a", + "2aec53e2c3ab721dd5703c0180fe86b0461d6106", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html": [ - "38d91f2692827ae4488e4206c6ecde8b017eb5a0", + "4bcfa708a37b7e035676eb77bd1bd6082184373b", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-https.downgrade.https.html": [ - "2bce883ad36dc6c346f7c9d4dddd12e0d59de66b", + "ccf34f0e811f4b5a30f88f38ff1f1f6c695fbeaa", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html": [ - "a551418cb19cb8073e946508af4b848cd0087cab", + "aee9de0c82a4e5123864aecccccc731e06c44d73", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html": [ - "f4d9cc7fbf0c262db85a6712be760bbb61e19ac7", + "5bfb72d9578550ee21d8769b16c59be8c45dc779", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html": [ - "123b1eba94512c33fcdcc36111447bef62f71658", + "cbe415495a63f90b7a70cfefbe5336ee8cea99de", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html": [ - "c64f24573b6a20e32b1d21888d4ab5f145ddbb24", + "eeffa86cd6463da60b91001414ed3dc00435d2be", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html": [ - "f9d119487b5fd7273adcd8a6f7389cec41538362", + "b2b97f9eb3107f80e5ebd86834d2ac4b9396b63a", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-https.downgrade.https.html": [ - "5b132dd6996f876e21c2a0326e6b5b9a062f4a72", + "d1aed06207c7cae8865d93b105f5f4d87739fbe8", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "6b0f777b0605aa10cc8d20025acda5315bcab24c", + "a6b861d8f3bc0cd6073b60f460ee8440bd75ca6c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "fc07cfc37c74bae887387e28c78efef4529b1aa7", + "24b4b80b9012cee2a7fdfc30f031e86083e88411", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html": [ - "06b2b8ee803815bc492161026ef368137fa5bf6f", + "2726b855e277a92a3a103e6c7abe4ab2e761c735", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "0c84e45c6b2cd9211cd05733bbe5549536f698fc", + "dcf7afefb6d899c3ddf842b29cda730f5fe0168d", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "9430c55226ad0a790ef39b46ffab6f9ee336d5c6", + "5b1aeb953bfba0ce9e14305146e040921e893896", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html": [ - "5d78db1ea99c3d02a081fcadcbffaecaf30e9d51", + "baec695141297f260ba62b50df3b9c23da6fcc43", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html": [ - "818f0181b92f5543ae8ee99905e1cb2e6073da11", + "ebe5c7daec0ade609578fbd7dd12c863dfc850a5", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "3c5eb7fd4f9d26a0df18749f44eaea19fabe64e2", + "5df9e97602ca0783cdf8606a4b27c968f1d02233", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html": [ - "d636efdc455b9c3fb9414e1a844a953947910336", + "b822e9311ac3b7f90247c0b8cee5fa9ae3f96045", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html": [ - "24eb4fcdd9d4b343dbdb12a0c8921b7147c1b311", + "592789b68e2a14018b39746276a9d7eb7a36a172", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html": [ - "c71a1f235c1c7947a678914c2d020005d257747e", + "48ff84bd4f0da6017ae1f02248b2200159475c60", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html": [ - "1b200882673d1af8da64a5cd054da514fa018ca7", + "c31b823432c4445cf4e9fa8ea055b1e419be473c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https-expected.txt": [ @@ -523342,7 +523342,7 @@ "support" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "24badc0b54b97e262e976f28f324ef0c518fd7d2", + "7c40b6bd618337fcd69364eefd7910c8d5f94d91", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -523350,19 +523350,19 @@ "support" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "3b90431dec4ad925739473d8502087fbc664ae7b", + "4ee70c5737ad3103cefa0704e07dbc13a200dcd9", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html": [ - "d8df110ca214c414975b702883f73148f97a882f", + "a37cf7b1c1201d342b9742c82d7430a67292d1d3", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "b1f5b39f02e0810623b57c6cf9ca69c422c8a6ca", + "75e6a885f59384392ea797209ca9cc72dcf601ac", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html": [ - "64e96fd5511c78139ced13b06798649d0dc7850a", + "25ada1128059ac138bdf99b7e389c2af7fbf7a0f", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https-expected.txt": [ @@ -523370,7 +523370,7 @@ "support" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html": [ - "90368ada345f0ba341e68ba8af1612b6da194a71", + "80392491f00b07a9a1b891660827acd4798d05fb", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -523378,35 +523378,35 @@ "support" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "7155bcabc8331598023abf96bbad6a3f7a8900b3", + "ab26c04620d7602bf8036378d3285ee2ca4c6323", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html": [ - "1293e4bfdde01dc1e30360fbba069118b9840e90", + "c415822392c2c4618ac0f5250783dfed7dddaad3", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "f045f76b74368cddf727b220f5c0e9aaabfde49e", + "9785dbe4357c6bd36f3a1b54447d085989e3a155", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "4e846317d2ff6966cbddddecc08c93be6981076b", + "c4676db028d3246c9d5421430a9a1b81caf960f5", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html": [ - "c1c95cc4e2771561cde77a79277d37d33c51851c", + "fc590e7271abd907da11917fedeb36064c5369af", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "d9bcd0163ef0c8bd99957760e7926369e58f9c8b", + "d814072e41d04ffd5d7c4952247b942a67491d6c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "26eeefb54a1a55dd716e301786324ec45e439d8f", + "75cbf68253afbb004196e9a84a8964a19bcc8d30", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html": [ - "2208f8879c095b49647f4e208cbf246cd8394452", + "61b8125544f54ca44c6373ec90c02ae9eff55288", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https-expected.txt": [ @@ -523414,7 +523414,7 @@ "support" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html": [ - "6a09e8c9d3a8824735ce78304ac82ac5223dda35", + "a3a3783570e3f3ba3eab22ae646bf315ab4b6b68", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -523422,231 +523422,231 @@ "support" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html": [ - "c249771c7a14d8bf07ee4f8d269d9fd9229416e5", + "bb07520c8dda9f4d9b048655d834fb6db595b5cf", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html": [ - "42b62af0edfd865bd73157596e4b303322bebcdf", + "77d6de88ecb4b4a4ec4cb4198fa1eb75b39f84d1", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "90fe184c08f71d7c6644c13399c623bd0dd633b4", + "9682eb51719fd74a86a428994a9574e06f0ccd96", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "1288c7c6dc1e28c4342fc624945aa84752dd002c", + "9214bb2f77125f6efd85c513b739a03565ee82a4", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "07c27fec3ba4c8f2d41646193c17f251150eac57", + "799ba8f494834491f002448d3a7c5fb9dcd5b4ae", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "b7a12e0c4a6769637956973e1ff7ac70afed3b7c", + "c43defe6298ec761cb74c6cc2655449a43cd5226", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "5f27dc4d9fd0a89b513f8bb3a5ea10fe73ad2715", + "1ef76ad7be2f08978c02ab1e8d67acc6363ee5a7", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html": [ - "a0fa92bdb1e273e2be4cbac3ae0af43b0e1b134f", + "f1d03735301b73a28d7f8cfe5463ce9d4dc37966", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "fd35b79f023f705179575f746b49f45e66df70e3", + "e232edbac7c61253fd48cef043efa2aa845ce1bd", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "ee34404899eec609dcb2ea9e35373e23e6266fac", + "fb81b720d5a0e77087819a94e7dc90087632bf57", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html": [ - "db38f1489becf7d0d0a9f492f0d43f31d3a4b59f", + "d74188cf455fe9294c200ce55279c1c2889fd08d", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "504cf09f3050f43765e7c5276dcc4fc3c6d7eb1a", + "50866e6e7ac4625149dcf6a2d4a72a6d96ddd0fb", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "698a985ae2023e83f3169d3d1922a20229bbbe6f", + "1fb0f2e73e30378b69dc499d7e24ec2a02b42c37", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html": [ - "5d7e021e75f3f3ca15534837cdfbeae737aa60c1", + "d89c57becb612757ce7b91b011b0682a8d9174ea", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "d3a6c681dca47d5093d2202cec95f56d08e840ac", + "17020aa225960eabf8a386032412747fd7a96e8b", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "f50e00ed5b178d4b9de334d4291834c6f71da8b7", + "cbe51e460e2bf7bdb6232f7d44c9c7cd371ba954", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "effd4a26783d1a1950acd40473f07d7edeeafafb", + "7cf4fb049b7ac53e584167ea4d8d4693a71d06f4", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "f19484bf012f92602ff79cbdc35d68c6929904fc", + "948b6bf341291a012fb09d5e683d992ba56740cb", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "db00900d10180f2390f05f8a4e41c6212bed87c3", + "65ab28b25cac490b4fa257b626d3c5a0235c4e0a", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html": [ - "706e439d4e852a9fbdd1acc5e39616cc98c9fc2e", + "1b47c22bb30897b95b89ab5dbb43a12cea9ebe3f", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "581cbcdf15a4fae4f7771cab1461986440fa722e", + "5b36e1ac061dbf24fe5d6831a08d0aafe9f9772a", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "1dfadd638284f8786d08ad8a0d4b2ff45172d8f3", + "d783f808f332d227c576343ab7cbee2e562f73e1", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html": [ - "9f56262b0935be6b7f24678d86b9f45b4fbb8405", + "7b31f2af5a9a3771f1b24605e83c61b29a8c1dc8", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "bcfec764a3d43cc0af70de950a70f22a4ded20aa", + "f6c93b74547a80f198550cc4621cec92f0df6207", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "71d5629dea534c06923d35a7296bcc43bed251e6", + "ff00362e9cd8e916163a75e7dcb32c2bd72f1bee", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html": [ - "ad67adad36f5454da534586ef5ff2fdbabbae6a0", + "f9069e28619d41eae1a5edb2b86f4a8ddc4b4336", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "aa302dac6b640c9f3da909352b9e27d04e5a870a", + "94cd0ed19d6c61294af8c066d57ed9e286d3d789", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "f108bdabe5ec97a0772640e9458ba52797c32cc2", + "af924c382ddb5c57a80b13326fc028d842aebd79", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "6b05e643809ed236d5d4ef69fdea625327c05e8a", + "263d468633c1dfc69b5b98db424d1c4083b416dd", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "6b5418df7308b7eb2076a4a1af1ddb06fae4a765", + "bbd703b54ed6559ce84235982ce9a221fab1a7a2", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "81c6958658c4fa45a31ee5a65eb716c7cbefb65c", + "505aaae581815971d79e845aebc5f6ae03b5b5f5", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html": [ - "29acc0eed4f1cb43b60a3263ac23b3389a60dbf5", + "b0d058b778ee260ca31f0dadf148d80e5f2c9b73", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "7fe4009758cba3ddbb1fb4b5246d7e823f293517", + "7696a89d426a2e09e249e596eb103a4723d39e5c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "0a03c48db64c75c052f5445b1d7952f816e33d98", + "822edf5b0948dcc3186a3d80c64cc586048a6b79", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html": [ - "1d2c5933b51406a07a15bba8421f7e9c1bd41d0d", + "bb9c6023e6bd970ada89d530c6137370105243eb", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "b3ebc435c2d0c46e13b8f398c91a55255a21b0d7", + "c94b8ef959a45fef0326c50dddb5a8242c00f063", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "26279c5fae242ba0f9a576973471c8df7cd17e4c", + "f51fdfba7d9d47164f2b9d381d42103c2eb2bd69", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html": [ - "5e1a4ec9decea9a567db6918bb962036dae1e0ef", + "4988c549b84b3d86c8e195536e8c328d724e0a87", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "46cee9588407f3212ebf8fc5d4dde318a4e88f36", + "fee2bb271ea17f5bb55c7aa3b1d9150926f66e1c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "b2b9bbd4b37a92d98ee7ffa9e957998f2620eb5c", + "4217fdd0bc03c97b27cf6ffd5385ca9d508b8f77", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "e5dd3eb356b55652b63bcb35050409b2ea5d8ba7", + "f5a48ff475ed85b673947ea745ce97b8d6229d40", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "6c642903995e29d9b8162da12543c142e9821997", + "4a42bb7f9c20b9f4ec3e20e3a8cabd9d5c1b27c5", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "6ac8293bd6792536e499aa194139f8052d9e85cd", + "27363a5d1f2e2a2425b09aced0575166eff2e739", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html": [ - "f17b252ee7db4efde15e673da28a31fa0aeb87e9", + "a4f49c1931e866dd920eb85d95c6bdc1f70544dd", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "1df14a9ea246e337e7ffd10558cd7587bbd9ba50", + "6e2e81afc48d6c985c22671ea3ce05a3b0a64c2c", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "b2f2dbb52b499c267d9b81fac097a491feb8376c", + "57c7ec608350ed62af70ee8e594c7cfb1696bbb8", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html": [ - "189232b3f8811c8a489b16ef2903997c5de13863", + "f1100f235476a4a476420b4caa15334ec2832742", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "8adac34f0db683f48d0435c08d07c573fd5e1198", + "4cf1a67d41ee7cfdcff6c422393f8623651978d5", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "91e1935963e2733d1fcbf22e7e7d86a47a1e0200", + "cfb87f8287ec390811f5ccaf56fed0067056dee1", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html": [ - "79dd7c52201b168abddacbc97e225f990264fd29", + "022a8c81867699ae5717d5767ef9e86b70234d49", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html": [ - "15443fa2dd6abbddf1cda7eef7b5a5eb94a276e6", + "23a16e4af481b2e9c9139925381b11ff0cfa0265", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html": [ - "d72acbf8a8ab82aa54abe09879bfc8383eb7bbbf", + "a3300e50a11d625a0e69323e5b8caeda6a682b6b", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html": [ - "b22b35d9a37da906f1cb52a30be181445d22964c", + "7e3d77a836724a01703b96daa34c6a8950b44764", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html": [ - "e3a59677cb282039fe8e92572cfb3976c6d903d7", + "34fc7202332af52a4636321dd1771fb38d5389a7", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html": [ - "dd4c6d887215e2d5f1a316b1554603ea3beb4f03", + "e0a92b68d0696cb2c6827f036b72558ddeb2ab6d", "testharness" ], "upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-https.downgrade.https.html": [ - "3068ecc85be92e8c94a50df43cbea669e6dcdcd6", + "5c88d569669ebc959fb702f5605e301f96db6b08", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html": [ - "2a7790cc33ca7ad5018e15a774a7ebee1bbef419", + "6b2c0ad616cd549a5fd239ae19263970b895f5e5", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html.headers": [ @@ -523654,7 +523654,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html": [ - "6911881fcbf8517ef82779ba0dc450b0b75dae00", + "ec3c8b92c4c56014f25fe2e921fa7b93f4232989", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -523662,7 +523662,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html": [ - "bf18d02efa61e780e759b2fa9c5cf069ce2efe0d", + "3a06038dc0f0cc8b371f733656282c0c091bebef", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html.headers": [ @@ -523670,7 +523670,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html": [ - "5f031da8f22402c5bcac1159a3c21f199942ffd7", + "d9bca21935120a27e8512c29068480094d0fb2e8", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html.headers": [ @@ -523678,7 +523678,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html": [ - "63e6c10ba1c55448d9858ff9ad3e1a2c66d88724", + "2cb2510d985e7f1f7f1da2e06d4c386c76e8b4f5", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523686,7 +523686,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html": [ - "4769b3e47542b410ac79d5788f9a0cc32f1cc7d0", + "f138357a6fc1cde1750952905a7bb69536ede86b", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html.headers": [ @@ -523694,7 +523694,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "c8da091c47775dc853a7f9686703d95f16674b28", + "92b9a4015d6dc00018d1ab1df7248826cb7dc700", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html.headers": [ @@ -523702,7 +523702,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "0ad59ebe503c97e338d1ca4cbf628ded76355602", + "c6117f3d772394dd9dcbba30a62769a297f73a56", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -523710,7 +523710,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html": [ - "128fe831b5ddc05fbb9d33bacd85c3dfaa7590de", + "add0d38ec9cabea1d822b969e3c693091fcb1461", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html.headers": [ @@ -523718,7 +523718,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "d11fcf97344b09dcd7a0b80429f2f6425ed8751e", + "f6cbe1da0daa08114838ee957cfb55d42f6238f0", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html.headers": [ @@ -523726,7 +523726,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "6032303cac0f6041def88611464039d685ac7c84", + "dd12ac231842252a70bb8d5b718195135bbffcb7", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523734,7 +523734,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html": [ - "661356c3c16cca32bc964266bc6a48318a8ac550", + "c4b777f0f33cc946863c7f56960ac91bb603a6b2", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html.headers": [ @@ -523742,7 +523742,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html": [ - "c412844dad3b1114642132913659e7acd1e83552", + "9d71e02c9e37122e42060e7269c074cafe8e7302", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html.headers": [ @@ -523750,7 +523750,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "fff93a9e18e7b10a88533281aac977758e1a96d1", + "809a31c35e3c357d06b5ce58def46c3d3e340c8f", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -523758,7 +523758,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html": [ - "b63847a7cf039c4e018412670a4e54bca6b5ddc1", + "206d906c4f499da237ccd26ae075d212ad06446f", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html.headers": [ @@ -523766,7 +523766,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html": [ - "5f53c2b0771183c9a5043b9715103074a06b5bd9", + "ec54a837fba13756b6483a0c258241d531e07478", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html.headers": [ @@ -523774,7 +523774,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html": [ - "0d890c4a5270b2dce5432d26ec7e31678a0af27e", + "668dbe9bd114d73a6a911d3b5bd7480ca461f748", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523782,7 +523782,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html": [ - "bfcb628c8021c380340ef57f726294c61401faf7", + "f5ecd77856d32a170419bd54b8109f581ecdf323", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html.headers": [ @@ -523794,7 +523794,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "9eccbf0123c0c89d6493ccd99a4fb232dfba20fa", + "ec03696469da255224779b29ffa0c2bebd37a3a6", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html.headers": [ @@ -523806,7 +523806,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "8e5ea4a7fe9e4de5da59f4b759c7388f8bfa011d", + "4cee4e76d9a171446b027604238740f0e3bb032e", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523814,7 +523814,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html": [ - "470727e0625e415ff7a7f3ef9ecf7489fd322bc1", + "d4ddc305d1f81d6d50ff2d762c8a7187e2388966", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html.headers": [ @@ -523822,7 +523822,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "4a52dfc8881fa4682c557ac8950107e6a91a0cfa", + "123a25f7fb7e7e8ef5c337ea061e1e6076c10171", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html.headers": [ @@ -523830,7 +523830,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html": [ - "805622a86d18695e512f4cb7d56ae126459de66c", + "a2a7b193e6d9a1142542b64e681be2a1bd642f76", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html.headers": [ @@ -523842,7 +523842,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html": [ - "71761b8b1df162aa01f006a5db50dd02bc782c33", + "793f743023b085f168dd39d4a31c0430e4f1b7ed", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html.headers": [ @@ -523854,7 +523854,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "abd781bf1f4a7a9a1897fb9d656041ca371f2401", + "8a39a3b4c38888bcec409709e9291bd1639223b3", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523862,7 +523862,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html": [ - "514ea385237605b3d6e09db8cd55d39bfed7b5b2", + "2c4a4d25a7c2092c03e26c6e4278311aca278d6a", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html.headers": [ @@ -523870,7 +523870,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "3b56e7a799c3cb4f0a06daada79952c523200366", + "424b7595f94c7cf8f12e09b373cf9bafcc2bd97e", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html.headers": [ @@ -523878,7 +523878,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "2d0474e03024e055594462b939ededeb03af887c", + "acc4563b1a9d8bbbb73f69e671d8315315de057f", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -523886,7 +523886,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html": [ - "71353a3706bf87eae8803315a81bb41c00f856d3", + "3d2700d848ca32ccab9a2322f784f02feda4a8b6", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html.headers": [ @@ -523894,7 +523894,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "8490d9363fddc869321c713ef9041488e21b6742", + "d649c4a5c426b58e534213a982453f3217a47971", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html.headers": [ @@ -523902,7 +523902,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "cf8591f88b1a320c62c61361602478b871333b45", + "88bba765402880601a60520d8bca40afa794d9c2", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523910,7 +523910,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html": [ - "9117f9435df42d3ab67099cf111487932f3dce57", + "a425a01af91c027ef14b595caed50ecbfceb217f", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html.headers": [ @@ -523922,7 +523922,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html": [ - "f01a9c0f21893190eedb1cd337b119f184f60b9b", + "82fe96a308e4cd5af97e493d3ef190d3020fbfff", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html.headers": [ @@ -523934,7 +523934,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html": [ - "1f7b24ced6bce90ad88e17fdb363211e7f8cd43f", + "506eea2ff05ec2b7f23eecab9ace1350c1e82766", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523942,7 +523942,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html": [ - "4dda1d0f192363e9c223513c410f7c71aaaada82", + "3bc321922165a0a639b6d99bf442376b31ff2642", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html.headers": [ @@ -523950,7 +523950,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "668bde7a1d5ce3eb174d6b1348516ad7e9fcaaf0", + "82c28b4a0c75df067b5509fa15ad9303e8401c92", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html.headers": [ @@ -523958,7 +523958,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "6c94064853735a26ce09440d440a70fa039f2287", + "e372fb761a5d15645d61b82edbfbaae651bec754", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -523966,7 +523966,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "89a5aefe9113d4b0ce61d7b8e49ec7a47ff8e3b0", + "8b760745c7152cf9153c45b18bd24efb2a12abd2", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html.headers": [ @@ -523974,7 +523974,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "0cbf66c6db26456f145e3fa418dfa94fda205195", + "d970aff47f80f095a91a821b609b8035d245b937", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html.headers": [ @@ -523982,7 +523982,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "6e4e8abe309a87f7ff1d6b844d577fb30a3f738c", + "6d4ae6a2e36dc0f027813580a7443f4fe62d42dd", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html.headers": [ @@ -523990,7 +523990,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html": [ - "ab1f02af2069330c9db3092e586f643b86eecc31", + "ab61f3239a01da5ef4dc17225e39d074cb7b0fdc", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html.headers": [ @@ -523998,7 +523998,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "89607791547ec85d4e254305e76ac13a5c439fc9", + "23e397146ffe6a457b38e7a59db20769dc00b0c6", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524006,7 +524006,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "49b7df1ceb267d210a5d70af00b5aa1ec5a23cd8", + "4a763c292b5c5b194ddad16ae473d5e21bc5eeae", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524014,7 +524014,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html": [ - "8e4b92334351924400bb43abfd01fe9e8e9545d1", + "36794170c6a6d7312ae406c039da7746d11d4c0d", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html.headers": [ @@ -524022,7 +524022,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "d4a95355ffba66cbc6fa15d8674c588a1c566a70", + "5b7798cdfc70a313dbcf1d54db08dfa5ca41ed22", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html.headers": [ @@ -524030,7 +524030,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "a8c88f4b10727bb74fae2cbd0f960173836b4f24", + "457f0ac8b5ef774df811d70410278752a9629094", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524038,7 +524038,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html": [ - "2f39bbb2fc580359f950ad1413440d47bd4a163b", + "6ca81ac3e9c6af1ede64960568704826f7b24e6b", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html.headers": [ @@ -524046,7 +524046,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "5f9500e2bcd9939cf98acf85a13bc9fbe3dbfd83", + "f64e2b5bd9fe17a6c4c6314b7e2e39dcc5777ee0", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524054,7 +524054,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "18cd96e8832001981413fa7edb050a15e945b837", + "7019e56dccb99305d00a971a3761f6a49b05b0bf", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524062,7 +524062,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "ba6ed32a1d2341b01e7214b5f519bfe9a587ff9e", + "1db825e09f08fa10c45087ab03d85c22eb24e932", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html.headers": [ @@ -524070,7 +524070,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "309dd782e17a47239aa192ddeeda9850213bd4d9", + "bcb233b943b73d53afd2147ac85a03b94b79239e", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html.headers": [ @@ -524078,7 +524078,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "12f598fce855942e9eeb48eda777db2256ba20a1", + "072dcf863ee7b3a17b12524885b9050804d1dc0f", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524086,7 +524086,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html": [ - "20c901c432625bdd92318c6ddda640e5f5e27df9", + "69c44ac6a58c3cb541b19faf1d6dc73a76f837e2", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html.headers": [ @@ -524094,7 +524094,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "9b59f0ae60aa9b7e6aebd561438e61ff29e42b8c", + "7dc69079e1d37f7cee9c696c1c99149a210af008", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524102,7 +524102,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "feae96d10e416e7d8b922b83f8671bcab30f87c0", + "64d386cbd439e4ff9ef7bf8a0a4c43a92fcf0641", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524110,7 +524110,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html": [ - "636ab9d72e3b688db663d463441a51d7934147b3", + "68069cec7cd2cea3caaf5e1fb10bc4a39d1ad5e1", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html.headers": [ @@ -524118,7 +524118,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "bff934a9e3d8ca564faf4047f780ed45dfc8128e", + "fe9618f929da5a31e30eb045221be91168027b28", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html.headers": [ @@ -524126,7 +524126,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "3d8d86aa251fb4b524b36fd54b90f4a7b2282979", + "b8534b5b8092e41c06f7d63b0c0bf9790799b74b", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524134,7 +524134,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html": [ - "5d78867856ee79922d8449b9e2bf72f1089d2822", + "dfd4d450439f042659bd0d4f6659837c991a3395", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html.headers": [ @@ -524142,7 +524142,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "cb0d12cc92336fff0d7242d559b3781d1596c3f1", + "9737ddfc3213fa2ee29c9371ad6177d72a4ecc28", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524150,7 +524150,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "cddebab2984b930f4d4081983eb000c71d451098", + "86a314c5bf3e03afe8e57732123aa44b41cc4819", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524158,7 +524158,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "e4bd2b688691e42a8a1cf08af29bde942f30126a", + "63fb7f3c94669ec305f9967328a146341cc238cb", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html.headers": [ @@ -524166,7 +524166,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "34daf23396b0d3315c24f3192fedc0f0ee3abf3e", + "edc14448cd0ac626aeb963e0d3cab7fb61004690", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html.headers": [ @@ -524174,7 +524174,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "015697f4dcf5d3da22239befc2563f82c41f4f93", + "1322a7f4eea51f269b342e49d223fe26b04810e8", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524182,7 +524182,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html": [ - "f7fca4405ba71f0072758bf77ce6ec74b3d0b281", + "dce5c13dd49b9186738817b69b275fa280c198e7", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html.headers": [ @@ -524190,7 +524190,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "43617856af37bf5ac0cc6af332bee0ea8acc89cb", + "16d2f26ba93ff8bda969963216e457543411c4dc", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524198,7 +524198,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "9c4a6131428781161d1bd969fe3315b5f8c95f50", + "d2fca9c5f8375e20a4b708285466cdb3dc743730", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524206,7 +524206,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html": [ - "771fa29ebc5bf19abbaf5c80a45cb51ad7060728", + "d2643919d60b952a50d9d578cf53f0374d9c3f40", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html.headers": [ @@ -524214,7 +524214,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "6aa3f6295e9e5628ac4698e173640dc47cfb0025", + "f8033e597fb58ee3ef633db6e5218b512f481cb7", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html.headers": [ @@ -524222,7 +524222,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "8190133d5936543c5b69e6f05a4ab7e4bd96b547", + "6cabd86707298993461821a5b17220faefe6ab41", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524230,7 +524230,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html": [ - "325174659007c50f9fcf52dfac51a5c7c6b864b2", + "6052e366992033350141b6b43140222079bbb737", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html.headers": [ @@ -524238,7 +524238,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "d7c86b06c825bf15b106dbf99a2b8b0c8bd03dd5", + "d7804cafa80425de985b8c4b10530f80eea76747", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524246,7 +524246,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "ca62ab79cae3364aedd9f885d2b44d986f285bc0", + "663004027ea764c8c3e3e906972d4574665665c0", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524254,7 +524254,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "d2378fcadf01c74a8e2961dc1eedab438ec35bfe", + "3154f627a89010c8c810128d653ba61a566a2c4b", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html.headers": [ @@ -524262,7 +524262,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "74b9a4a54011e295893d1187a605b6e12a77cef7", + "f0a205fb9406534ec19c703c66fce07e7755e0fa", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html.headers": [ @@ -524270,7 +524270,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "d94776fd03acd148745417dc13a833f4d53cc982", + "c7c2dee6bf384ea41bbe19884b0077b38a88fda2", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524278,7 +524278,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html": [ - "aa33297eaf35a4d60605da423f27b429c5872797", + "2ce9ec2fe366657dc98ba10b6cf91c40c447e350", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html.headers": [ @@ -524286,7 +524286,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "0619d470145850dd6b08942b906f55ae756eb71c", + "75c40dbd064328192b610e1374c46f595723836c", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524294,7 +524294,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "a91c13cfc8ef4068121de7cfdd926b35ce5a796e", + "d725217913d0ca85f7bafb342126208d1f5d3ba2", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524302,7 +524302,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html": [ - "a1d28922a80bf436f1cc0601c768e4018ceace99", + "88c53734886e2d033f6fa719b6b5288fdfe2f2e0", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html.headers": [ @@ -524310,7 +524310,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "56a8227d06493fe2989bb93368c7f5332b9f120e", + "ba6c4ce273f4d0c5ac7f23ed9815a39fdd90773b", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html.headers": [ @@ -524318,7 +524318,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "6c551a59e493f360e6d3fb2ad69c34b056e8e330", + "92f5b1aac213f91558a46fe16c95f2688b481a73", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524326,7 +524326,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html": [ - "41d1547c5b0442798d62c2dcff84702a412d6f21", + "1aabb8d8df32137e6b925bc5fad1bd8c3893e808", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html.headers": [ @@ -524334,7 +524334,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html": [ - "0278c5e72235050031604b47fd70a5b82dfce073", + "00ac29bc84e2b7786c2f57ff3bacfe2c7b9ba734", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html.headers": [ @@ -524342,7 +524342,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html": [ - "cdacbb0333861ab4597ac5546a24533f779735f1", + "a49ef623c533c750ac9ab6a370a9aaf1f80ee1f5", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html.headers": [ @@ -524350,7 +524350,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html": [ - "711b035f9299a5b5db878f29889b2fcb8370630b", + "05bca54e30e78cbd6126a22b64b386052d891785", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html.headers": [ @@ -524358,7 +524358,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html": [ - "c3f5fc83fd3031d7e87daada92451e04d073e9f0", + "471e943a3d08878f7761ef825bdc13bd43631034", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html.headers": [ @@ -524366,7 +524366,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html": [ - "234c639edfd27eec59963d6675024a211a2cf25c", + "7eb1ffb0c7935209a2c8c091c8096812e43b999c", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html.headers": [ @@ -524374,7 +524374,7 @@ "support" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html": [ - "d926e88181caa40d1dab69b121226380a3edc7bf", + "269769f1806cc3e4c588e192aaf7f13897f3edac", "testharness" ], "upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html.headers": [ @@ -524382,431 +524382,431 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.downgrade.https.html": [ - "fca4a5a70a9711ab9d94064cbb4c80ba38564122", + "67efa81dc42733f1b76a1595fcb972b2b8192485", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html": [ - "25294d3272200a784d20c9535e1306da95241bc6", + "83500403a68c42805658b6615e0b0c5627e13d75", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-https.downgrade.https.html": [ - "5e8853d5e46106640f7ac2ca3e0adb432b76f107", + "87f89f3d19f8ef56b1bd3a9af694aabe28be03ec", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.downgrade.https.html": [ - "4518ced5dcbc9df299420471319e484870df2d73", + "8905e773525a14e3c417b95380f98c10a3dd61ee", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.no-redirect.https.html": [ - "2ad6b43f4473d82baef53ff290193bc5db47bac2", + "a5f2357d3557694067fe64355880af8d33b23f88", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/fetch/same-https.downgrade.https.html": [ - "6ed6f53c9d5f8f8ef53e61d2b2e3bbb864762f29", + "f41f7cacb733c227a110ebc97fe3de653f555d52", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "93dd9d9b7cadecef9838d626610ef6e0e40a5c96", + "2414d7ca26ca100864165d9540e53be7230da282", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "707c260eeecee5183bdb3e2b3ebaef0ccb2ae8d4", + "a9eb72807d31ecd3ec74f6859ca5702285fee90b", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-https.downgrade.https.html": [ - "49a3a0d2c3f918351acfb0f36e830b3015609023", + "cb7616f7256724b14fa4f8b876ec3d4a3b7e7bde", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "7b308e355d04ccc743eeb532251576abff31456e", + "fa4310e3f14bf8d47b923150fe05f8c475731e09", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "84afe5cf7bee536eaedc98e198af090ea9e3c6c7", + "58c4519da75fc4a86e1512069daa778335bd3176", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-https.downgrade.https.html": [ - "e00d307b5d13f7ffa276b364325c3496a9e3eb99", + "0168e00c65fe9aec39bde4e4fd30a05a27da2691", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html": [ - "8bcf5426b7096d5428ab380a2bb89dddc23292f5", + "2cb08cb8ccbdf691ff10a6167fed6eab27daca25", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "8ca7ccb653ebe1ab2d3b4cddae13a3ba2836d7a7", + "812df4cc1916bd93ab174096e5c69b9c4328628d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-https.downgrade.https.html": [ - "caaefaee6b41049f156f8e96dab956dbda4b40b3", + "c01c49587384a4b91657717370abfb711962ecfb", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.downgrade.https.html": [ - "61aca5a259342cc2dad3d822887764143f15b972", + "c9adb7b61125ff8b1ea6ccca312f90fec2f00147", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html": [ - "3288cbe19daf2ab25fc5551f773ce109ea63d368", + "d1352fdf554da68a071724bb6de42b1faf47ea49", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-https.downgrade.https.html": [ - "3c0208cb48bb3b57b3dc72746aeaf4dd1fdea154", + "30b3efe54206c3b2fe9fe623f1a7f7cf27691e78", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "67ae9a77415a9db14482ceabe9392f26138ac273", + "071be8c6275af099c2a74944d41ce39ac9e2aaac", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "71ca8334270f3cec78bc5c60c5e9cc993cfa1ac0", + "c7096af5ed880d5080e1079e70291997e914f36d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-https.downgrade.https.html": [ - "88826a8d44095bb9e0f9eb0a95c58a2beac01bed", + "3a1d79eafaeb712eaefd291fb2be69bb48bdaf26", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "123bc13d5dbdb9792010ae2fe226121843ffaad7", + "77db067c64628c3b5828831ad9e3d380bc80b638", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html": [ - "a5bc2c88e7a642c073fc284ca32c57d55c634be3", + "ca033331e185a4e1c212622c4b618e1398d2c293", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html": [ - "075e9d535dd0c612cecea236db06260b4c297f3a", + "34d1a7a784dff3ae64c7270bf20b88019b24d26b", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "bec65611ee3b38a16aeb06a320509a26881f30c1", + "e4fc17ac1bd9fa0234232b94eb8d4650096ab314", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-https.downgrade.https.html": [ - "d9bb535dfc4d7d61742f35dbf088e1c202f5d699", + "8999ab8b9f7c05e64e24799124a9e0df3cd63d04", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "bf16f45e0ea3ae0625cc00c2dfc4bd272eed9a25", + "2c7b37e35002a3f2a23cb3e966cc283023af95e8", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "23ad04062ed257bf3bfcb02de1db66c1e720a6d2", + "48f2589569104ab63c36cc89a19f34c5cb9eb901", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-https.downgrade.https.html": [ - "c10b93bca3fd28f1498f97fd8cfecd9eb9ab2313", + "9abef9b1ac94c9c264bfb7f53c28df067d68c2bd", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "b40c22fb675d8c0c25d4d9bd7c6de099ce4b3bde", + "c36e94d5c6454129330057de0ffa5660eead14b2", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "c13ca3414b9576c4f0f0d70452f7c25fdd972502", + "a38c0dec0bb36cb7eafedab801a0dfc82372d209", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-https.downgrade.https.html": [ - "e14ba510da1b74d2bc77417f454a953c9b5affbc", + "15bab9790467422c29bdd4db77c7d03806772439", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.downgrade.https.html": [ - "3f313441729ea9b78ce83bd24d6177164e12aad1", + "a5886371401c7244d7bf59d73f94ea57eecf77cc", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html": [ - "fe106b20c74378beece550916f41f51e97cd9d01", + "3b773c72392862c63f926ba372bac80834524e82", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-https.downgrade.https.html": [ - "0116fd8100eb4be377cafdcd6fc3223ee3bd8948", + "17a6e6cd2f141d2be2dc945ac1a8ac980fe1773a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "41db74a8800818b88117b478b18edfc128649d3c", + "aae618993c670b3f76b42fd25c25a7e245e610cc", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "48d95925fd064df819ca8f70808fa9a7fa43a0d2", + "022b2b2cc3d735e72059d4f599c7c78dfefa41dd", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "9d32ee17331d1e376250f63207768a35231c399f", + "7ebcd3afccd308fe7b97d1cfea2cc0b3db89735c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "f16f22ced5867583b181086de2bd6d18b70be8fc", + "2209880dd9b50f674f0f39c3da8d1bb7f159c4de", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "9933d1ddd488e00a2802d6ddaaa03386c58f89a4", + "9c3a668b588c2d4d88db6ca5cb684bbbca226a25", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html": [ - "097720482175286658e4d02e09c4527e9be0af51", + "503f0d99e50c11daa4fd462b7f03253198ac5cde", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "5da525d932d8b2fd44e742f4f512615b3112cec1", + "402a59cfd69dc6ce9287e542b1848413cd04518f", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "3391cc8abf235c7fafe1a67e17a81a62f56128c4", + "518cbc31bf54f4fd860dc91cfb5968c4855bb7a1", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-https.downgrade.https.html": [ - "dedd21701fdb7c03d7b908bd2d28830b52c863d1", + "bfd5206b0679de2271be3a9e282c901235644447", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "f07dad184a89a1e525fcfeaa15288252c7189376", + "88ea4837873d00a0b51e6425f784360d5cb60673", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "61569fd8f8d63919eda299ede3ae6600575e0ee3", + "4a56f465125876c218308f3e053819030840a326", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-https.downgrade.https.html": [ - "ace49d00b97c5f9265f5dea83845917868df2d33", + "91e7912d5841c78227229ffdb3e92268c74e96c5", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "c266298f0f8c4368b5177aee73631e545d0ce35e", + "20d573b29ca596e09f16401be23416d8500548b0", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "db6a1876b8c33e6546421711cf6da502313ced8a", + "a0925250e5e40462ecc3dc562b04e36824b7eb17", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "1e1a8faf7e7a5c6b665aafec0cbf49b1ec20e91c", + "1154b7166eaf2a61c8fa2315e80ae97ca9b65ce5", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "fec20a0914638a0e70eba9cdfc02f9aeb741519e", + "6910988ca2f35f0eebd6d472895416784376bfe7", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "aef2b52cec3582e3e5dae065be2fe686c63b2084", + "efd4372812ba6e6d31a114b252c7ed75d4ac3e63", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html": [ - "d358584ba790b755b73f5741c9e4366f982954eb", + "1dc63d13cc63596861c01ad0d73adb2d73659471", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "3a6e93dfd35c46f9321ef7575d2d812b5cb3fbbd", + "794f83b3569cf800f5d12c65afbd5c2bb8fc9c30", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "47fd0a407255812471c42c1bb673d4802f98628f", + "5d0d822a01afc0dbc2e43decc7f86cc64d736fb9", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-https.downgrade.https.html": [ - "67a22edca431575199027481552aa843e31131a9", + "968b3f22edabdc1cdfe2b49d49eaf1552e257fb8", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "055606e7862da57b1ca3f8b814d7eafdcbecf303", + "d5a6774b4c55519e93d3c7ab416eadd2e9ad294e", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "34f1d7985be9db4722c358be66f8ba8284bff061", + "a1772947a823e84fc8cf2589f0e23316d0bb6b35", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-https.downgrade.https.html": [ - "23707ba634e554244c7e22f3633551df0eb6b970", + "d4b582e442e2914f99e19792fa74dbbe4f53d9a8", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "0b5cbe6fc7619936802f701870f2257c9dc8809b", + "e75284c16ab990d787af98188778df90bd73676c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "7fa1f6e274cf2198b664a8061878341b8a1d2d01", + "2b6b0209938e15619b740e34ef265108933f25f5", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "40658efef370031b5c5236f586daedb79064709b", + "fa7ee4d91c4f501b894e08e6b0068bc549a3c707", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "5a66689189a34bea10a2ec50afe1fe4ece621cc6", + "367dd0492ac6d89398fea74b319f2f172610b4fc", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "4b15e5512bb1845fa574f9c674e125f83083a80a", + "104a41a435777d2b426e1b62d7378d090341613d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html": [ - "ca8c71f7a3be6dd85e3736d7bcf7f57a9ea9f373", + "110c4c25b191387ca180f0b60c7be3617969fce1", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "6ee26e108d140004cdad2f5f534d4d64224436cd", + "9e8487938f00fb7edaae772ae6dff418b5230415", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "08ae852dad8ed394c6514fb48e6cd152e4d827a7", + "70762bc3cec1ccc063c4f8df5caadbaa385ba7ce", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-https.downgrade.https.html": [ - "669fadbc9fb4c3e08bf24086be7632a2b3af3dc7", + "72244a8af0de33686d2f58a1670e7eebd82075ee", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "751ff7e4eda62427b66755534e4eb276df471e46", + "11a5abb8e4edc46675e7caee9b26315bcb366006", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "3867169380d73dbbc80c37195f37b2be48bbbb6b", + "82326136f0d18aaacbd8a82fe9c8031a60db4d10", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-https.downgrade.https.html": [ - "6986a787434a36017ab198c252b243115386d74c", + "b8e2694cb775e3241d20ea703e6fa751d5376d80", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "a29f6209b077237523fb8a9f077a6cc2963d160d", + "6f6c1f90cc5a32300a79e80603cc019c60a1ad3d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "93383d5b6233f7349b3ee4d0b054ca847770d211", + "30aa9210970317e0b7d7de1e86aae27b47911796", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "346bb6b9fa3bdf77f8451d204d86a7a9a3a1e8bf", + "7cf00d3c786da155ae0f37f72de8cf0e1b698cdf", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "869fc00080d3e43927ec323f8712fa86d865715d", + "7e1946dcda5a0764118d44af011ae27f9e3cd92e", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "542c18337a52afcc133779e0c0daf30a856478c8", + "663dc0fb4ae7f333d1be092d0cfae9722233b371", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html": [ - "eba63c36922811c69e7ab2265d2fdc58dd11090c", + "0b4765bc2ac18efd7e0535f04a8f9ae6db67769c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "1dc5f081122a261fedbbfb210d0d0841c23dd05d", + "41cb8a69766655328301e2606a97337fea5bb3d5", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "01a84d602d4f34b645e9c708b9645968cbf3cccd", + "083429832810358104b6c8071dc1a4660cd19f27", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-https.downgrade.https.html": [ - "8589ff6bc2df14613fb62a67ebdf8b915be70713", + "b1bb99468ec79d10e8f62dec91463c433cfcf922", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "30314fc606d89f5b58b91157699dc65893c39037", + "e3502179c9c5d23394175cb56f538e972cd8fbee", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "daa420b357fff6bdb06ea4ab918bb6f333fc4b39", + "df54f05e0b0a9f1eee292249179a41f1e612c39c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-https.downgrade.https.html": [ - "383f42ed9127bdaea0afcc01cb352b72aa690dd6", + "5e8dc0759fbbbcbc10012f9f040a5cad8e3dcb91", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.downgrade.https.html": [ - "beae338c5621a87e4c9063158803a7f494083e74", + "98f66961c1807950c53b5e6f8f5e457dd1950c05", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html": [ - "685ebe401009c30a372c2c1f70b1df66c1a6cfa1", + "a9955b4f9cb72d7e0ec0a11493c157252183604c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-https.downgrade.https.html": [ - "4bbfd75744a1e7d70ec6d3d30ed82a050caf3c87", + "506b71efff01fbf7f9a09f6d804bbf955d10cfa0", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.downgrade.https.html": [ - "cb5cc3a476f7abf0bed9c2b0de5238b680642ad2", + "1ef6a56d3eb5c5557544bb129b7eec7211e33b68", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.no-redirect.https.html": [ - "a5325b32569020ba37f4f549de45733f3d06ee46", + "b57e26b855f2803cf28c59b07793ea8841f8463d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/unset/xhr/same-https.downgrade.https.html": [ - "cfe86148a2533d2056d85a46e8b7937f4608f787", + "8758bd12df940e860404ff51f19fb1a9ddefbd75", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html": [ - "f9750e1a3721c5b58548eae9fa495c7087f0dd7e", + "2138d47f98130fa7cd701fb5f087cf5e0392a104", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html": [ - "3b08b721e8707e5ee512a33e48aa29ff74e26d33", + "0549df7f3bb4f6ce72bc6acc875dc37bf894bdad", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-https.downgrade.https.html": [ - "8d0a80ab817abbdcf886cea79ad0088e9fedc2f0", + "2756e62b48229e5bf179a75a0c05bf657a2ab3f9", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html": [ - "d5ebb857f6aa45327a73ced6cd140592c946a77f", + "9ecd3eda7d1b36cd3774b1dcc98d5ca9cb7243fd", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html": [ - "5d6d8f5c4e5efef0b3b17947fe63921d845b5999", + "6339cb769b9c119aae2e2593699810b52efe4cc6", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-https.downgrade.https.html": [ - "63b5c8c505ac81f409a25ed56cbc68d4a28b1737", + "c36c0d188eb9915416656754a0ae18bd96d61e8a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html": [ - "09be76409e4b15e6d223f83d201f9737c4637d21", + "1dd755c5514a4ad90818922712551fde8bda0b3b", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html": [ - "e86f7531ad540d2ae68aa19c7871cd09a413b9c1", + "ab3f5a2e5694b5f77453ce7862d45cd47909635c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-https.downgrade.https.html": [ - "4f2e231419fb1853e860c526a7a6d55a9344c9ac", + "a9c65e84fbbdce49490d249e4e231f7a9ed60a7d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html": [ - "86958e9db78e5e4c85b2c895890e28328a03b026", + "d4546625679ef360ae9dd191f93ef3bd274b32a6", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html": [ - "70507d39d8d8e13ac5e5f3cc787d151ae8ad466b", + "79ab70738c0b4002a7af7d58a9a3fa7a6f76fb10", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-https.downgrade.https.html": [ - "71764a1f149fff7489b90b700644cdfd8125b605", + "b0cfe5bbff341ecbe1a32cbd305a71f4e4f513cc", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html": [ - "c0c141a692b0d66fe01b1ce926d1d2b4158a5699", + "aa674cadd345ec9962df94670024620966efaafe", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html": [ - "baef52df2fb8596e1cd552117c27208202376a94", + "16e6ac52c3691cf56c2b419ddae10b132d1e0aff", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-https.downgrade.https.html": [ - "25f2948fe78fa85e89f37c4cf98e9c5f36c6cc10", + "9eedc83dbb1c38dc6d933504c96e827bf23c4c72", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html": [ - "ab649803004b8e7cb1669643cc0e641fa2183967", + "66f477d68a7662f472e2052bd0395d53d67f9b3d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html": [ - "066d34cfe73dde9c932ba42a65d8a973ba195216", + "bb832d5d4263a7781e19af3667b8ae87e1ba0cb0", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-https.downgrade.https.html": [ - "073a0ae880d9447b9d86789f574cc5fe661b0687", + "87a03bb78450e5a3b127d628027db50af6e9af4d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https-expected.txt": [ @@ -524814,7 +524814,7 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html": [ - "00cd0d4698c51ff2a59f9e4449b5fab7e69a7155", + "190e37fe257244832eab28324ceb34b972f59ceb", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -524822,19 +524822,19 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html": [ - "5d0e23e6c1b1086aeadeb49a6ba5b59c5abb4b72", + "78b431bf6ed98f28fb14c45528e76875eefa0fcf", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html": [ - "08bf866c4dff7d457bbb8b4d2c8e1ed89fcee662", + "22fffb7e65d66e310fcd3d708ffd6f0cc7726f38", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "8858a097638df262be702cf7c5cd2bdbd110fe99", + "65f84d20c67b9121c68d6f3fcf39aee8d9ec5473", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html": [ - "dfebfd1e5f5037e333c0d91f017768df99df2091", + "dd559d15752d9d47159a96115dc275add0b67f4d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https-expected.txt": [ @@ -524842,7 +524842,7 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html": [ - "344837e8b2fe3d85aba9b81b977493b47ff786ef", + "a460071f0803d861796be01e8005b7592d2e1c3a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -524850,35 +524850,35 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html": [ - "cf36e0183b8a6401644da3bed4acbca61074e038", + "26fe5b4e68a00ecd2edb18a179c320e8c828000f", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-https.downgrade.https.html": [ - "7b863f63d8bde038858169e2d1285bbe30a09543", + "fef4c2b34ceccf220e8de95ad442736c640fd531", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html": [ - "52c9277442ad13019fc9520928417637e0fabff6", + "03d1b998705cd555cf6cb7a41b8cf7c013da55be", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html": [ - "81a16de6a243a8692aef716a6aaa6b57de82915e", + "ff5f284a7426d1b97149d8dc46f7121a3bd8b36a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-https.downgrade.https.html": [ - "94ffe6cc32b2b3176d763a068dada8ba73fa2926", + "cf8c9f48598d253eb97fd5d0fbe24a67beeb6a26", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html": [ - "c83cb3af929dbbb41dd86b410cd0fb996a15c911", + "04a459cbc21bd13effb32e15bbbc41214f7328c7", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html": [ - "26eb2051ee3bfeca2321ea4803d7148ff0ed2f02", + "152ae93b54e80a9979cf305343502fe334ae349d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-https.downgrade.https.html": [ - "18316c62cfe70a609689abba0a3eaa6804c4e220", + "23ebc58fa512d18abf8bd78662cdb8a664bff34a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.downgrade.https-expected.txt": [ @@ -524886,7 +524886,7 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html": [ - "e86ab02cd87878e0ade286fce3535de7d049e451", + "24fbc562fbd0dc1784d2a25763b30d1ec8081ea2", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https-expected.txt": [ @@ -524894,339 +524894,339 @@ "support" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html": [ - "d671b9d4c33e072a75822f856657f9859168468e", + "d65b8ec7e79a90e0468024b5265c178b79e7f699", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-https.downgrade.https.html": [ - "7441428075fa4549b62f9f55958303ba94f7a65c", + "17c17fa82b0f71e7aa0c1d82a3932bd70fdc496a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html": [ - "b81d616b9c7583eced1598e3e67be7dc9259e81e", + "537db7e735a7d015aa930f280469d6e97a73131d", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html": [ - "e24be56b7beb34e282ee9a6bdb476c3bc69806b4", + "63242d0a0bef04e03c8355ee2fdabfcba26b426c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html": [ - "5783bb8986dbb4394e9e2e2e332bda799bcf82b7", + "eafb6c1e2dd66496f1e1947ac5b1f3fa3b057b01", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html": [ - "fad7c7c68a1ebe08d7141638467c04eef3d3288b", + "033297a088e863e99fafb5de79ae86823e6c9a0a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html": [ - "fb7fa4d863955e086fd2ef304391e5acea171258", + "468ec100c7b03c0790c557a8930a7e6d5da47688", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html": [ - "6c340d99ddde630f1f7ce324497e13771ff23a6a", + "007d9ad0e09477fad19b5e19d1230158b7f18b95", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html": [ - "e01c62a2781a2ba295d3a44e40a3b5ac04e1ad08", + "2aa5e96edb81ea27931e76990c083b31c74406b0", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html": [ - "35507477de1d45b8bd1da278d851bda5f3e984ac", + "2841b991bbdd466e379887a40c9a6934a3357f0f", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-https.downgrade.https.html": [ - "ca0d0e6a08f991c50174a479826a4d57ee4a0658", + "b8fcfc4e14e587de3bace2d0e566c5edeba55f2e", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html": [ - "49557f2c613643302f769f55025f1f1a9e171c7f", + "3aea026d8119667595b8d7774f54d0658e7adb93", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html": [ - "3fd3641af409c717772f4b5c015cd000af2b7566", + "a6a1a5d3c9bfeec09d42ceb77e0ce3afc5a07e58", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-https.downgrade.https.html": [ - "02b1038cedba80d18b530729ba81fde5a7d21ea1", + "f84d2eb2000a88053a6b957e660ba1bb390d4e8b", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html": [ - "8c17faf68aff257bb9bb78079a8fa897f0f947d1", + "de18eee7b13643247a2d2b7c4db05d22e0b8f772", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html": [ - "415ca3d7476d9a9262a38bc4c1f97eceaebefe65", + "a6d61ca4c8039a7243090ae9d1be1bca8ab0cbc0", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html": [ - "d36faebf09faa680021e2e51a9991e02e73bedea", + "078155b576f4451b2a335b6bc8c28eb5c7b878b1", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html": [ - "329b41e2c207df5219046d345f15589020f07176", + "3f3cc5734753c3791d86f71ff0f82cce0ce794ec", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html": [ - "09f9a35167ee8f619ee6dc4bb647c1849dca6946", + "5ffee9e3fd017972e67f282903d0623d6fb0095a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html": [ - "5face3b0f1ad5e222816286246b986f24dd5c6b9", + "aac6bdce7766481f779f1b1e07893c6ad7363635", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html": [ - "5ca6b71935ac677ec4eccb34100ad4d899dd0b38", + "6e3b86a24a7a6e9e21a290c79199a224c85e67a2", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html": [ - "9addf82ae1278333797ee2a54e27d653b9547bca", + "ccb6f571221b631b17d42281ef6c3924961f0d0a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-https.downgrade.https.html": [ - "00228ef7fdc7a52f1cf1e5329f9b13d7e0a9c848", + "7a4a31363b870f298e9c09e9ceca3ae604a9e606", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html": [ - "000ce5e3cd10a5999a4b61b3bb492cdcc30cd3d1", + "e1901a495bbf88126d25e06d69e22396d5f8ab60", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html": [ - "5216ccbaa2dba41f529473a8acaa69040cc022ea", + "3ca933fd7e500f64791d3f5aa5556ea10deb6d1f", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-https.downgrade.https.html": [ - "464b8d5725bba5fe452f7af08496baf1d20c6eec", + "bcf8c88644b4537bf3ece06150a423d5d77d3bc1", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html": [ - "369e51916051662b787d97545bbf8126ecb62627", + "413ce2f06e71612632a1b37f148473bd666184ff", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html": [ - "cb97e532d2991fb5be706415ef52a9aa3a4c3e92", + "c3842d2a94cfb77072648f1cf8c9000b32720d50", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html": [ - "d7706cc6ab8d10b26eb5e6b634765782a7caf359", + "864b2faa8d0d15b5483bd9cebfceb1960f9885e2", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html": [ - "7b49006155165869de68a07fb544fe5ae8a0c4ce", + "755b4c94095da6033a8e9c1c10c4d043ea9227a5", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html": [ - "18995bd301438da062f341dfdb36de8f4fb40335", + "91499ff975879202c1a1cb2c3af11a00b7d2941b", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html": [ - "6b8c53a94d19c61fb36ddff09008bead7137a023", + "34007608fd9a5bc229d54da61026f9c4ab401004", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html": [ - "8acdd3caac295f42dc273de43fa0a60fb0bd0d4c", + "9bb3f8ff3d2d9b2d1a355f4cadb2ba358bbfba76", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html": [ - "26167e177bd166f3577fd03d5d375c4f2b020de6", + "d5a4f4fbaee8b4d4bbce0436bd7c70a94ab1b992", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-https.downgrade.https.html": [ - "13ef09cb3887c91f9630d00b056a352f7e6dabd9", + "d3edb0a6dfaf57577c75436ea4427a86ab380bd4", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html": [ - "cc56f51c2de383af65100e234a10fbc7c91111be", + "cb642c6fc325aabf02cf0e5ac602ec229cec2a04", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html": [ - "7b622c2f2cb7edb10a35b2bd6e86b5f41c7e3ce8", + "585677ac948ea2ef5e0ed78a3098f7813f7464f6", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-https.downgrade.https.html": [ - "2ce3df1cc9c19c6e2bcc493dc4223af7bf0f337a", + "e828b3e1584a53ac51aa6c701ccd906e08f8ed6c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html": [ - "7516c16b4e37af0562e9491a0acd272f446fae2e", + "f9feb9989c4ece495cc7d71a5e4f04e45610f415", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html": [ - "404386e58bb94ddfc6fa5a6303cb997dd0a14e82", + "d6d7f1704fd5894c3d9b29ce5d7f7f1a6afa4a15", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html": [ - "53b77d6908c1c3bf28cdfcf90c86eeacb94f2bbd", + "423363e0daf1fc20f47b3b3450ba7d4b24845a2c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html": [ - "69d4741f47a478910d4ed6ab020142da621b73b2", + "ea033c48ff9c593a32a112ed06cf239dec13ab2b", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html": [ - "9a1585db551078bc1b0a7d16b95251f1bdad1c84", + "a00354d64e8d466b788f194363f70bc30a48cfd2", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html": [ - "da6197fc1398c6a1b8a958b94e865b2d571ba56b", + "99b2a02802a2a88099b709ebb9d217319b04fd70", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html": [ - "ab1c859bae291fd1aea9a2ddf98ba8320b033a3a", + "c2f8529daa14d23ffb985968b631001bc3564639", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html": [ - "937aaaa8a67d7afb7a2fc37de4bbeddb5e00beef", + "138d0e8bee82e83c42f7b1c57351d4b807867f69", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-https.downgrade.https.html": [ - "99e10720636f89b7cf2d273f3d40e3922006707b", + "418245506ec8e1176eedece408cef19999a8ec0c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html": [ - "1d152f66d0797d93653320a9d69aa13fb40e9334", + "107797df582c673665f28179931c023fce8b2b91", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html": [ - "d6babfe45e293a53a61e0092f565a2d5562a640e", + "79523a19211b56aa09e5b0299bb0c5fe31d6b538", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-https.downgrade.https.html": [ - "a0c28b0701fbaa647f2efc9950776a233ab685de", + "9768f6d84dcb928d104c3f60d1203fd21c69db35", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html": [ - "9c7776e6347461fa4114ff60f686a22bab330470", + "3567cc99e99bbffbb8aadfd7d2d696162f33f4f2", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html": [ - "8300d8fa67b6ba8fa9d1395468e7f260d0dce3b5", + "a482929b9df1342af8451d5a0beb07822ca47b92", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-https.downgrade.https.html": [ - "96e7c41dba92b76c322705f7c40240277cf2ee9f", + "fd7f6987d73e260aa05cebee29ff8dbf4a939e4a", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html": [ - "146599f5a896008aca3f9d2f72e9b3b6e4305eb0", + "1d5958d6d799449c972e941675e7e2df453fdbef", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html": [ - "eb6c5689b94af01903fe62e864a2233a0b042fa6", + "a33232890b5d2bc7f6223cd7c41d5e5c0a45769c", "testharness" ], "upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-https.downgrade.https.html": [ - "2fe37dbe34223bb2dccf062b8bf5b09985b3f7ac", + "d7d0438c6a5772efd450452e525068f7600a0419", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.downgrade.https.html": [ - "e24fc0838021013b744a848145cee3dfdbffb317", + "dd685a04513c18d48b6d59ebcaa1062bde67b2a3", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html": [ - "b065f136482506aeb0979a3b27e221762af21d38", + "9439de7dbfcc88133a5500ff3d51111bcb7a397c", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-https.downgrade.https.html": [ - "6ef001bf515350987310a79f885520c1192a5226", + "06309cfb9e1e79d97b039d7b43ae9f18ab669db3", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.downgrade.https.html": [ - "c236aa3db57b95f0e3fd0b04880d2c65ec035cd1", + "d6658f06b3017de9f04f52d79397ad14098c1a4c", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.no-redirect.https.html": [ - "ba07fe78d97b6aa14568b149403432524dd276b1", + "067ea1da492395bd9e2c49b6f5802bfec4d03d79", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-https.downgrade.https.html": [ - "04fb348c48dd8b49fdb6d8dc4fa8b09adfbf7a71", + "57b1b0f7cda772d7f2107a3dce631dee16b7a8fd", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "85b2a842e25558d050be648abb1eb22ced7315b3", + "5040b9608b5f9d2fcbd244b3a17dc0bd993ed41a", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html": [ - "47a6635e111e718085b60928be7f7ce92815c186", + "c1ef17487ca122b870a9a9aa33d0d1a9722b3be0", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.downgrade.https.html": [ - "53c56a1f85979ad2d42017f26f8594b604bd08cf", + "dc7a3a59426541ea8e4b15af39de64f63dd957a0", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html": [ - "b4b9b6f8031ee9b885d60145b4fd84f1b854d1e0", + "b1c00ebe520b379e13910be29afdb680f1a03655", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-https.downgrade.https.html": [ - "4a92b5e470123fc688ff06f0c6573bd9c17d0c69", + "0ede5561131db6ef66af130a0eb68e882d82b18a", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.downgrade.https.html": [ - "0bb47da9c3f980c9ae3d704bdfe984097736a23d", + "103199ae6a6c2b68d04cd7d78eddab77f6b77bb9", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.no-redirect.https.html": [ - "4a7ea8a72f0527d51b4f8b2c3aa0aac0565d0883", + "875fac335fcb0f472a68876a5450e9840e963658", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-https.downgrade.https.html": [ - "67d232b65ee0fbcae89fd6ee53adf4228240ca14", + "917e6f0b6fbafa4399f696dd50582a73e4d38406", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html": [ - "30a09597404068b6d101ba7d3e6976f6928ac98c", + "93ff7111e8f76580b66448aa2075466e14ef9b8a", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html": [ - "c726a18a6d6b9f91b28aea33bb2323d40a36dcf7", + "68bba09e56e66dfdf03c692380e0f8be79bb15d1", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-https.downgrade.https.html": [ - "8d273ac65d19bc80f3b2bb76f722a8bbd8b3dcb8", + "b06493d43d2cabc7e10534beb5fca723b0ac790b", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html": [ - "8c50860d2a9d8968c53adb80c4f19d0da5e9f35a", + "bb0cb7b84d5ce99c0d92d24adba9f83e822e46c3", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html": [ - "364e95b3c1c121d9f2e0fa0eb4749f74d7320f90", + "bfaca7ed201efa388d9eba21c22d27c556fbe2ec", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-https.downgrade.https.html": [ - "f07d94db67bcf30cf87299bc0801badab1757ee5", + "d5102270e7c48a36458f3fb045710da2c2a39b4d", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html": [ - "fa6232d958ce8efd062c0eb63f8e28663f0d4359", + "ff912b7c91ea79461f6b41793d9a2d1382cb15c2", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html": [ - "2da6643940ea8d623bff97a4c38e35ed0bb88254", + "5ee233704d3ce2c0c905d69967801fda664cce22", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html": [ - "46518de4a6b23b533a62a8642fa61e48cf5b435c", + "8981c9056bca3c9767fcd3af9aff8c39e728a45e", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html": [ - "3e8fe269f20348927566fff7dcd7e53c48c938f6", + "8fa26126674cf396a3594de25a831b34e5014e08", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-https.downgrade.https.html": [ - "4c2853f9e3a1108b92c516c52994efd661ab7f1d", + "f945ca101549c5946a00030844dfea8da39cb484", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html": [ - "e3dbf9fb3ac7e636db81ad1e7db45d040f41a170", + "0ef614a96dd35da84cc10977afde53578bff868d", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html": [ - "002ed403c7faec202f2ab4382b1099d27eae1f9e", + "9a57842a9ef8cdb04a81f1b7865ecfffa20872f2", "testharness" ], "upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-https.downgrade.https.html": [ - "43c8dcf97b3ea5af9cee9403392b998c8d079a0a", + "e993c3abbcb7c57554fafe9aedc6be0c4d514fa4", "testharness" ], "upgrade-insecure-requests/generic/spec_json.js": [ @@ -527062,19 +527062,19 @@ "testharness" ], "web-nfc/NDEFWriter-document-hidden-manual.https-expected.txt": [ - "799e5509bc6b02cc0a1c37091a6c1d4b094023ef", + "d700bd80786fdd166235c2d78311b7f641f09d26", "support" ], "web-nfc/NDEFWriter-document-hidden-manual.https.html": [ - "2f291e51412f717001339c02db2fbf1bbd7a1ac6", + "1a2839857bb69fc06b6ea779e138b17cf54ca580", "manual" ], - "web-nfc/NDEFWriter_push.https-expected.txt": [ - "7cdced196c475679e844482e8ba7735c73657fdf", + "web-nfc/NDEFWriter_write.https-expected.txt": [ + "d83ca26dde0a87f9b964c021e85d759ede1f7740", "support" ], - "web-nfc/NDEFWriter_push.https.html": [ - "33a629781ed7a7c94671b2cfacda50975cde9d61", + "web-nfc/NDEFWriter_write.https.html": [ + "d170122980bc2300c28b6978f3d6f637d098b87b", "testharness" ], "web-nfc/OWNERS": [ @@ -527082,11 +527082,11 @@ "support" ], "web-nfc/README.md": [ - "c4efc02ff2a692cf44937466f7aea75635590ded", + "15c6534a7be35c478993836d54d451a791619cea", "support" ], "web-nfc/idlharness.https.window-expected.txt": [ - "28c57a9ddcbd8d2e153c229484d6ff3f085db13c", + "1b93c975d2533beb719c2e87a069ded6c681d55b", "support" ], "web-nfc/idlharness.https.window.js": [ @@ -527098,7 +527098,7 @@ "testharness" ], "web-nfc/resources/nfc-helpers.js": [ - "45bfa6deced49dd3eb4c38cc5856f123ed1f91b2", + "c60ef620b572cad34f1c9dd30a037857c9ff9350", "support" ], "web-nfc/resources/support-iframe.html": [ @@ -530414,11 +530414,11 @@ "testharness" ], "webrtc/RTCPeerConnection-createOffer-expected.txt": [ - "3ee7bf796caa248d0c5cddff33f9bf9dc49c13de", + "13ab0de97adf334d9dc7a20c237f61a2561a2a72", "support" ], "webrtc/RTCPeerConnection-createOffer.html": [ - "c56d45280ef6317bc0ef77b8ad71e9273c809863", + "bfd27df3e68e65b98000c08160ac58d575ee71b6", "testharness" ], "webrtc/RTCPeerConnection-generateCertificate-expected.txt": [
diff --git a/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch-test.js b/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch-test.js index ed635513..0ee5059c 100644 --- a/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch-test.js +++ b/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch-test.js
@@ -22,7 +22,7 @@ }, test.name + " precondition: Test that the browser does not have client " + "hints preferences cached"); - // Then, attempt to set Accept-CH-Lifetime for 1 second + // Then, attempt to set Accept-CH promise_test(t => { return new Promise(resolve => { if (test.type == "navigation") {
diff --git a/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch.html.headers b/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch.html.headers index 370f986..3f073bf 100644 --- a/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch.html.headers +++ b/third_party/blink/web_tests/external/wpt/client-hints/accept-ch-stickiness/resources/accept-ch.html.headers
@@ -1,3 +1,2 @@ Accept-CH: device-memory, DPR -Accept-CH-Lifetime: 1 Access-Control-Allow-Origin: *
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/support/checkReport.sub.js b/third_party/blink/web_tests/external/wpt/content-security-policy/support/checkReport.sub.js index 1ecfa5f..3137b92 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/support/checkReport.sub.js +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/support/checkReport.sub.js
@@ -47,7 +47,7 @@ // is to wait for some reasonable amount of time and if no report has been // received to conclude that no report has been generated. These timeouts must // not exceed the test timeouts set by vendors otherwise the test would fail. - var timeout = document.querySelector("meta[name=timeout][content=long]") ? 25 : 5; + var timeout = document.querySelector("meta[name=timeout][content=long]") ? 20 : 3; var reportLocation = location.protocol + "//" + location.host + "/content-security-policy/support/report.py?op=retrieve_report&timeout=" + timeout + "&reportID=" + reportID; if (testName == "") testName = "Violation report status OK.";
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-computed-size-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-computed-size-expected.txt new file mode 100644 index 0000000..6ddc9e6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-computed-size-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +PASS Decimal ::marker +PASS Decimal ::marker with custom value +PASS String ::marker +PASS ::marker with no box due to 'list-style' +PASS ::marker with custom string contents +PASS ::marker with custom image contents +PASS ::marker with custom string and image contents +FAIL ::marker with no box due to 'content' assert_equals: width expected "auto" but got "5px" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-computed-size.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-computed-size.html new file mode 100644 index 0000000..7685136 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-computed-size.html
@@ -0,0 +1,83 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: Computed size of ::marker</title> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#marker-pseudo"> +<link rel="help" href="https://drafts.csswg.org/css-lists/#content-property"> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<meta name="assert" content="This test checks that getComputedStyle exposes the resolved sizes of a ::marker." /> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> +:root { + --image: url('/images/green-100x50.png'); +} +:root::after { + /* Preload image */ + content: var(--image); +} +#target { + font: 10px/1 Ahem; + --content: normal; +} +#target::marker { + content: var(--content); +} +</style> +<div id="log"></div> +<ul> + <li id="target"></li> +</ul> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +const target = document.getElementById("target"); +function checkMarkerSize(expectedWidth, expectedHeight) { + const {width, height} = getComputedStyle(target, "::marker"); + assert_equals(width, expectedWidth, "width"); + assert_equals(height, expectedHeight, "height"); +} +setup({explicit_done: true}); +addEventListener("load", () => { + test(() => { + // Marker string: "1. " + target.style.listStyleType = "decimal"; + checkMarkerSize("30px", "10px"); + }, "Decimal ::marker"); + test(() => { + // Marker string: "10. " + target.setAttribute("value", "10"); + checkMarkerSize("40px", "10px"); + }, "Decimal ::marker with custom value"); + test(() => { + // Marker string: "st" + target.style.listStyleType = "'st'"; + checkMarkerSize("20px", "10px"); + }, "String ::marker"); + test(() => { + // No marker box + target.style.listStyleType = "none"; + checkMarkerSize("auto", "auto"); + }, "::marker with no box due to 'list-style'"); + test(() => { + // Marker contents: "foo", "bar" + target.style.setProperty("--content", "'foo' 'bar'"); + checkMarkerSize("60px", "10px"); + }, "::marker with custom string contents"); + test(() => { + // Marker contents: 100x50 image (+2px due to baseline alignment) + target.style.setProperty("--content", "var(--image)"); + checkMarkerSize("100px", "52px"); + }, "::marker with custom image contents"); + test(() => { + // Marker contents: "foo", 100x50 image (+2px due to baseline alignment) + target.style.setProperty("--content", "'foo' var(--image)"); + checkMarkerSize("130px", "52px"); + }, "::marker with custom string and image contents"); + test(() => { + // No marker box + target.style.listStyleType = ""; + target.style.setProperty("--content", "none"); + checkMarkerSize("auto", "auto"); + }, "::marker with no box due to 'content'"); + done(); +}, {once: true}); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/multiple-parts-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/multiple-parts-expected.txt deleted file mode 100644 index c3a5d4d..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/multiple-parts-expected.txt +++ /dev/null
@@ -1,6 +0,0 @@ -This is a testharness.js-based test. -FAIL Double-part in selected host is styled assert_equals: expected "rgb(0, 128, 0)" but got "rgb(255, 0, 0)" -PASS Single-part-1 in selected host is not styled -PASS Single-part-2 in selected host is not styled -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/serialization.html b/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/serialization.html new file mode 100644 index 0000000..50ad3df5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-shadow-parts/serialization.html
@@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> + <head> + <title>CSS Shadow Parts - Serialization</title> + <link href="https://drafts.csswg.org/css-shadow-parts/" rel="help"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + </head> + <body> + <style id="styleElement"> + ::part(\(foo) {} + ::part( bar\ ) {} + ::part( -foo bar ) {} + </style> + <script> + "use strict"; + const rules = styleElement.sheet.cssRules; + test(function() { + assert_equals(rules[0].selectorText, "::part(\\(foo)"); + }, "Escape start parenthesis in ::part name."); + test(function() { + assert_equals(rules[1].selectorText, "::part(bar\\ )"); + }, "Escape start space in ::part name."); + test(function() { + assert_equals(rules[2].selectorText, "::part(-foo bar)"); + }, "Collapse spaces in ::part names list."); + </script> + </body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-end-event-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-end-event-expected.txt deleted file mode 100644 index 69527eb..0000000 --- a/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-end-event-expected.txt +++ /dev/null
@@ -1,16 +0,0 @@ -This is a testharness.js-based test. -FAIL onanimationend and onwebkitanimationend are not aliases assert_equals: onwebkitanimationend should initially be null expected (object) null but got (undefined) undefined -FAIL dispatchEvent of a webkitAnimationEnd event does trigger a prefixed event handler or listener assert_equals: onwebkitanimationend must be supported and not previously set expected (object) null but got (undefined) undefined -PASS dispatchEvent of a webkitAnimationEnd event does not trigger an unprefixed event handler or listener -FAIL dispatchEvent of an animationend event does not trigger a prefixed event handler or listener assert_equals: onwebkitanimationend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationend event handler should trigger for an animation assert_equals: onwebkitanimationend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationend event handler should not trigger if an unprefixed event handler also exists assert_equals: onwebkitanimationend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationend event handler should not trigger if an unprefixed listener also exists assert_equals: onwebkitanimationend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL event types for prefixed and unprefixed animationend event handlers should be named appropriately assert_equals: onwebkitanimationend must be supported and not previously set expected (object) null but got (undefined) undefined -PASS webkitAnimationEnd event listener should trigger for an animation -PASS webkitAnimationEnd event listener should not trigger if an unprefixed listener also exists -PASS webkitAnimationEnd event listener should not trigger if an unprefixed event handler also exists -PASS event types for prefixed and unprefixed animationend event listeners should be named appropriately -PASS webkitAnimationEnd event listener is case sensitive -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-iteration-event-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-iteration-event-expected.txt deleted file mode 100644 index 80fe919..0000000 --- a/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-iteration-event-expected.txt +++ /dev/null
@@ -1,16 +0,0 @@ -This is a testharness.js-based test. -FAIL onanimationiteration and onwebkitanimationiteration are not aliases assert_equals: onwebkitanimationiteration should initially be null expected (object) null but got (undefined) undefined -FAIL dispatchEvent of a webkitAnimationIteration event does trigger a prefixed event handler or listener assert_equals: onwebkitanimationiteration must be supported and not previously set expected (object) null but got (undefined) undefined -PASS dispatchEvent of a webkitAnimationIteration event does not trigger an unprefixed event handler or listener -FAIL dispatchEvent of an animationiteration event does not trigger a prefixed event handler or listener assert_equals: onwebkitanimationiteration must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationiteration event handler should trigger for an animation assert_equals: onwebkitanimationiteration must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationiteration event handler should not trigger if an unprefixed event handler also exists assert_equals: onwebkitanimationiteration must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationiteration event handler should not trigger if an unprefixed listener also exists assert_equals: onwebkitanimationiteration must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL event types for prefixed and unprefixed animationiteration event handlers should be named appropriately assert_equals: onwebkitanimationiteration must be supported and not previously set expected (object) null but got (undefined) undefined -PASS webkitAnimationIteration event listener should trigger for an animation -PASS webkitAnimationIteration event listener should not trigger if an unprefixed listener also exists -PASS webkitAnimationIteration event listener should not trigger if an unprefixed event handler also exists -PASS event types for prefixed and unprefixed animationiteration event listeners should be named appropriately -PASS webkitAnimationIteration event listener is case sensitive -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-start-event-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-start-event-expected.txt deleted file mode 100644 index c79feb7..0000000 --- a/third_party/blink/web_tests/external/wpt/dom/events/webkit-animation-start-event-expected.txt +++ /dev/null
@@ -1,16 +0,0 @@ -This is a testharness.js-based test. -FAIL onanimationstart and onwebkitanimationstart are not aliases assert_equals: onwebkitanimationstart should initially be null expected (object) null but got (undefined) undefined -FAIL dispatchEvent of a webkitAnimationStart event does trigger a prefixed event handler or listener assert_equals: onwebkitanimationstart must be supported and not previously set expected (object) null but got (undefined) undefined -PASS dispatchEvent of a webkitAnimationStart event does not trigger an unprefixed event handler or listener -FAIL dispatchEvent of an animationstart event does not trigger a prefixed event handler or listener assert_equals: onwebkitanimationstart must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationstart event handler should trigger for an animation assert_equals: onwebkitanimationstart must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationstart event handler should not trigger if an unprefixed event handler also exists assert_equals: onwebkitanimationstart must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkitanimationstart event handler should not trigger if an unprefixed listener also exists assert_equals: onwebkitanimationstart must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL event types for prefixed and unprefixed animationstart event handlers should be named appropriately assert_equals: onwebkitanimationstart must be supported and not previously set expected (object) null but got (undefined) undefined -PASS webkitAnimationStart event listener should trigger for an animation -PASS webkitAnimationStart event listener should not trigger if an unprefixed listener also exists -PASS webkitAnimationStart event listener should not trigger if an unprefixed event handler also exists -PASS event types for prefixed and unprefixed animationstart event listeners should be named appropriately -PASS webkitAnimationStart event listener is case sensitive -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/webkit-transition-end-event-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/webkit-transition-end-event-expected.txt deleted file mode 100644 index b98ba4a..0000000 --- a/third_party/blink/web_tests/external/wpt/dom/events/webkit-transition-end-event-expected.txt +++ /dev/null
@@ -1,16 +0,0 @@ -This is a testharness.js-based test. -FAIL ontransitionend and onwebkittransitionend are not aliases assert_equals: onwebkittransitionend should initially be null expected (object) null but got (undefined) undefined -FAIL dispatchEvent of a webkitTransitionEnd event does trigger a prefixed event handler or listener assert_equals: onwebkittransitionend must be supported and not previously set expected (object) null but got (undefined) undefined -PASS dispatchEvent of a webkitTransitionEnd event does not trigger an unprefixed event handler or listener -FAIL dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener assert_equals: onwebkittransitionend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkittransitionend event handler should trigger for an animation assert_equals: onwebkittransitionend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists assert_equals: onwebkittransitionend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL onwebkittransitionend event handler should not trigger if an unprefixed listener also exists assert_equals: onwebkittransitionend must be supported and not previously set expected (object) null but got (undefined) undefined -FAIL event types for prefixed and unprefixed transitionend event handlers should be named appropriately assert_equals: onwebkittransitionend must be supported and not previously set expected (object) null but got (undefined) undefined -PASS webkitTransitionEnd event listener should trigger for an animation -PASS webkitTransitionEnd event listener should not trigger if an unprefixed listener also exists -PASS webkitTransitionEnd event listener should not trigger if an unprefixed event handler also exists -PASS event types for prefixed and unprefixed transitionend event listeners should be named appropriately -PASS webkitTransitionEnd event listener is case sensitive -Harness: the test ran to completion. -
diff --git "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" index 28ebb6d4..df23d7b 100644 --- "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" +++ "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 1401 tests; 1363 PASS, 38 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1401 tests; 1367 PASS, 34 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface Document: original interface defined @@ -1371,10 +1371,10 @@ PASS SVGElement interface: attribute ontoggle PASS SVGElement interface: attribute onvolumechange PASS SVGElement interface: attribute onwaiting -FAIL SVGElement interface: attribute onwebkitanimationend assert_true: The prototype object must have a property "onwebkitanimationend" expected true got false -FAIL SVGElement interface: attribute onwebkitanimationiteration assert_true: The prototype object must have a property "onwebkitanimationiteration" expected true got false -FAIL SVGElement interface: attribute onwebkitanimationstart assert_true: The prototype object must have a property "onwebkitanimationstart" expected true got false -FAIL SVGElement interface: attribute onwebkittransitionend assert_true: The prototype object must have a property "onwebkittransitionend" expected true got false +PASS SVGElement interface: attribute onwebkitanimationend +PASS SVGElement interface: attribute onwebkitanimationiteration +PASS SVGElement interface: attribute onwebkitanimationstart +PASS SVGElement interface: attribute onwebkittransitionend PASS SVGElement interface: attribute oncopy PASS SVGElement interface: attribute oncut PASS SVGElement interface: attribute onpaste
diff --git "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" index cae5ab4..4d7c836 100644 --- "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" +++ "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 963 tests; 920 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 963 tests; 936 PASS, 27 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface Document: original interface defined @@ -577,10 +577,10 @@ PASS Document interface: attribute ontoggle PASS Document interface: attribute onvolumechange PASS Document interface: attribute onwaiting -FAIL Document interface: attribute onwebkitanimationend assert_true: The prototype object must have a property "onwebkitanimationend" expected true got false -FAIL Document interface: attribute onwebkitanimationiteration assert_true: The prototype object must have a property "onwebkitanimationiteration" expected true got false -FAIL Document interface: attribute onwebkitanimationstart assert_true: The prototype object must have a property "onwebkitanimationstart" expected true got false -FAIL Document interface: attribute onwebkittransitionend assert_true: The prototype object must have a property "onwebkittransitionend" expected true got false +PASS Document interface: attribute onwebkitanimationend +PASS Document interface: attribute onwebkitanimationiteration +PASS Document interface: attribute onwebkitanimationstart +PASS Document interface: attribute onwebkittransitionend PASS Document interface: attribute oncopy PASS Document interface: attribute oncut PASS Document interface: attribute onpaste @@ -703,10 +703,10 @@ PASS Document interface: iframe.contentDocument must inherit property "ontoggle" with the proper type PASS Document interface: iframe.contentDocument must inherit property "onvolumechange" with the proper type PASS Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type -FAIL Document interface: iframe.contentDocument must inherit property "onwebkitanimationend" with the proper type assert_inherits: property "onwebkitanimationend" not found in prototype chain -FAIL Document interface: iframe.contentDocument must inherit property "onwebkitanimationiteration" with the proper type assert_inherits: property "onwebkitanimationiteration" not found in prototype chain -FAIL Document interface: iframe.contentDocument must inherit property "onwebkitanimationstart" with the proper type assert_inherits: property "onwebkitanimationstart" not found in prototype chain -FAIL Document interface: iframe.contentDocument must inherit property "onwebkittransitionend" with the proper type assert_inherits: property "onwebkittransitionend" not found in prototype chain +PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationend" with the proper type +PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationiteration" with the proper type +PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationstart" with the proper type +PASS Document interface: iframe.contentDocument must inherit property "onwebkittransitionend" with the proper type PASS Document interface: iframe.contentDocument must inherit property "oncopy" with the proper type PASS Document interface: iframe.contentDocument must inherit property "oncut" with the proper type PASS Document interface: iframe.contentDocument must inherit property "onpaste" with the proper type @@ -829,10 +829,10 @@ PASS Document interface: new Document() must inherit property "ontoggle" with the proper type PASS Document interface: new Document() must inherit property "onvolumechange" with the proper type PASS Document interface: new Document() must inherit property "onwaiting" with the proper type -FAIL Document interface: new Document() must inherit property "onwebkitanimationend" with the proper type assert_inherits: property "onwebkitanimationend" not found in prototype chain -FAIL Document interface: new Document() must inherit property "onwebkitanimationiteration" with the proper type assert_inherits: property "onwebkitanimationiteration" not found in prototype chain -FAIL Document interface: new Document() must inherit property "onwebkitanimationstart" with the proper type assert_inherits: property "onwebkitanimationstart" not found in prototype chain -FAIL Document interface: new Document() must inherit property "onwebkittransitionend" with the proper type assert_inherits: property "onwebkittransitionend" not found in prototype chain +PASS Document interface: new Document() must inherit property "onwebkitanimationend" with the proper type +PASS Document interface: new Document() must inherit property "onwebkitanimationiteration" with the proper type +PASS Document interface: new Document() must inherit property "onwebkitanimationstart" with the proper type +PASS Document interface: new Document() must inherit property "onwebkittransitionend" with the proper type PASS Document interface: new Document() must inherit property "oncopy" with the proper type PASS Document interface: new Document() must inherit property "oncut" with the proper type PASS Document interface: new Document() must inherit property "onpaste" with the proper type @@ -955,10 +955,10 @@ PASS Document interface: documentWithHandlers must inherit property "ontoggle" with the proper type PASS Document interface: documentWithHandlers must inherit property "onvolumechange" with the proper type PASS Document interface: documentWithHandlers must inherit property "onwaiting" with the proper type -FAIL Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type assert_inherits: property "onwebkitanimationend" found on object expected in prototype chain -FAIL Document interface: documentWithHandlers must inherit property "onwebkitanimationiteration" with the proper type assert_inherits: property "onwebkitanimationiteration" found on object expected in prototype chain -FAIL Document interface: documentWithHandlers must inherit property "onwebkitanimationstart" with the proper type assert_inherits: property "onwebkitanimationstart" found on object expected in prototype chain -FAIL Document interface: documentWithHandlers must inherit property "onwebkittransitionend" with the proper type assert_inherits: property "onwebkittransitionend" found on object expected in prototype chain +PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type +PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationiteration" with the proper type +PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationstart" with the proper type +PASS Document interface: documentWithHandlers must inherit property "onwebkittransitionend" with the proper type PASS Document interface: documentWithHandlers must inherit property "oncopy" with the proper type PASS Document interface: documentWithHandlers must inherit property "oncut" with the proper type PASS Document interface: documentWithHandlers must inherit property "onpaste" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt index a590e36..41796d8 100644 --- a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 3729 tests; 3680 PASS, 49 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 3729 tests; 3688 PASS, 41 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Partial interface Document: original interface defined @@ -295,10 +295,10 @@ PASS HTMLElement interface: attribute ontoggle PASS HTMLElement interface: attribute onvolumechange PASS HTMLElement interface: attribute onwaiting -FAIL HTMLElement interface: attribute onwebkitanimationend assert_true: The prototype object must have a property "onwebkitanimationend" expected true got false -FAIL HTMLElement interface: attribute onwebkitanimationiteration assert_true: The prototype object must have a property "onwebkitanimationiteration" expected true got false -FAIL HTMLElement interface: attribute onwebkitanimationstart assert_true: The prototype object must have a property "onwebkitanimationstart" expected true got false -FAIL HTMLElement interface: attribute onwebkittransitionend assert_true: The prototype object must have a property "onwebkittransitionend" expected true got false +PASS HTMLElement interface: attribute onwebkitanimationend +PASS HTMLElement interface: attribute onwebkitanimationiteration +PASS HTMLElement interface: attribute onwebkitanimationstart +PASS HTMLElement interface: attribute onwebkittransitionend PASS HTMLElement interface: attribute oncopy PASS HTMLElement interface: attribute oncut PASS HTMLElement interface: attribute onpaste @@ -390,10 +390,10 @@ PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontoggle" with the proper type PASS HTMLElement interface: document.createElement("noscript") must inherit property "onvolumechange" with the proper type PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwaiting" with the proper type -FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationend" with the proper type assert_inherits: property "onwebkitanimationend" not found in prototype chain -FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationiteration" with the proper type assert_inherits: property "onwebkitanimationiteration" not found in prototype chain -FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationstart" with the proper type assert_inherits: property "onwebkitanimationstart" not found in prototype chain -FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onwebkittransitionend" with the proper type assert_inherits: property "onwebkittransitionend" not found in prototype chain +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationend" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationiteration" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationstart" with the proper type +PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkittransitionend" with the proper type PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncopy" with the proper type PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncut" with the proper type PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpaste" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt index ecf299b..869e468 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 330 tests; 302 PASS, 28 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 330 tests; 318 PASS, 12 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS onabort: must be on the appropriate locations for GlobalEventHandlers PASS onabort: the default value must be null PASS onabort: the content attribute must be compiled into a function as the corresponding property @@ -310,25 +310,25 @@ PASS onwaiting: the content attribute must be compiled into a function as the corresponding property PASS onwaiting: the content attribute must execute when an event is dispatched PASS onwaiting: dispatching an Event at a <meta> element must trigger element.onwaiting -FAIL onwebkitanimationend: must be on the appropriate locations for GlobalEventHandlers assert_true: HTMLElement has an own property named "onwebkitanimationend" expected true got false -FAIL onwebkitanimationend: the default value must be null assert_equals: The default value of the property is null for a HTMLSpanElement instance expected (object) null but got (undefined) undefined -FAIL onwebkitanimationend: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkitanimationend property must be a function expected "function" but got "undefined" -FAIL onwebkitanimationend: the content attribute must execute when an event is dispatched assert_true: Dispatching an event must run the code expected true got undefined +PASS onwebkitanimationend: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkitanimationend: the default value must be null +PASS onwebkitanimationend: the content attribute must be compiled into a function as the corresponding property +PASS onwebkitanimationend: the content attribute must execute when an event is dispatched PASS onwebkitanimationend: dispatching an Event at a <meta> element must trigger element.onwebkitanimationend -FAIL onwebkitanimationiteration: must be on the appropriate locations for GlobalEventHandlers assert_true: HTMLElement has an own property named "onwebkitanimationiteration" expected true got false -FAIL onwebkitanimationiteration: the default value must be null assert_equals: The default value of the property is null for a HTMLSpanElement instance expected (object) null but got (undefined) undefined -FAIL onwebkitanimationiteration: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkitanimationiteration property must be a function expected "function" but got "undefined" -FAIL onwebkitanimationiteration: the content attribute must execute when an event is dispatched assert_true: Dispatching an event must run the code expected true got undefined +PASS onwebkitanimationiteration: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkitanimationiteration: the default value must be null +PASS onwebkitanimationiteration: the content attribute must be compiled into a function as the corresponding property +PASS onwebkitanimationiteration: the content attribute must execute when an event is dispatched PASS onwebkitanimationiteration: dispatching an Event at a <meta> element must trigger element.onwebkitanimationiteration -FAIL onwebkitanimationstart: must be on the appropriate locations for GlobalEventHandlers assert_true: HTMLElement has an own property named "onwebkitanimationstart" expected true got false -FAIL onwebkitanimationstart: the default value must be null assert_equals: The default value of the property is null for a HTMLSpanElement instance expected (object) null but got (undefined) undefined -FAIL onwebkitanimationstart: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkitanimationstart property must be a function expected "function" but got "undefined" -FAIL onwebkitanimationstart: the content attribute must execute when an event is dispatched assert_true: Dispatching an event must run the code expected true got undefined +PASS onwebkitanimationstart: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkitanimationstart: the default value must be null +PASS onwebkitanimationstart: the content attribute must be compiled into a function as the corresponding property +PASS onwebkitanimationstart: the content attribute must execute when an event is dispatched PASS onwebkitanimationstart: dispatching an Event at a <meta> element must trigger element.onwebkitanimationstart -FAIL onwebkittransitionend: must be on the appropriate locations for GlobalEventHandlers assert_true: HTMLElement has an own property named "onwebkittransitionend" expected true got false -FAIL onwebkittransitionend: the default value must be null assert_equals: The default value of the property is null for a HTMLSpanElement instance expected (object) null but got (undefined) undefined -FAIL onwebkittransitionend: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkittransitionend property must be a function expected "function" but got "undefined" -FAIL onwebkittransitionend: the content attribute must execute when an event is dispatched assert_true: Dispatching an event must run the code expected true got undefined +PASS onwebkittransitionend: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkittransitionend: the default value must be null +PASS onwebkittransitionend: the content attribute must be compiled into a function as the corresponding property +PASS onwebkittransitionend: the content attribute must execute when an event is dispatched PASS onwebkittransitionend: dispatching an Event at a <meta> element must trigger element.onwebkittransitionend Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events.html b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events.html index caeac8e..ee8c34c 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events.html +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-all-global-events.html
@@ -10,6 +10,16 @@ <script> "use strict"; + +// The prefixed animation events are special; their event types are +// camel-case. +const prefixedAnimationAttributeToEventType = new Map([ + ["webkitanimationend", "webkitAnimationEnd"], + ["webkitanimationiteration", "webkitAnimationIteration"], + ["webkitanimationstart", "webkitAnimationStart"], + ["webkittransitionend", "webkitTransitionEnd"], +]); + setup({ explicit_done: true }); fetch("/interfaces/html.idl").then(res => res.text()).then(htmlIDL => { @@ -54,7 +64,11 @@ const el = document.createElement("div"); el.setAttribute(name, `window.${name}Happened2 = true;`); - el.dispatchEvent(new Event(withoutOn)); + let eventType = withoutOn; + if (prefixedAnimationAttributeToEventType.has(eventType)) { + eventType = prefixedAnimationAttributeToEventType.get(eventType); + } + el.dispatchEvent(new Event(eventType)); assert_true(window[name + "Happened2"], "Dispatching an event must run the code"); }, `${name}: the content attribute must execute when an event is dispatched`);
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt index 69c88f09..53af10e 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 324 tests; 297 PASS, 27 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 324 tests; 309 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS shadowed blur (document.body) PASS shadowed error (document.body) PASS shadowed focus (document.body) @@ -79,10 +79,10 @@ PASS not shadowed toggle (document.body) PASS not shadowed volumechange (document.body) PASS not shadowed waiting (document.body) -FAIL not shadowed webkitanimationend (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationiteration (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationstart (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkittransitionend (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined +PASS not shadowed webkitanimationend (document.body) +PASS not shadowed webkitanimationiteration (document.body) +PASS not shadowed webkitanimationstart (document.body) +PASS not shadowed webkittransitionend (document.body) FAIL not shadowed copy (document.body) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed cut (document.body) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed paste (document.body) assert_equals: window should reflect expected (object) null but got (undefined) undefined @@ -187,10 +187,10 @@ PASS not shadowed toggle (document.createElement("body")) PASS not shadowed volumechange (document.createElement("body")) PASS not shadowed waiting (document.createElement("body")) -FAIL not shadowed webkitanimationend (document.createElement("body")) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationiteration (document.createElement("body")) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationstart (document.createElement("body")) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkittransitionend (document.createElement("body")) assert_equals: body should reflect expected (object) null but got (undefined) undefined +PASS not shadowed webkitanimationend (document.createElement("body")) +PASS not shadowed webkitanimationiteration (document.createElement("body")) +PASS not shadowed webkitanimationstart (document.createElement("body")) +PASS not shadowed webkittransitionend (document.createElement("body")) FAIL not shadowed copy (document.createElement("body")) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed cut (document.createElement("body")) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed paste (document.createElement("body")) assert_equals: window should reflect expected (object) null but got (undefined) undefined @@ -295,10 +295,10 @@ PASS not shadowed toggle (window) PASS not shadowed volumechange (window) PASS not shadowed waiting (window) -FAIL not shadowed webkitanimationend (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationiteration (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationstart (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkittransitionend (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined +PASS not shadowed webkitanimationend (window) +PASS not shadowed webkitanimationiteration (window) +PASS not shadowed webkitanimationstart (window) +PASS not shadowed webkittransitionend (window) PASS not shadowed copy (window) PASS not shadowed cut (window) PASS not shadowed paste (window)
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-frameset-window-expected.txt b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-frameset-window-expected.txt index d0258b8..3869455 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-frameset-window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-frameset-window-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 324 tests; 297 PASS, 27 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 324 tests; 309 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS shadowed blur (document.body) PASS shadowed error (document.body) PASS shadowed focus (document.body) @@ -79,10 +79,10 @@ PASS not shadowed toggle (document.body) PASS not shadowed volumechange (document.body) PASS not shadowed waiting (document.body) -FAIL not shadowed webkitanimationend (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationiteration (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationstart (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkittransitionend (document.body) assert_equals: alternative body should reflect expected (object) null but got (undefined) undefined +PASS not shadowed webkitanimationend (document.body) +PASS not shadowed webkitanimationiteration (document.body) +PASS not shadowed webkitanimationstart (document.body) +PASS not shadowed webkittransitionend (document.body) FAIL not shadowed copy (document.body) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed cut (document.body) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed paste (document.body) assert_equals: window should reflect expected (object) null but got (undefined) undefined @@ -187,10 +187,10 @@ PASS not shadowed toggle (document.createElement("frameset")) PASS not shadowed volumechange (document.createElement("frameset")) PASS not shadowed waiting (document.createElement("frameset")) -FAIL not shadowed webkitanimationend (document.createElement("frameset")) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationiteration (document.createElement("frameset")) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationstart (document.createElement("frameset")) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkittransitionend (document.createElement("frameset")) assert_equals: body should reflect expected (object) null but got (undefined) undefined +PASS not shadowed webkitanimationend (document.createElement("frameset")) +PASS not shadowed webkitanimationiteration (document.createElement("frameset")) +PASS not shadowed webkitanimationstart (document.createElement("frameset")) +PASS not shadowed webkittransitionend (document.createElement("frameset")) FAIL not shadowed copy (document.createElement("frameset")) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed cut (document.createElement("frameset")) assert_equals: window should reflect expected (object) null but got (undefined) undefined FAIL not shadowed paste (document.createElement("frameset")) assert_equals: window should reflect expected (object) null but got (undefined) undefined @@ -295,10 +295,10 @@ PASS not shadowed toggle (window) PASS not shadowed volumechange (window) PASS not shadowed waiting (window) -FAIL not shadowed webkitanimationend (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationiteration (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkitanimationstart (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined -FAIL not shadowed webkittransitionend (window) assert_equals: body should reflect expected (object) null but got (undefined) undefined +PASS not shadowed webkitanimationend (window) +PASS not shadowed webkitanimationiteration (window) +PASS not shadowed webkitanimationstart (window) +PASS not shadowed webkittransitionend (window) PASS not shadowed copy (window) PASS not shadowed cut (window) PASS not shadowed paste (window)
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt index d69136c..39174d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 216 tests; 202 PASS, 14 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 216 tests; 210 PASS, 6 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Return null when getting the blur event handler of a windowless body PASS Ignore setting of blur window event handlers on windowless body PASS Return null when getting the error event handler of a windowless body @@ -101,10 +101,10 @@ PASS toggle is unaffected on a windowless body PASS volumechange is unaffected on a windowless body PASS waiting is unaffected on a windowless body -FAIL webkitanimationend is unaffected on a windowless body assert_equals: expected (object) null but got (undefined) undefined -FAIL webkitanimationiteration is unaffected on a windowless body assert_equals: expected (object) null but got (undefined) undefined -FAIL webkitanimationstart is unaffected on a windowless body assert_equals: expected (object) null but got (undefined) undefined -FAIL webkittransitionend is unaffected on a windowless body assert_equals: expected (object) null but got (undefined) undefined +PASS webkitanimationend is unaffected on a windowless body +PASS webkitanimationiteration is unaffected on a windowless body +PASS webkitanimationstart is unaffected on a windowless body +PASS webkittransitionend is unaffected on a windowless body PASS copy is unaffected on a windowless body PASS cut is unaffected on a windowless body PASS paste is unaffected on a windowless body @@ -209,10 +209,10 @@ PASS toggle is unaffected on a windowless frameset PASS volumechange is unaffected on a windowless frameset PASS waiting is unaffected on a windowless frameset -FAIL webkitanimationend is unaffected on a windowless frameset assert_equals: expected (object) null but got (undefined) undefined -FAIL webkitanimationiteration is unaffected on a windowless frameset assert_equals: expected (object) null but got (undefined) undefined -FAIL webkitanimationstart is unaffected on a windowless frameset assert_equals: expected (object) null but got (undefined) undefined -FAIL webkittransitionend is unaffected on a windowless frameset assert_equals: expected (object) null but got (undefined) undefined +PASS webkitanimationend is unaffected on a windowless frameset +PASS webkitanimationiteration is unaffected on a windowless frameset +PASS webkitanimationstart is unaffected on a windowless frameset +PASS webkittransitionend is unaffected on a windowless frameset PASS copy is unaffected on a windowless frameset PASS cut is unaffected on a windowless frameset PASS paste is unaffected on a windowless frameset
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/README.md b/third_party/blink/web_tests/external/wpt/import-maps/common/README.md index cda42d060..6092c0d 100644 --- a/third_party/blink/web_tests/external/wpt/import-maps/common/README.md +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/README.md
@@ -6,7 +6,12 @@ ## Basics -A **test object** describes a set of parameters (import maps and base URLs) and specifiers to be tested. +A **test object** describes a set of parameters (import maps and base URLs) and test expectations. +Test expectations can be: + +- Expected resulting URLs for specifiers (resolution tests), or +- Expected parsed import maps (parsing tests). + Each JSON file under [resources/](resources/) directory consists of a test object. A minimum test object would be: @@ -33,10 +38,11 @@ - In WPT tests, this is used for the test name of `promise_test()` together with specifier to be resolved, like `"Main test name: a"`. - `importMap` (object or string): the import map to be attached. - `importMapBaseURL` (string): the base URL used for [parsing the import map](https://wicg.github.io/import-maps/#parse-an-import-map-string). -- `baseURL` (string): the base URL used in [resolving a specifier](https://wicg.github.io/import-maps/#resolve-a-module-specifier) for each specifiers. -- `expectedResults` (object; string to (string or null)): test cases. +- (resolution tests only) `expectedResults` (object; string to (string or null)): resolution test cases. - The keys are specifiers to be resolved. - The values are expected resolved URLs. If `null`, resolution should fail. +- (resolution tests only) `baseURL` (string): the base URL used in [resolving a specifier](https://wicg.github.io/import-maps/#resolve-a-module-specifier) for each specifiers. +- (parsing tests only) `expectedParsedImportMap` (object): the expected parsed import map for parsing test cases. Optional fields:
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/parsing.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/import-maps/common/parsing.tentative-expected.txt new file mode 100644 index 0000000..f4617a5d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/parsing.tentative-expected.txt
@@ -0,0 +1,71 @@ +This is a testharness.js-based test. +Found 67 tests; 47 PASS, 20 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-addresses-absolute.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-addresses-invalid.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-addresses.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-invalid-json.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-normalization.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-scope.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-specifier-map.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-toplevel.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-scope-keys.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-specifier-keys.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-trailing-slashes.json +FAIL Absolute URL addresses: should only accept absolute URL addresses with fetch schemes assert_equals: expected "{\"imports\":{\"about\":\"about:good\",\"blob\":\"blob:good\",\"data\":\"data:good\",\"file\":\"file:///good\",\"filesystem\":\"filesystem:http://example.com/good/\",\"ftp\":\"ftp://good/\",\"http\":\"http://good/\",\"https\":\"https://good/\",\"import\":\"import:bad\",\"javascript\":\"javascript:bad\",\"mailto\":\"mailto:bad\",\"wss\":\"wss://bad/\"},\"scopes\":{}}" but got "{\"imports\":{\"about\":[\"about:good\"],\"blob\":[\"blob:good\"],\"data\":[\"data:good\"],\"file\":[\"file:///good\"],\"filesystem\":[\"filesystem:http://example.com/good/\"],\"ftp\":[\"ftp://good/\"],\"http\":[\"http://good/\"],\"https\":[\"https://good/\"],\"import\":[\"import:bad\"],\"javascript\":[\"javascript:bad\"],\"mailto\":[\"mailto:bad\"],\"wss\":[\"wss://bad/\"]},\"scopes\":{}}" +FAIL Absolute URL addresses: should parse absolute URLs, ignoring unparseable ones assert_equals: expected "{\"imports\":{\"invalidButParseable1\":\"https://example.org/\",\"invalidButParseable2\":\"https://example.com///\",\"percentDecoding\":\"https://example.com/\",\"prettyNormal\":\"https://example.net/\"},\"scopes\":{}}" but got "{\"imports\":{\"invalidButParseable1\":[\"https://example.org/\"],\"invalidButParseable2\":[\"https://example.com///\"],\"percentDecoding\":[\"https://example.com/\"],\"prettyNormal\":[\"https://example.net/\"],\"unparseable2\":[],\"unparseable3\":[]},\"scopes\":{}}" +FAIL Other invalid addresses: should ignore unprefixed strings that are not absolute URLs assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"foo1\":[],\"foo2\":[],\"foo3\":[],\"foo4\":[],\"foo5\":[]},\"scopes\":{}}" +FAIL Relative URL-like addresses: should accept strings prefixed with ./, ../, or / assert_equals: expected "{\"imports\":{\"dotDotSlash\":\"https://base.example/path1/foo\",\"dotSlash\":\"https://base.example/path1/path2/foo\",\"slash\":\"https://base.example/foo\"},\"scopes\":{}}" but got "{\"imports\":{\"dotDotSlash\":[\"https://base.example/path1/foo\"],\"dotSlash\":[\"https://base.example/path1/path2/foo\"],\"slash\":[\"https://base.example/foo\"]},\"scopes\":{}}" +FAIL Relative URL-like addresses: should not accept strings prefixed with ./, ../, or / for data: base URLs assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"dotDotSlash\":[],\"dotSlash\":[],\"slash\":[]},\"scopes\":{}}" +FAIL Relative URL-like addresses: should accept the literal strings ./, ../, or / with no suffix assert_equals: expected "{\"imports\":{\"dotDotSlash\":\"https://base.example/path1/\",\"dotSlash\":\"https://base.example/path1/path2/\",\"slash\":\"https://base.example/\"},\"scopes\":{}}" but got "{\"imports\":{\"dotDotSlash\":[\"https://base.example/path1/\"],\"dotSlash\":[\"https://base.example/path1/path2/\"],\"slash\":[\"https://base.example/\"]},\"scopes\":{}}" +FAIL Relative URL-like addresses: should ignore percent-encoded variants of ./, ../, or / assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"dotDotSlash1\":[],\"dotDotSlash2\":[],\"dotDotSlash3\":[],\"dotSlash1\":[],\"dotSlash2\":[],\"dotSlash3\":[],\"slash2\":[]},\"scopes\":{}}" +PASS Invalid JSON +PASS Normalization: should normalize empty import maps to have imports and scopes keys +PASS Normalization: should normalize an import map without imports to have imports +PASS Normalization: should normalize an import map without scopes to have scopes +PASS Mismatching scopes schema: should throw if a scope's value is not an object: null +PASS Mismatching scopes schema: should throw if a scope's value is not an object: boolean +PASS Mismatching scopes schema: should throw if a scope's value is not an object: number +PASS Mismatching scopes schema: should throw if a scope's value is not an object: string +PASS Mismatching scopes schema: should throw if a scope's value is not an object: array +FAIL Mismatching the specifier map schema: should ignore entries where the address is not a string assert_equals: expected "{\"imports\":{\"string\":\"https://example.com/\"},\"scopes\":{}}" but got "{\"imports\":{\"array\":[],\"array2\":[\"https://example.com/\"],\"null\":[],\"string\":[\"https://example.com/\"]},\"scopes\":{}}" +PASS Mismatching the specifier map schema: should ignore entries where the specifier key is an empty string +PASS Mismatching the top-level schema: should throw for top-level non-objects: null +PASS Mismatching the top-level schema: should throw for top-level non-objects: boolean +PASS Mismatching the top-level schema: should throw for top-level non-objects: number +PASS Mismatching the top-level schema: should throw for top-level non-objects: string +PASS Mismatching the top-level schema: should throw for top-level non-objects: array +PASS Mismatching the top-level schema: should throw if imports is a non-object: null +PASS Mismatching the top-level schema: should throw if imports is a non-object: boolean +PASS Mismatching the top-level schema: should throw if imports is a non-object: number +PASS Mismatching the top-level schema: should throw if imports is a non-object: string +PASS Mismatching the top-level schema: should throw if imports is a non-object: array +PASS Mismatching the top-level schema: should throw if scopes is a non-object: null +PASS Mismatching the top-level schema: should throw if scopes is a non-object: boolean +PASS Mismatching the top-level schema: should throw if scopes is a non-object: number +PASS Mismatching the top-level schema: should throw if scopes is a non-object: string +PASS Mismatching the top-level schema: should throw if scopes is a non-object: array +PASS Mismatching the top-level schema: should ignore unspecified top-level entries +PASS Relative URL scope keys should work with no prefix +PASS Relative URL scope keys should work with ./, ../, and / prefixes +PASS Absolute URL scope keys should ignore relative URL scope keys when the base URL is a data: URL +PASS Relative URL scope keys should work with ./, ../, or / with no suffix +PASS Relative URL scope keys should work with /s, ?s, and #s +PASS Relative URL scope keys should work with an empty string scope key +PASS Relative URL scope keys should work with / suffixes +FAIL Relative URL scope keys should deduplicate based on URL parsing rules assert_equals: expected "{\"imports\":{},\"scopes\":{\"https://base.example/path1/path2/foo//\":{\"3\":\"https://base.example/path1/path2/c\"}}}" but got "{\"imports\":{},\"scopes\":{\"https://base.example/path1/path2/foo//\":{\"3\":[\"https://base.example/path1/path2/c\"]}}}" +PASS Absolute URL scope keys should accept all absolute URL scope keys, with or without fetch schemes +PASS Absolute URL scope keys should parse absolute URL scope keys, ignoring unparseable ones +FAIL Relative URL specifier keys should absolutize strings prefixed with ./, ../, or / into the corresponding URLs assert_equals: expected "{\"imports\":{\"https://base.example/foo\":\"https://base.example/slash\",\"https://base.example/path1/foo\":\"https://base.example/dotdotslash\",\"https://base.example/path1/path2/foo\":\"https://base.example/dotslash\"},\"scopes\":{}}" but got "{\"imports\":{\"https://base.example/foo\":[\"https://base.example/slash\"],\"https://base.example/path1/foo\":[\"https://base.example/dotdotslash\"],\"https://base.example/path1/path2/foo\":[\"https://base.example/dotslash\"]},\"scopes\":{}}" +FAIL Relative URL specifier keys should not absolutize strings prefixed with ./, ../, or / with a data: URL base assert_equals: expected "{\"imports\":{\"../foo\":\"https://example.com/dotdotslash\",\"./foo\":\"https://example.com/dotslash\",\"/foo\":\"https://example.com/slash\"},\"scopes\":{}}" but got "{\"imports\":{\"../foo\":[\"https://example.com/dotdotslash\"],\"./foo\":[\"https://example.com/dotslash\"],\"/foo\":[\"https://example.com/slash\"]},\"scopes\":{}}" +FAIL Relative URL specifier keys should absolutize the literal strings ./, ../, or / with no suffix assert_equals: expected "{\"imports\":{\"https://base.example/\":\"https://base.example/slash/\",\"https://base.example/path1/\":\"https://base.example/dotdotslash/\",\"https://base.example/path1/path2/\":\"https://base.example/dotslash/\"},\"scopes\":{}}" but got "{\"imports\":{\"https://base.example/\":[\"https://base.example/slash/\"],\"https://base.example/path1/\":[\"https://base.example/dotdotslash/\"],\"https://base.example/path1/path2/\":[\"https://base.example/dotslash/\"]},\"scopes\":{}}" +FAIL Relative URL specifier keys should work with /s, ?s, and #s assert_equals: expected "{\"imports\":{\"https://base.example/path1/path2/foo/bar?baz#qux\":\"https://base.example/foo\"},\"scopes\":{}}" but got "{\"imports\":{\"https://base.example/path1/path2/foo/bar?baz#qux\":[\"https://base.example/foo\"]},\"scopes\":{}}" +PASS Relative URL specifier keys should ignore an empty string key +FAIL Relative URL specifier keys should treat percent-encoded variants of ./, ../, or / as bare specifiers assert_equals: expected "{\"imports\":{\"%2E%2E%2F\":\"https://base.example/dotDotSlash3\",\"%2E%2E/\":\"https://base.example/dotDotSlash1/\",\"%2E%2F\":\"https://base.example/dotSlash3\",\"%2E/\":\"https://base.example/dotSlash1/\",\"%2F\":\"https://base.example/slash2\",\".%2F\":\"https://base.example/dotSlash2\",\"..%2F\":\"https://base.example/dotDotSlash2\"},\"scopes\":{}}" but got "{\"imports\":{\"%2E%2E%2F\":[\"https://base.example/dotDotSlash3\"],\"%2E%2E/\":[\"https://base.example/dotDotSlash1/\"],\"%2E%2F\":[\"https://base.example/dotSlash3\"],\"%2E/\":[\"https://base.example/dotSlash1/\"],\"%2F\":[\"https://base.example/slash2\"],\".%2F\":[\"https://base.example/dotSlash2\"],\"..%2F\":[\"https://base.example/dotDotSlash2\"]},\"scopes\":{}}" +FAIL Relative URL specifier keys should deduplicate based on URL parsing rules assert_equals: expected "{\"imports\":{\"https://base.example/path1/path2/foo//\":\"https://base.example/foo3\"},\"scopes\":{}}" but got "{\"imports\":{\"https://base.example/path1/path2/foo//\":[\"https://base.example/foo3\"]},\"scopes\":{}}" +FAIL Absolute URL specifier keys should accept all absolute URL specifier keys, with or without fetch schemes assert_equals: expected "{\"imports\":{\"about:good\":\"https://base.example/about\",\"blob:good\":\"https://base.example/blob\",\"data:good\":\"https://base.example/data\",\"file:///good\":\"https://base.example/file\",\"filesystem:http://example.com/good/\":\"https://base.example/filesystem/\",\"ftp://good/\":\"https://base.example/ftp/\",\"http://good/\":\"https://base.example/http/\",\"https://good/\":\"https://base.example/https/\",\"import:bad\":\"https://base.example/import\",\"javascript:bad\":\"https://base.example/javascript\",\"mailto:bad\":\"https://base.example/mailto\",\"wss://bad/\":\"https://base.example/wss\"},\"scopes\":{}}" but got "{\"imports\":{\"about:good\":[\"https://base.example/about\"],\"blob:good\":[\"https://base.example/blob\"],\"data:good\":[\"https://base.example/data\"],\"file:///good\":[\"https://base.example/file\"],\"filesystem:http://example.com/good/\":[\"https://base.example/filesystem/\"],\"ftp://good/\":[\"https://base.example/ftp/\"],\"http://good/\":[\"https://base.example/http/\"],\"https://good/\":[\"https://base.example/https/\"],\"import:bad\":[\"https://base.example/import\"],\"javascript:bad\":[\"https://base.example/javascript\"],\"mailto:bad\":[\"https://base.example/mailto\"],\"wss://bad/\":[\"https://base.example/wss\"]},\"scopes\":{}}" +FAIL Absolute URL specifier keys should parse absolute URLs, treating unparseable ones as bare specifiers assert_equals: expected "{\"imports\":{\"http://[www.example.com]/\":\"https://base.example/unparseable3/\",\"https://example.com/\":\"https://base.example/percentDecoding/\",\"https://example.com///\":\"https://base.example/invalidButParseable2/\",\"https://example.com:demo\":\"https://base.example/unparseable2\",\"https://example.net/\":\"https://base.example/prettyNormal/\",\"https://example.org/\":\"https://base.example/invalidButParseable1/\"},\"scopes\":{}}" but got "{\"imports\":{\"http://[www.example.com]/\":[\"https://base.example/unparseable3/\"],\"https://example.com/\":[\"https://base.example/percentDecoding/\"],\"https://example.com///\":[\"https://base.example/invalidButParseable2/\"],\"https://example.com:demo\":[\"https://base.example/unparseable2\"],\"https://example.net/\":[\"https://base.example/prettyNormal/\"],\"https://example.org/\":[\"https://base.example/invalidButParseable1/\"]},\"scopes\":{}}" +FAIL Specifier keys should be sort correctly (issue #181) - Test #1 assert_equals: expected "{\"imports\":{\"https://example.com/a\":\"https://example.com/a\",\"https://example.com/aaa\":\"https://example.com/aaa\"},\"scopes\":{}}" but got "{\"imports\":{\"https://example.com/a\":[\"https://example.com/a\"],\"https://example.com/aaa\":[\"https://example.com/aaa\"]},\"scopes\":{}}" +FAIL Specifier keys should be sort correctly (issue #181) - Test #2 assert_equals: expected "{\"imports\":{\"https://example.com/a\":\"https://example.com/a\",\"https://example.com/aaa\":\"https://example.com/aaa\"},\"scopes\":{}}" but got "{\"imports\":{\"https://example.com/a\":[\"https://example.com/a\"],\"https://example.com/aaa\":[\"https://example.com/aaa\"]},\"scopes\":{}}" +FAIL Failing addresses: mismatched trailing slashes assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"trailer/\":[]},\"scopes\":{}}" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/parsing.tentative.html b/third_party/blink/web_tests/external/wpt/import-maps/common/parsing.tentative.html new file mode 100644 index 0000000..d3334d7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/parsing.tentative.html
@@ -0,0 +1,26 @@ +<!DOCTYPE html> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<script type="module"> +import { runTestsFromJSON } from "./resources/common-test-helper.js"; + +for (const json of [ + 'resources/parsing-addresses-absolute.json', + 'resources/parsing-addresses-invalid.json', + 'resources/parsing-addresses.json', + 'resources/parsing-invalid-json.json', + 'resources/parsing-schema-normalization.json', + 'resources/parsing-schema-scope.json', + 'resources/parsing-schema-specifier-map.json', + 'resources/parsing-schema-toplevel.json', + 'resources/parsing-scope-keys.json', + 'resources/parsing-specifier-keys.json', + 'resources/parsing-trailing-slashes.json', +]) { + promise_test(() => + runTestsFromJSON(json), + "Test helper: fetching and sanity checking test JSON: " + json); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/common-test-helper.js b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/common-test-helper.js index 002c4b51..0ddad9fe 100644 --- a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/common-test-helper.js +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/common-test-helper.js
@@ -2,17 +2,15 @@ // Creates a new Document (via <iframe>) and add an inline import map. function parse(importMap, importMapBaseURL) { - return new Promise((resolve, reject) => { + return new Promise(resolve => { const importMapString = JSON.stringify(importMap); const iframe = document.createElement('iframe'); window.addEventListener('message', event => { - if (event.data.type === 'Success') { - resolve(iframe); - } else { - // Currently we don't distinguish fetch errors and parse errors. - reject(event.data.error); - } + // Parsing result is saved here and checked later, rather than + // rejecting the promise on errors. + iframe.parseImportMapResult = event.data.type; + resolve(iframe); }, {once: true}); @@ -40,18 +38,28 @@ // Handle specifier resolution requests from the parent frame. window.addEventListener('message', event => { try { - // URL resolution is tested using Chromium's internals. - // TODO(hiroshige): Remove the Chromium-specific dependency. - const result = internals.resolveModuleSpecifier( - event.data.specifier, - event.data.baseURL, - document); - parent.postMessage({type: 'ResolutionSuccess', result: result}, '*'); + if (event.data.action === 'resolve') { + // URL resolution is tested using Chromium's internals. + // TODO(hiroshige): Remove the Chromium-specific dependency. + const result = internals.resolveModuleSpecifier( + event.data.specifier, + event.data.baseURL, + document); + parent.postMessage({type: 'ResolutionSuccess', result: result}, '*'); + } else if (event.data.action === 'getParsedImportMap') { + parent.postMessage({ + type: 'GetParsedImportMapSuccess', + result: internals.getParsedImportMap(document)}, '*'); + } else { + parent.postMessage({ + type: 'Failure', + result: "Invalid Action: " + event.data.action}, '*'); + } } catch (e) { // We post error names instead of error objects themselves and // re-create error objects later, to avoid issues around serializing // error objects which is a quite new feature. - parent.postMessage({type: 'ResolutionFailure', result: e.name}, '*'); + parent.postMessage({type: 'Failure', result: e.name}, '*'); } }); </script> @@ -77,7 +85,7 @@ window.addEventListener('message', event => { if (event.data.type === 'ResolutionSuccess') { resolve(event.data.result); - } else if (event.data.type === 'ResolutionFailure') { + } else if (event.data.type === 'Failure') { if (event.data.result === 'TypeError') { reject(new TypeError()); } else { @@ -90,7 +98,21 @@ {once: true}); parsedImportMap.contentWindow.postMessage( - {specifier: specifier, baseURL: baseURL}, '*'); + {action: "resolve", specifier: specifier, baseURL: baseURL}, '*'); + }); +} + +// Returns a promise that is resolved with a serialized string of +// a parsed import map JSON object. +function getParsedImportMap(parsedImportMap) { + return new Promise((resolve, reject) => { + window.addEventListener('message', event => { + resolve(event.data.result); + }, + {once: true}); + + parsedImportMap.contentWindow.postMessage( + {action: "getParsedImportMap"}, '*'); }); } @@ -101,11 +123,27 @@ } } +// Sort keys and then stringify for comparison. +function stringifyImportMap(importMap) { + function getKeys(m) { + if (typeof m !== 'object') + return []; + + let keys = []; + for (const key in m) { + keys.push(key); + keys = keys.concat(getKeys(m[key])); + } + return keys; + } + return JSON.stringify(importMap, getKeys(importMap).sort()); +} + async function runTests(j) { const tests = j.tests; delete j.tests; - if (j.importMap) { + if (j.hasOwnProperty('importMap')) { assert_own_property(j, 'importMap'); assert_own_property(j, 'importMapBaseURL'); j.parsedImportMap = await parse(j.importMap, j.importMapBaseURL); @@ -115,7 +153,8 @@ assert_no_extra_properties( j, - ['expectedResults', 'baseURL', 'name', 'parsedImportMap', + ['expectedResults', 'expectedParsedImportMap', + 'baseURL', 'name', 'parsedImportMap', 'importMap', 'importMapBaseURL', 'link', 'details'], j.name); @@ -133,26 +172,51 @@ } } else { // Leaf node. - for (const key of - ['expectedResults', 'parsedImportMap', 'baseURL', 'name']) { + for (const key of ['parsedImportMap', 'name']) { assert_own_property(j, key, j.name); } + assert_true(j.hasOwnProperty('expectedResults') || + j.hasOwnProperty('expectedParsedImportMap'), + 'expectedResults or expectedParsedImportMap should exist'); - for (const specifier in j.expectedResults) { - const expected = j.expectedResults[specifier]; - promise_test(async t => { - if (expected === null) { - return promise_rejects(t, new TypeError(), - resolve(specifier, j.parsedImportMap, j.baseURL)); - } else { - // Should be resolved to `expected`. - const actual = await resolve( - specifier, j.parsedImportMap, j.baseURL); - assert_equals(actual, expected); - } - }, - j.name + ': ' + specifier); + // Resolution tests. + if (j.hasOwnProperty('expectedResults')) { + assert_own_property(j, 'baseURL'); + assert_equals( + j.parsedImportMap.parseImportMapResult, + "Success", + "Import map registration should be successful for resolution tests"); + for (const specifier in j.expectedResults) { + const expected = j.expectedResults[specifier]; + promise_test(async t => { + if (expected === null) { + return promise_rejects(t, new TypeError(), + resolve(specifier, j.parsedImportMap, j.baseURL)); + } else { + // Should be resolved to `expected`. + const actual = await resolve( + specifier, j.parsedImportMap, j.baseURL); + assert_equals(actual, expected); + } + }, + j.name + ': ' + specifier); + } } + + // Parsing tests. + if (j.hasOwnProperty('expectedParsedImportMap')) { + promise_test(async t => { + if (j.expectedParsedImportMap === null) { + assert_equals(j.parsedImportMap.parseImportMapResult, "ParseError"); + } else { + const actualParsedImportMap = + await getParsedImportMap(j.parsedImportMap); + assert_equals(stringifyImportMap(JSON.parse(actualParsedImportMap)), + stringifyImportMap(j.expectedParsedImportMap)); + } + }, j.name); + } + } }
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses-absolute.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses-absolute.json new file mode 100644 index 0000000..d392f82 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses-absolute.json
@@ -0,0 +1,63 @@ +{ + "name": "Absolute URL addresses", + "tests": { + "should only accept absolute URL addresses with fetch schemes": { + "importMap": { + "imports": { + "about": "about:good", + "blob": "blob:good", + "data": "data:good", + "file": "file:///good", + "filesystem": "filesystem:http://example.com/good/", + "http": "http://good/", + "https": "https://good/", + "ftp": "ftp://good/", + "import": "import:bad", + "mailto": "mailto:bad", + "javascript": "javascript:bad", + "wss": "wss:bad" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": { + "about": "about:good", + "blob": "blob:good", + "data": "data:good", + "file": "file:///good", + "filesystem": "filesystem:http://example.com/good/", + "http": "http://good/", + "https": "https://good/", + "ftp": "ftp://good/", + "import": "import:bad", + "javascript": "javascript:bad", + "mailto": "mailto:bad", + "wss": "wss://bad/" + }, + "scopes": {} + } + }, + "should parse absolute URLs, ignoring unparseable ones": { + "importMap": { + "imports": { + "unparseable2": "https://example.com:demo", + "unparseable3": "http://[www.example.com]/", + "invalidButParseable1": "https:example.org", + "invalidButParseable2": "https://///example.com///", + "prettyNormal": "https://example.net", + "percentDecoding": "https://ex%41mple.com/" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": { + "invalidButParseable1": "https://example.org/", + "invalidButParseable2": "https://example.com///", + "prettyNormal": "https://example.net/", + "percentDecoding": "https://example.com/" + }, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses-invalid.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses-invalid.json new file mode 100644 index 0000000..7d6502a1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses-invalid.json
@@ -0,0 +1,21 @@ +{ + "name": "Other invalid addresses", + "tests": { + "should ignore unprefixed strings that are not absolute URLs": { + "importMap": { + "imports": { + "foo1": "bar", + "foo2": "\\bar", + "foo3": "~bar", + "foo4": "#bar", + "foo5": "?bar" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses.json new file mode 100644 index 0000000..d5bb54f0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-addresses.json
@@ -0,0 +1,73 @@ +{ + "name": "Relative URL-like addresses", + "tests": { + "should accept strings prefixed with ./, ../, or /": { + "importMap": { + "imports": { + "dotSlash": "./foo", + "dotDotSlash": "../foo", + "slash": "/foo" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": { + "dotSlash": "https://base.example/path1/path2/foo", + "dotDotSlash": "https://base.example/path1/foo", + "slash": "https://base.example/foo" + }, + "scopes": {} + } + }, + "should not accept strings prefixed with ./, ../, or / for data: base URLs": { + "importMap": { + "imports": { + "dotSlash": "./foo", + "dotDotSlash": "../foo", + "slash": "/foo" + } + }, + "importMapBaseURL": "data:text/html,test", + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + }, + "should accept the literal strings ./, ../, or / with no suffix": { + "importMap": { + "imports": { + "dotSlash": "./", + "dotDotSlash": "../", + "slash": "/" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": { + "dotSlash": "https://base.example/path1/path2/", + "dotDotSlash": "https://base.example/path1/", + "slash": "https://base.example/" + }, + "scopes": {} + } + }, + "should ignore percent-encoded variants of ./, ../, or /": { + "importMap": { + "imports": { + "dotSlash1": "%2E/", + "dotDotSlash1": "%2E%2E/", + "dotSlash2": ".%2F", + "dotDotSlash2": "..%2F", + "slash2": "%2F", + "dotSlash3": "%2E%2F", + "dotDotSlash3": "%2E%2E%2F" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-invalid-json.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-invalid-json.json new file mode 100644 index 0000000..1bd1c94 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-invalid-json.json
@@ -0,0 +1,6 @@ +{ + "name": "Invalid JSON", + "importMapBaseURL": "https://base.example/", + "importMap": "{imports: {}}", + "expectedParsedImportMap": null +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-normalization.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-normalization.json new file mode 100644 index 0000000..a330bb8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-normalization.json
@@ -0,0 +1,31 @@ +{ + "name": "Normalization", + "importMapBaseURL": "https://base.example/", + "tests": { + "should normalize empty import maps to have imports and scopes keys": { + "importMap": {}, + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + }, + "should normalize an import map without imports to have imports": { + "importMap": { + "scopes": {} + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + }, + "should normalize an import map without scopes to have scopes": { + "importMap": { + "imports": {} + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-scope.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-scope.json new file mode 100644 index 0000000..04d0939 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-scope.json
@@ -0,0 +1,46 @@ +{ + "name": "Mismatching scopes schema", + "importMapBaseURL": "https://base.example/", + "tests": { + "should throw if a scope's value is not an object": { + "expectedParsedImportMap": null, + "tests": { + "null": { + "importMap": { + "scopes": { + "https://example.com/": null + } + } + }, + "boolean": { + "importMap": { + "scopes": { + "https://example.com/": true + } + } + }, + "number": { + "importMap": { + "scopes": { + "https://example.com/": 1 + } + } + }, + "string": { + "importMap": { + "scopes": { + "https://example.com/": "foo" + } + } + }, + "array": { + "importMap": { + "scopes": { + "https://example.com/": [] + } + } + } + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-specifier-map.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-specifier-map.json new file mode 100644 index 0000000..926e7a1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-specifier-map.json
@@ -0,0 +1,38 @@ +{ + "name": "Mismatching the specifier map schema", + "importMapBaseURL": "https://base.example/", + "tests": { + "should ignore entries where the address is not a string": { + "importMap": { + "imports": { + "null": null, + "boolean": true, + "number": 1, + "object": {}, + "array": [], + "array2": [ + "https://example.com/" + ], + "string": "https://example.com/" + } + }, + "expectedParsedImportMap": { + "imports": { + "string": "https://example.com/" + }, + "scopes": {} + } + }, + "should ignore entries where the specifier key is an empty string": { + "importMap": { + "imports": { + "": "https://example.com/" + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-toplevel.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-toplevel.json new file mode 100644 index 0000000..278cad2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-schema-toplevel.json
@@ -0,0 +1,97 @@ +{ + "name": "Mismatching the top-level schema", + "importMapBaseURL": "https://base.example/", + "tests": { + "should throw for top-level non-objects": { + "expectedParsedImportMap": null, + "tests": { + "null": { + "importMap": null + }, + "boolean": { + "importMap": true + }, + "number": { + "importMap": 1 + }, + "string": { + "importMap": "foo" + }, + "array": { + "importMap": [] + } + } + }, + "should throw if imports is a non-object": { + "expectedParsedImportMap": null, + "tests": { + "null": { + "importMap": { + "imports": null + } + }, + "boolean": { + "importMap": { + "imports": true + } + }, + "number": { + "importMap": { + "imports": 1 + } + }, + "string": { + "importMap": { + "imports": "foo" + } + }, + "array": { + "importMap": { + "imports": [] + } + } + } + }, + "should throw if scopes is a non-object": { + "expectedParsedImportMap": null, + "tests": { + "null": { + "importMap": { + "scopes": null + } + }, + "boolean": { + "importMap": { + "scopes": true + } + }, + "number": { + "importMap": { + "scopes": 1 + } + }, + "string": { + "importMap": { + "scopes": "foo" + } + }, + "array": { + "importMap": { + "scopes": [] + } + } + } + }, + "should ignore unspecified top-level entries": { + "importMap": { + "imports": {}, + "new-feature": {}, + "scops": {} + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-scope-keys.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-scope-keys.json new file mode 100644 index 0000000..4b2f1eea --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-scope-keys.json
@@ -0,0 +1,191 @@ +{ + "importMapBaseURL": "https://base.example/path1/path2/path3", + "tests": { + "Relative URL scope keys should work with no prefix": { + "importMap": { + "scopes": { + "foo": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/foo": {} + } + } + }, + "Relative URL scope keys should work with ./, ../, and / prefixes": { + "importMap": { + "scopes": { + "./foo": {}, + "../foo": {}, + "/foo": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/foo": {}, + "https://base.example/path1/foo": {}, + "https://base.example/foo": {} + } + } + }, + "Absolute URL scope keys should ignore relative URL scope keys when the base URL is a data: URL": { + "importMap": { + "scopes": { + "./foo": {}, + "../foo": {}, + "/foo": {} + } + }, + "importMapBaseURL": "data:text/html,test", + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + }, + "Relative URL scope keys should work with ./, ../, or / with no suffix": { + "importMap": { + "scopes": { + "./": {}, + "../": {}, + "/": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/": {}, + "https://base.example/path1/": {}, + "https://base.example/": {} + } + } + }, + "Relative URL scope keys should work with /s, ?s, and #s": { + "importMap": { + "scopes": { + "foo/bar?baz#qux": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/foo/bar?baz#qux": {} + } + } + }, + "Relative URL scope keys should work with an empty string scope key": { + "importMap": { + "scopes": { + "": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/path3": {} + } + } + }, + "Relative URL scope keys should work with / suffixes": { + "importMap": { + "scopes": { + "foo/": {}, + "./foo/": {}, + "../foo/": {}, + "/foo/": {}, + "/foo//": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/foo/": {}, + "https://base.example/path1/foo/": {}, + "https://base.example/foo/": {}, + "https://base.example/foo//": {} + } + } + }, + "Relative URL scope keys should deduplicate based on URL parsing rules": { + "importMap": { + "scopes": { + "foo/\\": { + "1": "./a" + }, + "foo//": { + "2": "./b" + }, + "foo\\\\": { + "3": "./c" + } + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/foo//": { + "3": "https://base.example/path1/path2/c" + } + } + } + }, + "Absolute URL scope keys should accept all absolute URL scope keys, with or without fetch schemes": { + "importMap": { + "scopes": { + "about:good": {}, + "blob:good": {}, + "data:good": {}, + "file:///good": {}, + "filesystem:http://example.com/good/": {}, + "http://good/": {}, + "https://good/": {}, + "ftp://good/": {}, + "import:bad": {}, + "mailto:bad": {}, + "javascript:bad": {}, + "wss:ba": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "about:good": {}, + "blob:good": {}, + "data:good": {}, + "file:///good": {}, + "filesystem:http://example.com/good/": {}, + "http://good/": {}, + "https://good/": {}, + "ftp://good/": {}, + "import:bad": {}, + "mailto:bad": {}, + "javascript:bad": {}, + "wss://ba/": {} + } + } + }, + "Absolute URL scope keys should parse absolute URL scope keys, ignoring unparseable ones": { + "importMap": { + "scopes": { + "https://example.com:demo": {}, + "http://[www.example.com]/": {}, + "https:example.org": {}, + "https://///example.com///": {}, + "https://example.net": {}, + "https://ex%41mple.com/foo/": {} + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": { + "https://base.example/path1/path2/example.org": {}, + "https://example.com///": {}, + "https://example.net/": {}, + "https://example.com/foo/": {} + } + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-specifier-keys.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-specifier-keys.json new file mode 100644 index 0000000..b2d9cf47 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-specifier-keys.json
@@ -0,0 +1,209 @@ +{ + "importMapBaseURL": "https://base.example/path1/path2/path3", + "tests": { + "Relative URL specifier keys should absolutize strings prefixed with ./, ../, or / into the corresponding URLs": { + "importMap": { + "imports": { + "./foo": "/dotslash", + "../foo": "/dotdotslash", + "/foo": "/slash" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://base.example/path1/path2/foo": "https://base.example/dotslash", + "https://base.example/path1/foo": "https://base.example/dotdotslash", + "https://base.example/foo": "https://base.example/slash" + }, + "scopes": {} + } + }, + "Relative URL specifier keys should not absolutize strings prefixed with ./, ../, or / with a data: URL base": { + "importMap": { + "imports": { + "./foo": "https://example.com/dotslash", + "../foo": "https://example.com/dotdotslash", + "/foo": "https://example.com/slash" + } + }, + "importMapBaseURL": "data:text/html,", + "expectedParsedImportMap": { + "imports": { + "./foo": "https://example.com/dotslash", + "../foo": "https://example.com/dotdotslash", + "/foo": "https://example.com/slash" + }, + "scopes": {} + } + }, + "Relative URL specifier keys should absolutize the literal strings ./, ../, or / with no suffix": { + "importMap": { + "imports": { + "./": "/dotslash/", + "../": "/dotdotslash/", + "/": "/slash/" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://base.example/path1/path2/": "https://base.example/dotslash/", + "https://base.example/path1/": "https://base.example/dotdotslash/", + "https://base.example/": "https://base.example/slash/" + }, + "scopes": {} + } + }, + "Relative URL specifier keys should work with /s, ?s, and #s": { + "importMap": { + "imports": { + "./foo/bar?baz#qux": "/foo" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://base.example/path1/path2/foo/bar?baz#qux": "https://base.example/foo" + }, + "scopes": {} + } + }, + "Relative URL specifier keys should ignore an empty string key": { + "importMap": { + "imports": { + "": "/foo" + } + }, + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } + }, + "Relative URL specifier keys should treat percent-encoded variants of ./, ../, or / as bare specifiers": { + "importMap": { + "imports": { + "%2E/": "/dotSlash1/", + "%2E%2E/": "/dotDotSlash1/", + ".%2F": "/dotSlash2", + "..%2F": "/dotDotSlash2", + "%2F": "/slash2", + "%2E%2F": "/dotSlash3", + "%2E%2E%2F": "/dotDotSlash3" + } + }, + "expectedParsedImportMap": { + "imports": { + "%2E/": "https://base.example/dotSlash1/", + "%2E%2E/": "https://base.example/dotDotSlash1/", + ".%2F": "https://base.example/dotSlash2", + "..%2F": "https://base.example/dotDotSlash2", + "%2F": "https://base.example/slash2", + "%2E%2F": "https://base.example/dotSlash3", + "%2E%2E%2F": "https://base.example/dotDotSlash3" + }, + "scopes": {} + } + }, + "Relative URL specifier keys should deduplicate based on URL parsing rules": { + "importMap": { + "imports": { + "./foo/\\": "/foo1", + "./foo//": "/foo2", + "./foo\\\\": "/foo3" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://base.example/path1/path2/foo//": "https://base.example/foo3" + }, + "scopes": {} + } + }, + "Absolute URL specifier keys should accept all absolute URL specifier keys, with or without fetch schemes": { + "importMap": { + "imports": { + "about:good": "/about", + "blob:good": "/blob", + "data:good": "/data", + "file:///good": "/file", + "filesystem:http://example.com/good/": "/filesystem/", + "http://good/": "/http/", + "https://good/": "/https/", + "ftp://good/": "/ftp/", + "import:bad": "/import", + "mailto:bad": "/mailto", + "javascript:bad": "/javascript", + "wss:bad": "/wss" + } + }, + "expectedParsedImportMap": { + "imports": { + "about:good": "https://base.example/about", + "blob:good": "https://base.example/blob", + "data:good": "https://base.example/data", + "file:///good": "https://base.example/file", + "filesystem:http://example.com/good/": "https://base.example/filesystem/", + "http://good/": "https://base.example/http/", + "https://good/": "https://base.example/https/", + "ftp://good/": "https://base.example/ftp/", + "import:bad": "https://base.example/import", + "mailto:bad": "https://base.example/mailto", + "javascript:bad": "https://base.example/javascript", + "wss://bad/": "https://base.example/wss" + }, + "scopes": {} + } + }, + "Absolute URL specifier keys should parse absolute URLs, treating unparseable ones as bare specifiers": { + "importMap": { + "imports": { + "https://example.com:demo": "/unparseable2", + "http://[www.example.com]/": "/unparseable3/", + "https:example.org": "/invalidButParseable1/", + "https://///example.com///": "/invalidButParseable2/", + "https://example.net": "/prettyNormal/", + "https://ex%41mple.com/": "/percentDecoding/" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://example.com:demo": "https://base.example/unparseable2", + "http://[www.example.com]/": "https://base.example/unparseable3/", + "https://example.org/": "https://base.example/invalidButParseable1/", + "https://example.com///": "https://base.example/invalidButParseable2/", + "https://example.net/": "https://base.example/prettyNormal/", + "https://example.com/": "https://base.example/percentDecoding/" + }, + "scopes": {} + } + }, + "Specifier keys should be sort correctly (issue #181) - Test #1": { + "importMap": { + "imports": { + "https://example.com/aaa": "https://example.com/aaa", + "https://example.com/a": "https://example.com/a" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://example.com/aaa": "https://example.com/aaa", + "https://example.com/a": "https://example.com/a" + }, + "scopes": {} + } + }, + "Specifier keys should be sort correctly (issue #181) - Test #2": { + "importMap": { + "imports": { + "https://example.com/a": "https://example.com/a", + "https://example.com/aaa": "https://example.com/aaa" + } + }, + "expectedParsedImportMap": { + "imports": { + "https://example.com/aaa": "https://example.com/aaa", + "https://example.com/a": "https://example.com/a" + }, + "scopes": {} + } + } + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-trailing-slashes.json b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-trailing-slashes.json new file mode 100644 index 0000000..21e5faa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/common/resources/parsing-trailing-slashes.json
@@ -0,0 +1,13 @@ +{ + "name": "Failing addresses: mismatched trailing slashes", + "importMap": { + "imports": { + "trailer/": "/notrailer" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": {}, + "scopes": {} + } +}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-addresses.tentative.html b/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-addresses.tentative.html deleted file mode 100644 index ddb3b72..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-addresses.tentative.html +++ /dev/null
@@ -1,11 +0,0 @@ -<!DOCTYPE html> -<html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="../resources/jest-test-helper.js"></script> -<script type="module" src="resources/helpers/parsing.js"></script> - -<!-- -Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-addresses.js ---> -<script type="module" src="resources/parsing-addresses.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-schema.tentative.html b/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-schema.tentative.html deleted file mode 100644 index 6b7c0e5..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-schema.tentative.html +++ /dev/null
@@ -1,11 +0,0 @@ -<!DOCTYPE html> -<html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="../resources/jest-test-helper.js"></script> -<script type="module" src="resources/helpers/parsing.js"></script> - -<!-- -Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-schema.js ---> -<script type="module" src="resources/parsing-schema.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-scope-keys.tentative.html b/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-scope-keys.tentative.html deleted file mode 100644 index 601ac3772..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-scope-keys.tentative.html +++ /dev/null
@@ -1,11 +0,0 @@ -<!DOCTYPE html> -<html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="../resources/jest-test-helper.js"></script> -<script type="module" src="resources/helpers/parsing.js"></script> - -<!-- -Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-scope-keys.js ---> -<script type="module" src="resources/parsing-scope-keys.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-specifier-keys.tentative.html b/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-specifier-keys.tentative.html deleted file mode 100644 index dd547f01..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/parsing-specifier-keys.tentative.html +++ /dev/null
@@ -1,11 +0,0 @@ -<!DOCTYPE html> -<html> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="../resources/jest-test-helper.js"></script> -<script type="module" src="resources/helpers/parsing.js"></script> - -<!-- -Imported from https://github.com/WICG/import-maps/blob/master/reference-implementation/__tests__/parsing-specifier-keys.js ---> -<script type="module" src="resources/parsing-specifier-keys.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/helpers/parsing.js b/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/helpers/parsing.js deleted file mode 100644 index daad6d2..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/helpers/parsing.js +++ /dev/null
@@ -1,44 +0,0 @@ -'use strict'; -const { parseFromString } = require('../../lib/parser.js'); - -// Local modifications from upstream: -// Currently warnings and scopes are not checked in expectSpecifierMap(). -exports.expectSpecifierMap = (input, baseURL, output, warnings = []) => { - expect(parseFromString(`{ "imports": ${input} }`, baseURL)) - .toEqual({ imports: output, scopes: {} }); -}; - -exports.expectScopes = (inputArray, baseURL, outputArray, warnings = []) => { - const checkWarnings = testWarningHandler(warnings); - - const inputScopesAsStrings = inputArray.map(scopePrefix => `${JSON.stringify(scopePrefix)}: {}`); - const inputString = `{ "scopes": { ${inputScopesAsStrings.join(', ')} } }`; - - const outputScopesObject = {}; - for (const outputScopePrefix of outputArray) { - outputScopesObject[outputScopePrefix] = {}; - } - - expect(parseFromString(inputString, baseURL)).toEqual({ imports: {}, scopes: outputScopesObject }); - - checkWarnings(); -}; - -exports.expectBad = (input, baseURL, warnings = []) => { - const checkWarnings = testWarningHandler(warnings); - expect(() => parseFromString(input, baseURL)).toThrow(TypeError); - checkWarnings(); -}; - -exports.expectWarnings = (input, baseURL, output, warnings = []) => { - const checkWarnings = testWarningHandler(warnings); - expect(parseFromString(input, baseURL)).toEqual(output); - - checkWarnings(); -}; - -function testWarningHandler(expectedWarnings) { - // We don't check warnings on WPT tests, because there are no - // ways to catch console warnings from JavaScript. - return () => {}; -}
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-addresses.js b/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-addresses.js deleted file mode 100644 index 92d7714..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-addresses.js +++ /dev/null
@@ -1,175 +0,0 @@ -'use strict'; -const { expectSpecifierMap } = require('./helpers/parsing.js'); - -describe('Relative URL-like addresses', () => { - it('should accept strings prefixed with ./, ../, or /', () => { - expectSpecifierMap( - `{ - "dotSlash": "./foo", - "dotDotSlash": "../foo", - "slash": "/foo" - }`, - 'https://base.example/path1/path2/path3', - { - dotSlash: expect.toMatchURL('https://base.example/path1/path2/foo'), - dotDotSlash: expect.toMatchURL('https://base.example/path1/foo'), - slash: expect.toMatchURL('https://base.example/foo') - } - ); - }); - - it('should not accept strings prefixed with ./, ../, or / for data: base URLs', () => { - expectSpecifierMap( - `{ - "dotSlash": "./foo", - "dotDotSlash": "../foo", - "slash": "/foo" - }`, - 'data:text/html,test', - { - }, - [ - `Invalid address "./foo" for the specifier key "dotSlash".`, - `Invalid address "../foo" for the specifier key "dotDotSlash".`, - `Invalid address "/foo" for the specifier key "slash".` - ] - ); - }); - - it('should accept the literal strings ./, ../, or / with no suffix', () => { - expectSpecifierMap( - `{ - "dotSlash": "./", - "dotDotSlash": "../", - "slash": "/" - }`, - 'https://base.example/path1/path2/path3', - { - dotSlash: expect.toMatchURL('https://base.example/path1/path2/'), - dotDotSlash: expect.toMatchURL('https://base.example/path1/'), - slash: expect.toMatchURL('https://base.example/') - } - ); - }); - - it('should ignore percent-encoded variants of ./, ../, or /', () => { - expectSpecifierMap( - `{ - "dotSlash1": "%2E/", - "dotDotSlash1": "%2E%2E/", - "dotSlash2": ".%2F", - "dotDotSlash2": "..%2F", - "slash2": "%2F", - "dotSlash3": "%2E%2F", - "dotDotSlash3": "%2E%2E%2F" - }`, - 'https://base.example/path1/path2/path3', - { - }, - [ - `Invalid address "%2E/" for the specifier key "dotSlash1".`, - `Invalid address "%2E%2E/" for the specifier key "dotDotSlash1".`, - `Invalid address ".%2F" for the specifier key "dotSlash2".`, - `Invalid address "..%2F" for the specifier key "dotDotSlash2".`, - `Invalid address "%2F" for the specifier key "slash2".`, - `Invalid address "%2E%2F" for the specifier key "dotSlash3".`, - `Invalid address "%2E%2E%2F" for the specifier key "dotDotSlash3".` - ] - ); - }); -}); - -describe('Absolute URL addresses', () => { - it('should only accept absolute URL addresses with fetch schemes', () => { - expectSpecifierMap( - `{ - "about": "about:good", - "blob": "blob:good", - "data": "data:good", - "file": "file:///good", - "filesystem": "filesystem:http://example.com/good/", - "http": "http://good/", - "https": "https://good/", - "ftp": "ftp://good/", - "import": "import:bad", - "mailto": "mailto:bad", - "javascript": "javascript:bad", - "wss": "wss:bad" - }`, - 'https://base.example/path1/path2/path3', - { - about: expect.toMatchURL('about:good'), - blob: expect.toMatchURL('blob:good'), - data: expect.toMatchURL('data:good'), - file: expect.toMatchURL('file:///good'), - filesystem: expect.toMatchURL('filesystem:http://example.com/good/'), - http: expect.toMatchURL('http://good/'), - https: expect.toMatchURL('https://good/'), - ftp: expect.toMatchURL('ftp://good/'), - import: expect.toMatchURL('import:bad'), - javascript: expect.toMatchURL('javascript:bad'), - mailto: expect.toMatchURL('mailto:bad'), - wss: expect.toMatchURL('wss://bad/') - }, - [] - ); - }); - - it('should parse absolute URLs, ignoring unparseable ones', () => { - expectSpecifierMap( - `{ - "unparseable1": "https://ex ample.org/", - "unparseable2": "https://example.com:demo", - "unparseable3": "http://[www.example.com]/", - "invalidButParseable1": "https:example.org", - "invalidButParseable2": "https://///example.com///", - "prettyNormal": "https://example.net", - "percentDecoding": "https://ex%41mple.com/", - "noPercentDecoding": "https://example.com/%41" - }`, - 'https://base.example/path1/path2/path3', - { - invalidButParseable1: expect.toMatchURL('https://example.org/'), - invalidButParseable2: expect.toMatchURL('https://example.com///'), - prettyNormal: expect.toMatchURL('https://example.net/'), - percentDecoding: expect.toMatchURL('https://example.com/'), - noPercentDecoding: expect.toMatchURL('https://example.com/%41') - }, - [ - `Invalid address "https://ex ample.org/" for the specifier key "unparseable1".`, - `Invalid address "https://example.com:demo" for the specifier key "unparseable2".`, - `Invalid address "http://[www.example.com]/" for the specifier key "unparseable3".` - ] - ); - }); -}); - -describe('Failing addresses: mismatched trailing slashes', () => { - it('should warn for the simple case', () => { - expectSpecifierMap( - `{ - "trailer/": "/notrailer" - }`, - 'https://base.example/path1/path2/path3', - { - }, - [`Invalid address "https://base.example/notrailer" for package specifier key "trailer/". Package addresses must end with "/".`] - ); - }); -}); - -describe('Other invalid addresses', () => { - it('should ignore unprefixed strings that are not absolute URLs', () => { - for (const bad of ['bar', '\\bar', '~bar', '#bar', '?bar']) { - expectSpecifierMap( - `{ - "foo": ${JSON.stringify(bad)} - }`, - 'https://base.example/path1/path2/path3', - { - }, - [`Invalid address "${bad}" for the specifier key "foo".`] - ); - } - }); -});
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-schema.js b/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-schema.js deleted file mode 100644 index f60422ae..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-schema.js +++ /dev/null
@@ -1,99 +0,0 @@ -'use strict'; -const { parseFromString } = require('../lib/parser.js'); -const { expectBad, expectWarnings, expectSpecifierMap } = require('./helpers/parsing.js'); - -const nonObjectStrings = ['null', 'true', '1', '"foo"', '[]']; - -test('Invalid JSON', () => { - expect(() => parseFromString('{ imports: {} }', 'https://base.example/')).toThrow(SyntaxError); -}); - -describe('Mismatching the top-level schema', () => { - it('should throw for top-level non-objects', () => { - for (const nonObject of nonObjectStrings) { - expectBad(nonObject, 'https://base.example/'); - } - }); - - it('should throw if imports is a non-object', () => { - for (const nonObject of nonObjectStrings) { - expectBad(`{ "imports": ${nonObject} }`, 'https://base.example/'); - } - }); - - it('should throw if scopes is a non-object', () => { - for (const nonObject of nonObjectStrings) { - expectBad(`{ "scopes": ${nonObject} }`, 'https://base.example/'); - } - }); - - it('should ignore unspecified top-level entries', () => { - expectWarnings( - `{ - "imports": {}, - "new-feature": {}, - "scops": {} - }`, - 'https://base.example/', - { imports: {}, scopes: {} }, - [ - `Invalid top-level key "new-feature". Only "imports" and "scopes" can be present.`, - `Invalid top-level key "scops". Only "imports" and "scopes" can be present.` - ] - ); - }); -}); - -describe('Mismatching the specifier map schema', () => { - const invalidAddressStrings = ['null', 'true', '1', '{}', '[]', '["https://example.com/"]']; - - it('should ignore entries where the address is not a string', () => { - for (const invalid of invalidAddressStrings) { - expectSpecifierMap( - `{ - "foo": ${invalid}, - "bar": "https://example.com/" - }`, - 'https://base.example/', - { - bar: expect.toMatchURL('https://example.com/') - }, - [`Invalid address ${invalid} for the specifier key "foo". Addresses must be strings.`] - ); - } - }); - - it('should ignore entries where the specifier key is an empty string', () => { - expectSpecifierMap( - `{ - "": "https://example.com/" - }`, - 'https://base.example/', - {}, - [`Invalid empty string specifier key.`] - ); - }); - - it('should throw if a scope\'s value is not an object', () => { - for (const invalid of nonObjectStrings) { - expectBad(`{ "scopes": { "https://scope.example/": ${invalid} } }`, 'https://base.example/'); - } - }); -}); - -describe('Normalization', () => { - it('should normalize empty import maps to have imports and scopes keys', () => { - expect(parseFromString(`{}`, 'https://base.example/')) - .toEqual({ imports: {}, scopes: {} }); - }); - - it('should normalize an import map without imports to have imports', () => { - expect(parseFromString(`{ "scopes": {} }`, 'https://base.example/')) - .toEqual({ imports: {}, scopes: {} }); - }); - - it('should normalize an import map without scopes to have scopes', () => { - expect(parseFromString(`{ "imports": {} }`, 'https://base.example/')) - .toEqual({ imports: {}, scopes: {} }); - }); -});
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-scope-keys.js b/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-scope-keys.js deleted file mode 100644 index 4993f3a..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-scope-keys.js +++ /dev/null
@@ -1,144 +0,0 @@ -'use strict'; -const { expectScopes } = require('./helpers/parsing.js'); - -describe('Relative URL scope keys', () => { - it('should work with no prefix', () => { - expectScopes( - ['foo'], - 'https://base.example/path1/path2/path3', - ['https://base.example/path1/path2/foo'] - ); - }); - - it('should work with ./, ../, and / prefixes', () => { - expectScopes( - ['./foo', '../foo', '/foo'], - 'https://base.example/path1/path2/path3', - [ - 'https://base.example/path1/path2/foo', - 'https://base.example/path1/foo', - 'https://base.example/foo' - ] - ); - }); - - it('should work with /s, ?s, and #s', () => { - expectScopes( - ['foo/bar?baz#qux'], - 'https://base.example/path1/path2/path3', - ['https://base.example/path1/path2/foo/bar?baz#qux'] - ); - }); - - it('should work with an empty string scope key', () => { - expectScopes( - [''], - 'https://base.example/path1/path2/path3', - ['https://base.example/path1/path2/path3'] - ); - }); - - it('should work with / suffixes', () => { - expectScopes( - ['foo/', './foo/', '../foo/', '/foo/', '/foo//'], - 'https://base.example/path1/path2/path3', - [ - 'https://base.example/path1/path2/foo/', - 'https://base.example/path1/path2/foo/', - 'https://base.example/path1/foo/', - 'https://base.example/foo/', - 'https://base.example/foo//' - ] - ); - }); - - it('should deduplicate based on URL parsing rules', () => { - expectScopes( - ['foo/\\', 'foo//', 'foo\\\\'], - 'https://base.example/path1/path2/path3', - ['https://base.example/path1/path2/foo//'] - ); - }); -}); - -describe('Absolute URL scope keys', () => { - it('should accept all absolute URL scope keys, with or without fetch schemes', () => { - expectScopes( - [ - 'about:good', - 'blob:good', - 'data:good', - 'file:///good', - 'filesystem:http://example.com/good/', - 'http://good/', - 'https://good/', - 'ftp://good/', - 'import:bad', - 'mailto:bad', - 'javascript:bad', - 'wss:ba' - ], - 'https://base.example/path1/path2/path3', - [ - 'about:good', - 'blob:good', - 'data:good', - 'file:///good', - 'filesystem:http://example.com/good/', - 'http://good/', - 'https://good/', - 'ftp://good/', - 'import:bad', - 'mailto:bad', - 'javascript:bad', - 'wss://ba/' - ], - [] - ); - }); - - it('should parse absolute URL scope keys, ignoring unparseable ones', () => { - expectScopes( - [ - 'https://ex ample.org/', - 'https://example.com:demo', - 'http://[www.example.com]/', - 'https:example.org', - 'https://///example.com///', - 'https://example.net', - 'https://ex%41mple.com/foo/', - 'https://example.com/%41' - ], - 'https://base.example/path1/path2/path3', - [ - 'https://base.example/path1/path2/example.org', // tricky case! remember we have a base URL - 'https://example.com///', - 'https://example.net/', - 'https://example.com/foo/', - 'https://example.com/%41' - ], - [ - 'Invalid scope "https://ex ample.org/" (parsed against base URL "https://base.example/path1/path2/path3").', - 'Invalid scope "https://example.com:demo" (parsed against base URL "https://base.example/path1/path2/path3").', - 'Invalid scope "http://[www.example.com]/" (parsed against base URL "https://base.example/path1/path2/path3").' - ] - ); - }); - - it('should ignore relative URL scope keys when the base URL is a data: URL', () => { - expectScopes( - [ - './foo', - '../foo', - '/foo' - ], - 'data:text/html,test', - [], - [ - 'Invalid scope "./foo" (parsed against base URL "data:text/html,test").', - 'Invalid scope "../foo" (parsed against base URL "data:text/html,test").', - 'Invalid scope "/foo" (parsed against base URL "data:text/html,test").' - ] - ); - }); -});
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-specifier-keys.js b/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-specifier-keys.js deleted file mode 100644 index 7ac24bf8..0000000 --- a/third_party/blink/web_tests/external/wpt/import-maps/imported/resources/parsing-specifier-keys.js +++ /dev/null
@@ -1,164 +0,0 @@ -'use strict'; -const { expectSpecifierMap } = require('./helpers/parsing.js'); - -describe('Relative URL-like specifier keys', () => { - it('should absolutize strings prefixed with ./, ../, or / into the corresponding URLs', () => { - expectSpecifierMap( - `{ - "./foo": "/dotslash", - "../foo": "/dotdotslash", - "/foo": "/slash" - }`, - 'https://base.example/path1/path2/path3', - { - 'https://base.example/path1/path2/foo': expect.toMatchURL('https://base.example/dotslash'), - 'https://base.example/path1/foo': expect.toMatchURL('https://base.example/dotdotslash'), - 'https://base.example/foo': expect.toMatchURL('https://base.example/slash') - } - ); - }); - - it('should not absolutize strings prefixed with ./, ../, or / with a data: URL base', () => { - expectSpecifierMap( - `{ - "./foo": "https://example.com/dotslash", - "../foo": "https://example.com/dotdotslash", - "/foo": "https://example.com/slash" - }`, - 'data:text/html,test', - { - './foo': expect.toMatchURL('https://example.com/dotslash'), - '../foo': expect.toMatchURL('https://example.com/dotdotslash'), - '/foo': expect.toMatchURL('https://example.com/slash') - } - ); - }); - - it('should absolutize the literal strings ./, ../, or / with no suffix', () => { - expectSpecifierMap( - `{ - "./": "/dotslash/", - "../": "/dotdotslash/", - "/": "/slash/" - }`, - 'https://base.example/path1/path2/path3', - { - 'https://base.example/path1/path2/': expect.toMatchURL('https://base.example/dotslash/'), - 'https://base.example/path1/': expect.toMatchURL('https://base.example/dotdotslash/'), - 'https://base.example/': expect.toMatchURL('https://base.example/slash/') - } - ); - }); - - it('should treat percent-encoded variants of ./, ../, or / as bare specifiers', () => { - expectSpecifierMap( - `{ - "%2E/": "/dotSlash1/", - "%2E%2E/": "/dotDotSlash1/", - ".%2F": "/dotSlash2", - "..%2F": "/dotDotSlash2", - "%2F": "/slash2", - "%2E%2F": "/dotSlash3", - "%2E%2E%2F": "/dotDotSlash3" - }`, - 'https://base.example/path1/path2/path3', - { - '%2E/': expect.toMatchURL('https://base.example/dotSlash1/'), - '%2E%2E/': expect.toMatchURL('https://base.example/dotDotSlash1/'), - '.%2F': expect.toMatchURL('https://base.example/dotSlash2'), - '..%2F': expect.toMatchURL('https://base.example/dotDotSlash2'), - '%2F': expect.toMatchURL('https://base.example/slash2'), - '%2E%2F': expect.toMatchURL('https://base.example/dotSlash3'), - '%2E%2E%2F': expect.toMatchURL('https://base.example/dotDotSlash3') - } - ); - }); -}); - -describe('Absolute URL specifier keys', () => { - it('Accept all absolute URL specifier keys even with fetch schemes as URLs', () => { - expectSpecifierMap( - `{ - "about:good": "/about", - "blob:good": "/blob", - "data:good": "/data", - "file:///good": "/file", - "filesystem:http://example.com/good/": "/filesystem/", - "http://good/": "/http/", - "https://good/": "/https/", - "ftp://good/": "/ftp/", - "import:bad": "/import", - "mailto:bad": "/mailto", - "javascript:bad": "/javascript", - "wss:bad": "/wss" - }`, - 'https://base.example/path1/path2/path3', - { - 'about:good': expect.toMatchURL('https://base.example/about'), - 'blob:good': expect.toMatchURL('https://base.example/blob'), - 'data:good': expect.toMatchURL('https://base.example/data'), - 'file:///good': expect.toMatchURL('https://base.example/file'), - 'filesystem:http://example.com/good/': expect.toMatchURL('https://base.example/filesystem/'), - 'http://good/': expect.toMatchURL('https://base.example/http/'), - 'https://good/': expect.toMatchURL('https://base.example/https/'), - 'ftp://good/': expect.toMatchURL('https://base.example/ftp/'), - 'import:bad': expect.toMatchURL('https://base.example/import'), - 'mailto:bad': expect.toMatchURL('https://base.example/mailto'), - 'javascript:bad': expect.toMatchURL('https://base.example/javascript'), - 'wss://bad/': expect.toMatchURL('https://base.example/wss') - } - ); - }); - - it('should parse absolute URLs, treating unparseable ones as bare specifiers', () => { - expectSpecifierMap( - `{ - "https://ex ample.org/": "/unparseable1/", - "https://example.com:demo": "/unparseable2", - "http://[www.example.com]/": "/unparseable3/", - "https:example.org": "/invalidButParseable1/", - "https://///example.com///": "/invalidButParseable2/", - "https://example.net": "/prettyNormal/", - "https://ex%41mple.com/": "/percentDecoding/", - "https://example.com/%41": "/noPercentDecoding" - }`, - 'https://base.example/path1/path2/path3', - { - 'https://ex ample.org/': expect.toMatchURL('https://base.example/unparseable1/'), - 'https://example.com:demo': expect.toMatchURL('https://base.example/unparseable2'), - 'http://[www.example.com]/': expect.toMatchURL('https://base.example/unparseable3/'), - 'https://example.org/': expect.toMatchURL('https://base.example/invalidButParseable1/'), - 'https://example.com///': expect.toMatchURL('https://base.example/invalidButParseable2/'), - 'https://example.net/': expect.toMatchURL('https://base.example/prettyNormal/'), - 'https://example.com/': expect.toMatchURL('https://base.example/percentDecoding/'), - 'https://example.com/%41': expect.toMatchURL('https://base.example/noPercentDecoding') - } - ); - }); - - it('should sort correctly (issue #181)', () => { - expectSpecifierMap( - `{ - "https://example.com/aaa": "https://example.com/aaa", - "https://example.com/a": "https://example.com/a" - }`, - 'https://base.example/', - { - 'https://example.com/aaa': expect.toMatchURL('https://example.com/aaa'), - 'https://example.com/a': expect.toMatchURL('https://example.com/a') - } - ); - - expectSpecifierMap( - `{ - "https://example.com/a": "https://example.com/a", - "https://example.com/aaa": "https://example.com/aaa" - }`, - 'https://base.example/', - { - 'https://example.com/aaa': expect.toMatchURL('https://example.com/aaa'), - 'https://example.com/a': expect.toMatchURL('https://example.com/a') - } - ); - }); -});
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt index b5ee241..0e9f4d3 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 330 tests; 295 PASS, 35 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 330 tests; 315 PASS, 15 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS onabort: must be on the appropriate locations for GlobalEventHandlers PASS onabort: the default value must be null PASS onabort: the content attribute must be compiled into a function as the corresponding property @@ -310,25 +310,25 @@ PASS onwaiting: the content attribute must be compiled into a function as the corresponding property PASS onwaiting: dynamic changes on the attribute PASS onwaiting: dispatching an Event at a <math> element must trigger element.onwaiting -FAIL onwebkitanimationend: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onwebkitanimationend" expected true got false -FAIL onwebkitanimationend: the default value must be null assert_equals: The default value of the property is null for a MathMLElement instance expected (object) null but got (undefined) undefined -FAIL onwebkitanimationend: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkitanimationend property must be a function expected "function" but got "undefined" -FAIL onwebkitanimationend: dynamic changes on the attribute assert_equals: The onwebkitanimationend property must be null (no attribute) expected (object) null but got (undefined) undefined -FAIL onwebkitanimationend: dispatching an Event at a <math> element must trigger element.onwebkitanimationend assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined -FAIL onwebkitanimationiteration: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onwebkitanimationiteration" expected true got false -FAIL onwebkitanimationiteration: the default value must be null assert_equals: The default value of the property is null for a MathMLElement instance expected (object) null but got (undefined) undefined -FAIL onwebkitanimationiteration: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkitanimationiteration property must be a function expected "function" but got "undefined" -FAIL onwebkitanimationiteration: dynamic changes on the attribute assert_equals: The onwebkitanimationiteration property must be null (no attribute) expected (object) null but got (undefined) undefined -FAIL onwebkitanimationiteration: dispatching an Event at a <math> element must trigger element.onwebkitanimationiteration assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined -FAIL onwebkitanimationstart: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onwebkitanimationstart" expected true got false -FAIL onwebkitanimationstart: the default value must be null assert_equals: The default value of the property is null for a MathMLElement instance expected (object) null but got (undefined) undefined -FAIL onwebkitanimationstart: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkitanimationstart property must be a function expected "function" but got "undefined" -FAIL onwebkitanimationstart: dynamic changes on the attribute assert_equals: The onwebkitanimationstart property must be null (no attribute) expected (object) null but got (undefined) undefined -FAIL onwebkitanimationstart: dispatching an Event at a <math> element must trigger element.onwebkitanimationstart assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined -FAIL onwebkittransitionend: must be on the appropriate locations for GlobalEventHandlers assert_true: MathMLElement has an own property named "onwebkittransitionend" expected true got false -FAIL onwebkittransitionend: the default value must be null assert_equals: The default value of the property is null for a MathMLElement instance expected (object) null but got (undefined) undefined -FAIL onwebkittransitionend: the content attribute must be compiled into a function as the corresponding property assert_equals: The onwebkittransitionend property must be a function expected "function" but got "undefined" -FAIL onwebkittransitionend: dynamic changes on the attribute assert_equals: The onwebkittransitionend property must be null (no attribute) expected (object) null but got (undefined) undefined -FAIL onwebkittransitionend: dispatching an Event at a <math> element must trigger element.onwebkittransitionend assert_equals: The event must be fired at the <math> element expected (object) Element node <math></math> but got (undefined) undefined +PASS onwebkitanimationend: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkitanimationend: the default value must be null +PASS onwebkitanimationend: the content attribute must be compiled into a function as the corresponding property +PASS onwebkitanimationend: dynamic changes on the attribute +PASS onwebkitanimationend: dispatching an Event at a <math> element must trigger element.onwebkitanimationend +PASS onwebkitanimationiteration: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkitanimationiteration: the default value must be null +PASS onwebkitanimationiteration: the content attribute must be compiled into a function as the corresponding property +PASS onwebkitanimationiteration: dynamic changes on the attribute +PASS onwebkitanimationiteration: dispatching an Event at a <math> element must trigger element.onwebkitanimationiteration +PASS onwebkitanimationstart: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkitanimationstart: the default value must be null +PASS onwebkitanimationstart: the content attribute must be compiled into a function as the corresponding property +PASS onwebkitanimationstart: dynamic changes on the attribute +PASS onwebkitanimationstart: dispatching an Event at a <math> element must trigger element.onwebkitanimationstart +PASS onwebkittransitionend: must be on the appropriate locations for GlobalEventHandlers +PASS onwebkittransitionend: the default value must be null +PASS onwebkittransitionend: the content attribute must be compiled into a function as the corresponding property +PASS onwebkittransitionend: dynamic changes on the attribute +PASS onwebkittransitionend: dispatching an Event at a <math> element must trigger element.onwebkittransitionend Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative.html index d77aa57..7bbdee2 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative.html +++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative.html
@@ -10,6 +10,16 @@ <script> "use strict"; + + // The prefixed animation events are special; their event types are + // camel-case. + const prefixedAnimationAttributeToEventType = new Map([ + ["webkitanimationend", "webkitAnimationEnd"], + ["webkitanimationiteration", "webkitAnimationIteration"], + ["webkitanimationstart", "webkitAnimationStart"], + ["webkittransitionend", "webkitTransitionEnd"], + ]); + setup({ explicit_done: true }); // basic pattern lifted from /html/webappapis/scripting/events/event-handler-all-global-events.html @@ -131,7 +141,11 @@ ); let target = undefined; element[name] = (e) => { target = e.currentTarget; } - element.dispatchEvent(new Event(withoutOn)); + let eventType = withoutOn; + if (prefixedAnimationAttributeToEventType.has(eventType)) { + eventType = prefixedAnimationAttributeToEventType.get(eventType); + } + element.dispatchEvent(new Event(eventType)); assert_equals(target, element, "The event must be fired at the <math> element"); }, `${name}: dispatching an Event at a <math> element must trigger element.${name}`); }
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt index 3ee7bf7..13ab0de 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt
@@ -3,5 +3,6 @@ PASS createOffer() and then setLocalDescription() should succeed PASS createOffer() after connection is closed should reject with InvalidStateError FAIL When media stream is added when createOffer() is running in parallel, the result offer should contain the new media stream assert_equals: Expect m=audio line to be found in offer SDP expected 1 but got 0 +FAIL createOffer() should fail when signaling state is not stable or have-local-offer assert_unreached: Should have rejected: undefined Reached unreachable code Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer.html index c56d45280..bfd27df 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-createOffer.html
@@ -49,7 +49,7 @@ return generateVideoReceiveOnlyOffer(pc) .then(offer => - pc.setLocalDescription(offer) + pc.setLocalDescription(offer) .then(() => { assert_equals(pc.signalingState, 'have-local-offer'); assert_session_desc_similar(pc.localDescription, offer); @@ -94,6 +94,26 @@ }, 'When media stream is added when createOffer() is running in parallel, the result offer should contain the new media stream'); /* + If connection's signaling state is neither "stable" nor "have-local-offer", return a promise rejected with a newly created InvalidStateError. + */ + promise_test(t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const states = []; + pc.addEventListener('signalingstatechange', () => states.push(pc.signalingState)); + + return generateVideoReceiveOnlyOffer(pc) + .then(offer => + pc.setRemoteDescription(offer) + .then(() => { + assert_equals(pc.signalingState, 'have-remote-offer'); + return promise_rejects(t, 'InvalidStateError', + pc.createOffer()); + }) + ) + }, 'createOffer() should fail when signaling state is not stable or have-local-offer'); + /* * TODO * 4.3.2 createOffer * 3. If connection is configured with an identity provider, and an identity
diff --git a/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-choose-default-value-after-set-value.html b/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-choose-default-value-after-set-value.html index 5763e5f..d7e3632 100644 --- a/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-choose-default-value-after-set-value.html +++ b/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-choose-default-value-after-set-value.html
@@ -37,13 +37,16 @@ eventSender.keyDown('ArrowLeft'); removeCommitDelay(); eventSender.keyDown('Enter'); - shouldBeEqualToString('input.value', '2000-01-02'); + waitUntilClosing(() => { + shouldBeEqualToString('input.value', '2000-01-02'); - shouldBe('eventsCounter.input', '1'); - shouldBe('eventsCounter.change', '1'); + shouldBe('eventsCounter.input', '1'); + shouldBe('eventsCounter.change', '1'); - finishJSTest(); + finishJSTest(); + }); } + </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-events.html b/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-events.html index 173171f..f8156f8 100644 --- a/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-events.html +++ b/third_party/blink/web_tests/fast/forms/calendar-picker/date-picker-events.html
@@ -32,13 +32,15 @@ debug('Choosing a new value from the calendar picker. "input" and "change" events should be dispatched in this order.'); removeCommitDelay(); eventSender.keyDown('Enter'); - shouldBeEqualToString('date1.value', '2000-01-03'); - shouldBe('eventsCounter.input', '1'); - shouldBe('eventsCounter.change', '1'); - - eventsCounter = {}; waitUntilClosing(function() { + shouldBeEqualToString('date1.value', '2000-01-03'); + + shouldBe('eventsCounter.input', '1'); + shouldBe('eventsCounter.change', '1'); + + eventsCounter = {}; + openPicker(date1, test2); }); } @@ -46,12 +48,16 @@ function test2() { debug('Choosing the same value from the calendar picker. No events should be dispatched.'); eventSender.keyDown('Enter'); - shouldBeEqualToString('date1.value', '2000-01-03'); - shouldBeUndefined('eventsCounter.input'); - shouldBeUndefined('eventsCounter.change'); - finishJSTest(); + waitUntilClosing(function() { + shouldBeEqualToString('date1.value', '2000-01-03'); + shouldBeUndefined('eventsCounter.input'); + shouldBeUndefined('eventsCounter.change'); + + finishJSTest(); + }); } + </script> </body> </html>
diff --git a/third_party/blink/web_tests/fast/forms/calendar-picker/datetimelocal-picker-choose-default-value-after-set-value.html b/third_party/blink/web_tests/fast/forms/calendar-picker/datetimelocal-picker-choose-default-value-after-set-value.html index 9edaf923..803997c 100644 --- a/third_party/blink/web_tests/fast/forms/calendar-picker/datetimelocal-picker-choose-default-value-after-set-value.html +++ b/third_party/blink/web_tests/fast/forms/calendar-picker/datetimelocal-picker-choose-default-value-after-set-value.html
@@ -37,12 +37,14 @@ eventSender.keyDown('ArrowLeft'); removeCommitDelay(); eventSender.keyDown('Enter'); - shouldBeEqualToString('input.value', '2000-01-01T17:49'); + waitUntilClosing(() => { + shouldBeEqualToString('input.value', '2000-01-01T17:49'); - shouldBe('eventsCounter.input', '1'); - shouldBe('eventsCounter.change', '1'); + shouldBe('eventsCounter.input', '1'); + shouldBe('eventsCounter.change', '1'); - finishJSTest(); + finishJSTest(); + }); } </script> </body>
diff --git a/third_party/blink/web_tests/fast/forms/calendar-picker/month-picker-choose-default-value-after-set-value.html b/third_party/blink/web_tests/fast/forms/calendar-picker/month-picker-choose-default-value-after-set-value.html index 28e5dd7b..2d9f7ef 100644 --- a/third_party/blink/web_tests/fast/forms/calendar-picker/month-picker-choose-default-value-after-set-value.html +++ b/third_party/blink/web_tests/fast/forms/calendar-picker/month-picker-choose-default-value-after-set-value.html
@@ -37,12 +37,15 @@ eventSender.keyDown('ArrowLeft'); removeCommitDelay(); eventSender.keyDown('Enter'); - shouldBeEqualToString('input.value', '2000-01'); - shouldBe('eventsCounter.input', '1'); - shouldBe('eventsCounter.change', '1'); + waitUntilClosing(() => { + shouldBeEqualToString('input.value', '2000-01'); - finishJSTest(); + shouldBe('eventsCounter.input', '1'); + shouldBe('eventsCounter.change', '1'); + + finishJSTest(); + }); } </script> </body>
diff --git a/third_party/blink/web_tests/fast/forms/calendar-picker/resources/calendar-picker-common.js b/third_party/blink/web_tests/fast/forms/calendar-picker/resources/calendar-picker-common.js index e7c0ebe..0332f7b 100644 --- a/third_party/blink/web_tests/fast/forms/calendar-picker/resources/calendar-picker-common.js +++ b/third_party/blink/web_tests/fast/forms/calendar-picker/resources/calendar-picker-common.js
@@ -106,36 +106,6 @@ eventSender.mouseUp(); } -function hoverOverSubmitTimeButton() { - skipAnimation(); - var submitButton = popupWindow.global.picker.submissionControls.submitButton; - var offset = cumulativeOffset(submitButton); - var x = offset[0] + submitButton.offsetWidth / 2; - var y = offset[1] + submitButton.offsetHeight / 2; - eventSender.mouseMoveTo(x, y); -} - -function clickSubmitTimeButton() { - hoverOverSubmitTimeButton(); - eventSender.mouseDown(); - eventSender.mouseUp(); -} - -function hoverOverCancelTimeButton() { - skipAnimation(); - var cancelButton = popupWindow.global.picker.submissionControls.cancelButton; - var offset = cumulativeOffset(cancelButton); - var x = offset[0] + cancelButton.offsetWidth / 2; - var y = offset[1] + cancelButton.offsetHeight / 2; - eventSender.mouseMoveTo(x, y); -} - -function clickCancelTimeButton() { - hoverOverCancelTimeButton(); - eventSender.mouseDown(); - eventSender.mouseUp(); -} - function highlightedMonthButton() { skipAnimation(); var year = popupWindow.global.picker.monthPopupView.yearListView.selectedRow + 1;
diff --git a/third_party/blink/web_tests/fast/forms/calendar-picker/week-picker-choose-default-value-after-set-value.html b/third_party/blink/web_tests/fast/forms/calendar-picker/week-picker-choose-default-value-after-set-value.html index 61fe9a2..0bd0a0a 100644 --- a/third_party/blink/web_tests/fast/forms/calendar-picker/week-picker-choose-default-value-after-set-value.html +++ b/third_party/blink/web_tests/fast/forms/calendar-picker/week-picker-choose-default-value-after-set-value.html
@@ -37,12 +37,15 @@ eventSender.keyDown('ArrowLeft'); removeCommitDelay(); eventSender.keyDown('Enter'); - shouldBeEqualToString('input.value', '2000-W01'); - shouldBe('eventsCounter.input', '1'); - shouldBe('eventsCounter.change', '1'); + waitUntilClosing(() => { + shouldBeEqualToString('input.value', '2000-W01'); - finishJSTest(); + shouldBe('eventsCounter.input', '1'); + shouldBe('eventsCounter.change', '1'); + + finishJSTest(); + }) } </script> </body>
diff --git a/third_party/blink/web_tests/fast/forms/resources/picker-common.js b/third_party/blink/web_tests/fast/forms/resources/picker-common.js index 9444002..016a3ce 100644 --- a/third_party/blink/web_tests/fast/forms/resources/picker-common.js +++ b/third_party/blink/web_tests/fast/forms/resources/picker-common.js
@@ -51,7 +51,8 @@ return new Promise(function(resolve, reject) { popupWindow = openPickerHelper(element); if (popupWindow) { - popupWindow.addEventListener("didOpenPicker", resolve, false); + popupOpenCallback = resolve; + popupWindow.addEventListener("didOpenPicker", popupOpenCallbackWrapper, false); } else { reject(); }
diff --git a/third_party/blink/web_tests/fast/scrolling/scrollbar-mousedown-move-mouseup.html b/third_party/blink/web_tests/fast/scrolling/scrollbars/scrollbar-mousedown-move-mouseup.html similarity index 92% rename from third_party/blink/web_tests/fast/scrolling/scrollbar-mousedown-move-mouseup.html rename to third_party/blink/web_tests/fast/scrolling/scrollbars/scrollbar-mousedown-move-mouseup.html index e6347757..11f0ba8 100644 --- a/third_party/blink/web_tests/fast/scrolling/scrollbar-mousedown-move-mouseup.html +++ b/third_party/blink/web_tests/fast/scrolling/scrollbars/scrollbar-mousedown-move-mouseup.html
@@ -1,7 +1,7 @@ <!DOCTYPE html> -<script src='../../resources/testharness.js'></script> -<script src='../../resources/testharnessreport.js'></script> -<script src='../../resources/gesture-util.js'></script> +<script src='../../../resources/testharness.js'></script> +<script src='../../../resources/testharnessreport.js'></script> +<script src='../../../resources/gesture-util.js'></script> <style> #scrollme,
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/argument-hints-expected.txt b/third_party/blink/web_tests/http/tests/devtools/console/argument-hints-expected.txt index bbb29de7..c223239 100644 --- a/third_party/blink/web_tests/http/tests/devtools/console/argument-hints-expected.txt +++ b/third_party/blink/web_tests/http/tests/devtools/console/argument-hints-expected.txt
@@ -10,7 +10,7 @@ ...data const process = window.setTimeout( -handler,?timeout,...arguments +callback,ms,...args document.body.addEventListener( type,listener,?options
diff --git a/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements.js b/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements.js index 2f6859dc..1d76c5fd 100644 --- a/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements.js +++ b/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements.js
@@ -64,6 +64,7 @@ function addMarkerRule() { + document.styleSheets[0].addRule("#inspected", "display: list-item"); document.styleSheets[0].addRule("#inspected::marker", "content: \\"MARKER\\""); } @@ -123,7 +124,7 @@ }, function removeMarker(next) { - executeAndDumpTree('removeLastRule()', SDK.DOMModel.Events.NodeRemoved, next); + executeAndDumpTree('removeLastRule(); removeLastRule()', SDK.DOMModel.Events.NodeRemoved, next); }, function addAfter(next) {
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/server-timing-expected.txt b/third_party/blink/web_tests/http/tests/devtools/network/server-timing-expected.txt deleted file mode 100644 index 27c5eb7..0000000 --- a/third_party/blink/web_tests/http/tests/devtools/network/server-timing-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -Tests that server-timing headers are parsed correctly. - -Tests ran to completion. - -
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/server-timing.js b/third_party/blink/web_tests/http/tests/devtools/network/server-timing.js deleted file mode 100644 index 9046853..0000000 --- a/third_party/blink/web_tests/http/tests/devtools/network/server-timing.js +++ /dev/null
@@ -1,146 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -(async function() { - TestRunner.addResult('Tests that server-timing headers are parsed correctly.\n'); - - function testServerTimingHeader(headerValue, expectedResults) { - var actualResults = SDK.ServerTiming.createFromHeaderValue(headerValue) - if (JSON.stringify(actualResults) !== JSON.stringify(expectedResults)) { - TestRunner.addResult('Test failure header=' + headerValue) - TestRunner.addResult(' expected=' + JSON.stringify(expectedResults)) - TestRunner.addResult(' actual=' + JSON.stringify(actualResults)) - } - } - - testServerTimingHeader("", []); - - // name only - testServerTimingHeader("metric", [{"name":"metric"}]); - - // name and duration - testServerTimingHeader("metric;dur=123.4", [{"name":"metric","dur":123.4}]); - testServerTimingHeader("metric;dur=\"123.4\"", [{"name":"metric","dur":123.4}]); - - // name and description - testServerTimingHeader("metric;desc=description", [{"name":"metric","desc":"description"}]); - testServerTimingHeader("metric;desc=\"description\"", [{"name":"metric","desc":"description"}]); - - // name, duration, and description - testServerTimingHeader("metric;dur=123.4;desc=description", [{"name":"metric","dur":123.4,"desc":"description"}]); - testServerTimingHeader("metric;desc=description;dur=123.4", [{"name":"metric","desc":"description","dur":123.4}]); - - // special chars in name - testServerTimingHeader("aB3!#$%&'*+-.^_`|~", [{"name":"aB3!#$%&'*+-.^_`|~"}]) - - // spaces - testServerTimingHeader("metric ; ", [{"name":"metric"}]); - testServerTimingHeader("metric , ", [{"name":"metric"}]); - testServerTimingHeader("metric ; dur = 123.4 ; desc = description", [{"name":"metric","dur":123.4,"desc":"description"}]); - testServerTimingHeader("metric ; desc = description ; dur = 123.4", [{"name":"metric","desc":"description","dur":123.4}]); - testServerTimingHeader("metric;desc = \"description\"", [{"name":"metric","desc":"description"}]); - - // tabs - testServerTimingHeader("metric\t;\t", [{"name":"metric"}]); - testServerTimingHeader("metric\t,\t", [{"name":"metric"}]); - testServerTimingHeader("metric\t;\tdur\t=\t123.4\t;\tdesc\t=\tdescription", [{"name":"metric","dur":123.4,"desc":"description"}]); - testServerTimingHeader("metric\t;\tdesc\t=\tdescription\t;\tdur\t=\t123.4", [{"name":"metric","desc":"description","dur":123.4}]); - testServerTimingHeader("metric;desc\t=\t\"description\"", [{"name":"metric","desc":"description"}]); - - // multiple entries - testServerTimingHeader("metric1;dur=12.3;desc=description1,metric2;dur=45.6;desc=description2,metric3;dur=78.9;desc=description3", [{"name":"metric1","dur":12.3,"desc":"description1"}, {"name":"metric2","dur":45.6,"desc":"description2"}, {"name":"metric3","dur":78.9,"desc":"description3"}]); - testServerTimingHeader("metric1,metric2 ,metric3, metric4 , metric5", [{"name":"metric1"}, {"name":"metric2"}, {"name":"metric3"}, {"name":"metric4"}, {"name":"metric5"}]); - - // quoted-strings - happy path - testServerTimingHeader("metric;desc=\"description\"", [{"name":"metric","desc":"description"}]); - testServerTimingHeader("metric;desc=\"\t description \t\"", [{"name":"metric","desc":"\t description \t"}]); - testServerTimingHeader("metric;desc=\"descr\\\"iption\"", [{"name":"metric","desc":"descr\"iption"}]); - - // quoted-strings - others - testServerTimingHeader("metric;desc=\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\\\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\"\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\\\\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\\\"\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"\\\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\\\"\"\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\\\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\\\\\"", [{"name":"metric","desc":"\\"}]); - testServerTimingHeader("metric;desc=\"\\\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\\\"\"", [{"name":"metric","desc":"\""}]); - testServerTimingHeader("metric;desc=\"\"\\\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\"\\\"", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\"\"\\", [{"name":"metric","desc":""}]); - testServerTimingHeader("metric;desc=\"\"\"\"", [{"name":"metric","desc":""}]); - - // duplicate entry names - testServerTimingHeader("metric;dur=12.3;desc=description1,metric;dur=45.6;desc=description2", [{"name":"metric","dur":12.3,"desc":"description1"}, {"name":"metric","dur":45.6,"desc":"description2"}]); - - // param name case sensitivity - testServerTimingHeader("metric;DuR=123.4;DeSc=description", [{"name":"metric","dur":123.4,"desc":"description"}]); - - // non-numeric durations - testServerTimingHeader("metric;dur=foo", [{"name":"metric","dur":0}]); - testServerTimingHeader("metric;dur=\"foo\"", [{"name":"metric","dur":0}]); - - // unrecognized param names - testServerTimingHeader("metric1;foo=bar;desc=description;foo=bar;dur=123.4;foo=bar,metric2", [{"name":"metric1","desc":"description","dur":123.4}, {"name":"metric2"}]); - - // duplicate param names - testServerTimingHeader("metric;dur=123.4;dur=567.8", [{"name":"metric","dur":123.4}]); - testServerTimingHeader("metric;dur=foo;dur=567.8", [{"name":"metric","dur":0}]); - testServerTimingHeader("metric;desc=description1;desc=description2", [{"name":"metric","desc":"description1"}]); - - // incomplete params - testServerTimingHeader("metric;dur;dur=123.4;desc=description", [{"name":"metric","dur":0,"desc":"description"}]); - testServerTimingHeader("metric;dur=;dur=123.4;desc=description", [{"name":"metric","dur":0,"desc":"description"}]); - testServerTimingHeader("metric;desc;desc=description;dur=123.4", [{"name":"metric","desc":"","dur":123.4}]); - testServerTimingHeader("metric;desc=;desc=description;dur=123.4", [{"name":"metric","desc":"","dur":123.4}]); - - // extraneous characters after param value as token - testServerTimingHeader("metric;desc=d1 d2;dur=123.4", [{"name":"metric","desc":"d1","dur":123.4}]); - testServerTimingHeader("metric1;desc=d1 d2,metric2", [{"name":"metric1","desc":"d1"},{"name":"metric2"}]); - - // extraneous characters after param value as quoted-string - testServerTimingHeader("metric;desc=\"d1\" d2;dur=123.4", [{"name":"metric","desc":"d1","dur":123.4}]); - testServerTimingHeader("metric1;desc=\"d1\" d2,metric2", [{"name":"metric1","desc":"d1"},{"name":"metric2"}]); - - // nonsense - extraneous characters after entry name token - testServerTimingHeader("metric== \"\"foo;dur=123.4", [{"name":"metric"}]); - testServerTimingHeader("metric1== \"\"foo,metric2", [{"name":"metric1"}]); - - // nonsense - extraneous characters after param name token - testServerTimingHeader("metric;dur foo=12", [{"name":"metric","dur":0}]); - testServerTimingHeader("metric;foo dur=12", [{"name":"metric"}]); - - // nonsense - return zero entries - testServerTimingHeader(" ", []); - testServerTimingHeader("=", []); - testServerTimingHeader(";", []); - testServerTimingHeader(",", []); - testServerTimingHeader("=;", []); - testServerTimingHeader(";=", []); - testServerTimingHeader("=,", []); - testServerTimingHeader(",=", []); - testServerTimingHeader(";,", []); - testServerTimingHeader(",;", []); - - TestRunner.addResult('Tests ran to completion.\n'); - TestRunner.completeTest(); -})();
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoint-in-collected-function.js b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoint-in-collected-function.js index 48b3417..5ad1bdd 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoint-in-collected-function.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-breakpoints/breakpoint-in-collected-function.js
@@ -24,25 +24,18 @@ .map(model => model.collectGarbage())); TestRunner.addResult('set breakpoint inside function foo and dump it..'); - let sourceFrame = await new Promise( - resolve => SourcesTestRunner.showScriptSource('foo.js', resolve)); - SourcesTestRunner.toggleBreakpoint(sourceFrame, 1, false); - await new Promise( - resolve => TestRunner.addSniffer( - Sources.DebuggerPlugin.prototype, '_breakpointWasSetForTest', - resolve)); + let sourceFrame = await SourcesTestRunner.showScriptSourcePromise('foo.js'); + await SourcesTestRunner.createNewBreakpoint(sourceFrame, 1, '', true); await SourcesTestRunner.dumpDebuggerPluginBreakpoints(sourceFrame); TestRunner.addResult( 'run script again, dump pause location and inline breakpoints..'); + let inlineBreakpointsReady = SourcesTestRunner.waitDebuggerPluginBreakpoints(); TestRunner.evaluateInPageAnonymously(script); - let inlineBreakpointsReady = - SourcesTestRunner.waitDebuggerPluginBreakpoints(); let callFrames = await SourcesTestRunner.waitUntilPausedPromise(); SourcesTestRunner.captureStackTrace(callFrames); - sourceFrame = await new Promise( - resolve => SourcesTestRunner.showScriptSource('foo.js', resolve)); + sourceFrame = await SourcesTestRunner.showScriptSourcePromise('foo.js'); await inlineBreakpointsReady; await SourcesTestRunner.dumpDebuggerPluginBreakpoints(sourceFrame);
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/source-frame-toolbar-items.js b/third_party/blink/web_tests/http/tests/devtools/sources/source-frame-toolbar-items.js index 9019746..6656e67d 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/source-frame-toolbar-items.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/source-frame-toolbar-items.js
@@ -18,19 +18,19 @@ } //# sourceURL=foo.js`); - SourcesTestRunner.runTestFunctionAndWaitUntilPausedPromise(); + await SourcesTestRunner.runTestFunctionAndWaitUntilPausedPromise(); await TestRunner.addSnifferPromise( Sources.ScriptOriginPlugin.prototype, 'rightToolbarItems'); TestRunner.addResult('Items for foo.js:'); - dumpToolbarItems(Sources.SourcesPanel.instance().visibleView); + await dumpToolbarItems(Sources.SourcesPanel.instance().visibleView); TestRunner.addResult('Items for test.js:'); - dumpToolbarItems(await SourcesTestRunner.showScriptSourcePromise('test.js')); + await dumpToolbarItems(await SourcesTestRunner.showScriptSourcePromise('test.js')); SourcesTestRunner.completeDebuggerTest(); - function dumpToolbarItems(sourceFrame) { - const items = sourceFrame.syncToolbarItems(); + async function dumpToolbarItems(sourceFrame) { + const items = await sourceFrame.toolbarItems(); for (let item of items) TestRunner.addResult(item.element.deepTextContent()); }
diff --git a/third_party/blink/web_tests/http/tests/devtools/unit/list-model-expected.txt b/third_party/blink/web_tests/http/tests/devtools/unit/list-model-expected.txt deleted file mode 100644 index a078ea0c..0000000 --- a/third_party/blink/web_tests/http/tests/devtools/unit/list-model-expected.txt +++ /dev/null
@@ -1,46 +0,0 @@ -Test ListModel API. -Adding 0, 1, 2 -Replaced [] at index 0 with [0, 1, 2] -Resulting list: [0, 1, 2] - -Replacing 0 with 5, 6, 7 -Replaced [0] at index 0 with [5, 6, 7] -Resulting list: [5, 6, 7, 1, 2] - -Pushing 10 -Replaced [] at index 5 with [10] -Resulting list: [5, 6, 7, 1, 2, 10] - -Popping 10 -Replaced [10] at index 5 with [] -Resulting list: [5, 6, 7, 1, 2] - -Removing 2 -Replaced [2] at index 4 with [] -Resulting list: [5, 6, 7, 1] - -Inserting 8 -Replaced [] at index 1 with [8] -Resulting list: [5, 8, 6, 7, 1] - -Replacing with 0...20 -Replaced [5, 8, 6, 7, 1] at index 0 with [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] -Resulting list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] - -Replacing 7 with 27 -Replaced [7] at index 7 with [27] -Resulting list: [0, 1, 2, 3, 4, 5, 6, 27, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] - -Replacing 18, 19 with 28, 29 -Replaced [18, 19] at index 18 with [28, 29] -Resulting list: [0, 1, 2, 3, 4, 5, 6, 27, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 28, 29] - -Replacing 1, 2, 3 with [31-43] -Replaced [1, 2, 3] at index 1 with [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43] -Resulting list: [0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 4, 5, 6, 27, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 28, 29] - -Replacing all but 29 with [] -Replaced [0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 4, 5, 6, 27, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 28] at index 0 with [] -Resulting list: [29] - -
diff --git a/third_party/blink/web_tests/http/tests/devtools/unit/list-model.js b/third_party/blink/web_tests/http/tests/devtools/unit/list-model.js deleted file mode 100644 index 96fc37d..0000000 --- a/third_party/blink/web_tests/http/tests/devtools/unit/list-model.js +++ /dev/null
@@ -1,47 +0,0 @@ -(async function() { - TestRunner.addResult('Test ListModel API.'); - - var model = new UI.ListModel(); - model.addEventListener(UI.ListModel.Events.ItemsReplaced, event => { - var data = event.data; - var inserted = model.slice(data.index, data.index + data.inserted); - TestRunner.addResult(`Replaced [${data.removed.join(', ')}] at index ${data.index} with [${inserted.join(', ')}]`); - TestRunner.addResult(`Resulting list: [${model.join(', ')}]`); - TestRunner.addResult(''); - }); - - TestRunner.addResult('Adding 0, 1, 2'); - model.replaceAll([0, 1, 2]); - - TestRunner.addResult('Replacing 0 with 5, 6, 7'); - model.replaceRange(0, 1, [5, 6, 7]); - - TestRunner.addResult('Pushing 10'); - model.insert(model.length, 10); - - TestRunner.addResult('Popping 10'); - model.remove(model.length - 1); - - TestRunner.addResult('Removing 2'); - model.remove(4); - - TestRunner.addResult('Inserting 8'); - model.insert(1, 8); - - TestRunner.addResult('Replacing with 0...20'); - model.replaceAll([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]); - - TestRunner.addResult('Replacing 7 with 27'); - model.replaceRange(7, 8, [27]); - - TestRunner.addResult('Replacing 18, 19 with 28, 29'); - model.replaceRange(18, 20, [28, 29]); - - TestRunner.addResult('Replacing 1, 2, 3 with [31-43]'); - model.replaceRange(1, 4, [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43]); - - TestRunner.addResult('Replacing all but 29 with []'); - model.replaceRange(0, 29, []); - - TestRunner.completeTest(); -})();
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/drag-to-contenteditable-iframe-expected.txt b/third_party/blink/web_tests/platform/linux/editing/selection/drag-to-contenteditable-iframe-expected.txt index 99a3df5..427b889 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/drag-to-contenteditable-iframe-expected.txt +++ b/third_party/blink/web_tests/platform/linux/editing/selection/drag-to-contenteditable-iframe-expected.txt
@@ -13,7 +13,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutNGBlockFlow {UL} at (0,229) size 800x20 LayoutNGListItem {LI} at (40,0) size 760x20 - LayoutNGListMarker (anonymous) at (-18,0) size 7x20 + LayoutNGListMarker {::marker} at (-18,0) size 7x20 LayoutText (anonymous) at (0,0) size 7x19 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 288x19
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/selectNode-expected.txt b/third_party/blink/web_tests/platform/linux/editing/selection/selectNode-expected.txt index 8261150..f893748 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/selectNode-expected.txt +++ b/third_party/blink/web_tests/platform/linux/editing/selection/selectNode-expected.txt
@@ -20,7 +20,7 @@ text run at (0,0) width 26: "four" LayoutNGBlockFlow {UL} at (0,132) size 784x20 LayoutNGListItem {LI} at (40,0) size 744x20 - LayoutNGListMarker (anonymous) at (-18,0) size 7x20 + LayoutNGListMarker {::marker} at (-18,0) size 7x20 LayoutText (anonymous) at (0,0) size 7x19 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 54x19
diff --git a/third_party/blink/web_tests/platform/linux/editing/selection/selectNodeContents-expected.txt b/third_party/blink/web_tests/platform/linux/editing/selection/selectNodeContents-expected.txt index f7ab80c..ff559da9 100644 --- a/third_party/blink/web_tests/platform/linux/editing/selection/selectNodeContents-expected.txt +++ b/third_party/blink/web_tests/platform/linux/editing/selection/selectNodeContents-expected.txt
@@ -20,7 +20,7 @@ text run at (0,0) width 26: "four" LayoutNGBlockFlow {UL} at (0,132) size 784x20 LayoutNGListItem {LI} at (40,0) size 744x20 - LayoutNGListMarker (anonymous) at (-18,0) size 7x20 + LayoutNGListMarker {::marker} at (-18,0) size 7x20 LayoutText (anonymous) at (0,0) size 7x19 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 54x19
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index bddd5eb3..be5dee4 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index fb16b17..2bfe07ca 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index a2450ad..234b3a1d 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 28c29b3b..3ffb9739 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 19424d84..dd23962 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 77091f572..25106b7 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png new file mode 100644 index 0000000..bae5067 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 2c41229..4e636c4 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 64e86d1..f1d7140 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index 11e1ed81..acd592cc 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index cf7646f..2cf6439 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index a21a5e8..500cae6e 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 0b723c22..8690b856 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 2912de6..a10bc94 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 3141ce2..1b49a22 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png new file mode 100644 index 0000000..e50d233 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index 41deb149..3861fd7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 026ce3d..8a5a9cb 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index f679eaa..ea67440 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 34400152..f2404df 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 964bf740..fbf3ca8 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 1510a01e..94ff7be 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 2027978..f52ac5a 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index 3be1077..d54aee7d 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index 0884c4b5..838b7797 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 45032f0..56c4a9c 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 1ee49e6..dddd7ab 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 2890e10..60fb6957 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 8ed372f..3040344 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index b65ca43..e841f49 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png new file mode 100644 index 0000000..e50d233 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index 41deb149..3861fd7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index ccaeb9d..7d235aef 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index b65ca43..e841f49 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png new file mode 100644 index 0000000..e50d233 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index 41deb149..3861fd7 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index ccaeb9d..7d235aef 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 2e161a6..3c639e20 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 05200e1e..f13b788 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index ba37d19..02960d68 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index 96ab29c..3c9cb48 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 6923411..44422211 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index 419bcba..48f7e55 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index ca537fb..11d2a65 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 8774cbb..bccefa6 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 1385197a..3aae6baa 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 5f57ca3..52c5a1f 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 643747e..89822ea9 100644 --- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 9799d32..32181e8 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png new file mode 100644 index 0000000..e50d233 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index 41deb149..3861fd7 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index b32fb4f..f1f9deb5 100644 --- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/editing/selection/drag-to-contenteditable-iframe-expected.txt b/third_party/blink/web_tests/platform/mac/editing/selection/drag-to-contenteditable-iframe-expected.txt index 9d719f52..76f144f4 100644 --- a/third_party/blink/web_tests/platform/mac/editing/selection/drag-to-contenteditable-iframe-expected.txt +++ b/third_party/blink/web_tests/platform/mac/editing/selection/drag-to-contenteditable-iframe-expected.txt
@@ -13,7 +13,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutNGBlockFlow {UL} at (0,228) size 800x18 LayoutNGListItem {LI} at (40,0) size 760x18 - LayoutNGListMarker (anonymous) at (-17,0) size 7x18 + LayoutNGListMarker {::marker} at (-17,0) size 7x18 LayoutText (anonymous) at (0,0) size 7x18 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 294x18
diff --git a/third_party/blink/web_tests/platform/mac/editing/selection/selectNode-expected.txt b/third_party/blink/web_tests/platform/mac/editing/selection/selectNode-expected.txt index eca6ffc..91495d5 100644 --- a/third_party/blink/web_tests/platform/mac/editing/selection/selectNode-expected.txt +++ b/third_party/blink/web_tests/platform/mac/editing/selection/selectNode-expected.txt
@@ -20,7 +20,7 @@ text run at (0,0) width 27: "four" LayoutNGBlockFlow {UL} at (0,122) size 784x18 LayoutNGListItem {LI} at (40,0) size 744x18 - LayoutNGListMarker (anonymous) at (-17,0) size 7x18 + LayoutNGListMarker {::marker} at (-17,0) size 7x18 LayoutText (anonymous) at (0,0) size 7x18 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 55x18
diff --git a/third_party/blink/web_tests/platform/mac/editing/selection/selectNodeContents-expected.txt b/third_party/blink/web_tests/platform/mac/editing/selection/selectNodeContents-expected.txt index dedbe0b..e5aef020 100644 --- a/third_party/blink/web_tests/platform/mac/editing/selection/selectNodeContents-expected.txt +++ b/third_party/blink/web_tests/platform/mac/editing/selection/selectNodeContents-expected.txt
@@ -20,7 +20,7 @@ text run at (0,0) width 27: "four" LayoutNGBlockFlow {UL} at (0,122) size 784x18 LayoutNGListItem {LI} at (40,0) size 744x18 - LayoutNGListMarker (anonymous) at (-17,0) size 7x18 + LayoutNGListMarker {::marker} at (-17,0) size 7x18 LayoutText (anonymous) at (0,0) size 7x18 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 55x18
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 9799d32..32181e8 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png index 9e8c6ba..e50d233 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index 41deb149..3861fd7 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index b32fb4f..f1f9deb5 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 55d6754..9e3f498d 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 80da636..74bdfaf 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 52d618b..e19a556 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png new file mode 100644 index 0000000..644d14d --- /dev/null +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index eae63e9..7acc8c2 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index f395faa..7068953 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index 2ea12043e..c36f0b9 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index 2f3694e..f3006980 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 3aa39ec..7b315290 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 4a92f27..cc1a0a1a 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 88529d1..f0e391fd 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 5967d90da..49da92a 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/drag-to-contenteditable-iframe-expected.txt b/third_party/blink/web_tests/platform/win/editing/selection/drag-to-contenteditable-iframe-expected.txt index 319a6ee..232b6b1 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/drag-to-contenteditable-iframe-expected.txt +++ b/third_party/blink/web_tests/platform/win/editing/selection/drag-to-contenteditable-iframe-expected.txt
@@ -13,7 +13,7 @@ LayoutText {#text} at (0,0) size 0x0 LayoutNGBlockFlow {UL} at (0,229) size 800x20 LayoutNGListItem {LI} at (40,0) size 760x20 - LayoutNGListMarker (anonymous) at (-18,0) size 7x20 + LayoutNGListMarker {::marker} at (-18,0) size 7x20 LayoutText (anonymous) at (0,0) size 7x19 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 274x19
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/selectNode-expected.txt b/third_party/blink/web_tests/platform/win/editing/selection/selectNode-expected.txt index c50433b..97756d5 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/selectNode-expected.txt +++ b/third_party/blink/web_tests/platform/win/editing/selection/selectNode-expected.txt
@@ -20,7 +20,7 @@ text run at (0,0) width 24: "four" LayoutNGBlockFlow {UL} at (0,132) size 784x20 LayoutNGListItem {LI} at (40,0) size 744x20 - LayoutNGListMarker (anonymous) at (-18,0) size 7x20 + LayoutNGListMarker {::marker} at (-18,0) size 7x20 LayoutText (anonymous) at (0,0) size 7x19 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 53x19
diff --git a/third_party/blink/web_tests/platform/win/editing/selection/selectNodeContents-expected.txt b/third_party/blink/web_tests/platform/win/editing/selection/selectNodeContents-expected.txt index c661131..a70ae02b 100644 --- a/third_party/blink/web_tests/platform/win/editing/selection/selectNodeContents-expected.txt +++ b/third_party/blink/web_tests/platform/win/editing/selection/selectNodeContents-expected.txt
@@ -20,7 +20,7 @@ text run at (0,0) width 24: "four" LayoutNGBlockFlow {UL} at (0,132) size 784x20 LayoutNGListItem {LI} at (40,0) size 744x20 - LayoutNGListMarker (anonymous) at (-18,0) size 7x20 + LayoutNGListMarker {::marker} at (-18,0) size 7x20 LayoutText (anonymous) at (0,0) size 7x19 text run at (0,0) width 7: "\x{2022} " LayoutText {#text} at (0,0) size 53x19
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index a034bc5..cb4ea2cd0 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index b0f23d4..02b8b28 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index d3e7f5d..155b11eb 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 5cf9f6a1..5d07160 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index 7b58e5de..1e24216d 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 63b6472..c3c21c2d 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png index f5d999c..372e7e7 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-AM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png index 7fa0ccf7..2653398 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-12-PM-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png index ee4b373..be408012 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-24-hour-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png index b470470a..24c6c5ef 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowdown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png index 766b2c7..b43a7d6 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-arrowup-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 79c04bd..d2a09752 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png index 220c134..2357afbdf 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-milliseconds-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png index 28e8dbb..06d02b0 100644 --- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/time-picker/time-picker-appearance-seconds-pm-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index 719427c..a5c3714 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png index b0f23d4..02b8b28 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/select/select-popup-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png index d3e7f5d..155b11eb 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/time-picker/time-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png index a09c4590..e451f3b 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png index 60f7d39..8101b0a0 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-step2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png index 6606e39..0d3726e 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/time-picker/time-picker-appearance-ko-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png b/third_party/blink/web_tests/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png index af9c311..8587ee3a 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png +++ b/third_party/blink/web_tests/virtual/controls-refresh-hc/virtual/controls-refresh/color-scheme/progress/progress-appearance-basic-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-cancel-select-value.html b/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-cancel-select-value.html index e66e71de..7e262100 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-cancel-select-value.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-cancel-select-value.html
@@ -15,11 +15,23 @@ function selectValue() { let dateTimeElement = document.getElementById("datetime-local"); + + assert_equals(dateTimeElement.value, "2019-02-14T13:02"); + assert_not_equals(internals.pagePopupWindow, null); + clickDayCellAt(3, 4); clickTimeCellAt(0, 4); clickTimeCellAt(1, 1); - clickCancelTimeButton(); + assert_equals(dateTimeElement.value, "2019-02-27T17:03"); + + // First escape resets popup to original value + eventSender.keyDown('Escape'); assert_equals(dateTimeElement.value, "2019-02-14T13:02"); + assert_not_equals(internals.pagePopupWindow, null); + + // Second escape closes the popup + eventSender.keyDown('Escape'); + assert_equals(internals.pagePopupWindow, null); t.done(); }
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-input-change-events.html b/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-input-change-events.html new file mode 100644 index 0000000..e7a0ad5 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-picker-input-change-events.html
@@ -0,0 +1,86 @@ +<!DOCTYPE html> +<html> +<head> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> +<script src="../../../fast/forms/resources/common.js"></script> +<script src="../../../fast/forms/resources/picker-common.js"></script> +<script src="../../../fast/forms/calendar-picker/resources/calendar-picker-common.js"></script> +</head> +<body> +<input type="datetime-local" id="time" value="2020-01-13T14:15:02" oninput="inputEventCount++;" onchange="changeEventCount++"> +<script> +'use strict'; + +var inputEventCount = 0; +var changeEventCount = 0; + +let timeElement = document.getElementById("time"); + +promise_test(() => { + assert_equals(internals.pagePopupWindow, null); + return openPickerWithPromise(timeElement).then(() => { + assert_equals(timeElement.value, "2020-01-13T14:15:02"); + assert_not_equals(internals.pagePopupWindow, null); + assert_equals(inputEventCount, 0, "No input event should have not have fired before making changes."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + clickTimeCellAt(0, 1); + clickTimeCellAt(0, 2); + + assert_equals(timeElement.value, "2020-01-13T16:15:02"); + assert_equals(inputEventCount, 2, "One input event should have fired for each modification."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('Enter'); + + assert_equals(internals.pagePopupWindow, null, "Popup should have closed from Enter key"); + assert_equals(inputEventCount, 2, 'No extra input event should fire when closing popup.'); + assert_equals(changeEventCount, 0, 'Change event is fired asynchronously after closing popup.'); + return new Promise((resolve) => { + window.setTimeout(() => { + assert_equals(changeEventCount, 1, 'Change event should have fired (once) asynchronously after closing popup.'); + resolve(); + }, 0); + }); + }); +}, "Test input and change event firing when popup value is modified"); + +promise_test(() => { + inputEventCount = changeEventCount = 0; + assert_equals(internals.pagePopupWindow, null); + return openPickerWithPromise(timeElement).then(() => { + assert_equals(timeElement.value, "2020-01-13T16:15:02"); + assert_not_equals(internals.pagePopupWindow, null); + assert_equals(inputEventCount, 0, "No input event should have not have fired before making changes."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + clickTimeCellAt(0, 1); + + assert_equals(timeElement.value, "2020-01-13T17:15:02"); + assert_equals(inputEventCount, 1, "One input event should have fired for the modification."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('Escape'); + + assert_equals(timeElement.value, "2020-01-13T16:15:02"); + assert_not_equals(internals.pagePopupWindow, null, "Popup should not have closed from single escape"); + assert_equals(inputEventCount, 2, "One input event should have fired when restoring the initial value."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('Escape'); + + assert_equals(internals.pagePopupWindow, null, "Popup should have closed from Enter key"); + assert_equals(inputEventCount, 2, 'No extra input event should fire when closing popup.'); + return new Promise((resolve) => { + window.setTimeout(() => { + assert_equals(changeEventCount, 0, 'No change event should fire if popup was submitted with value still matching the original.'); + resolve(); + }, 0); + }); + }); +}, "Test that change does not fire if popup value is modified and then restored to original value."); + +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-select-value.html b/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-select-value.html index 6f5f4ff..f05d193 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-select-value.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/datetimelocal-picker/datetimelocal-select-value.html
@@ -21,7 +21,7 @@ clickDayCellAt(3, 4); clickTimeCellAt(0, 4); clickTimeCellAt(1, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png new file mode 100644 index 0000000..f8df5a8b --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/text/text-input-autofilled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/text/text-input-autofilled.html b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/text/text-input-autofilled.html new file mode 100644 index 0000000..4719d19b --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/text/text-input-autofilled.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<body> +<style> + select { + width: 168px; + padding: 5px; + font-size: 16px; + height: 34px; + background: transparent; + } +</style> +<p>The background should be blue.</p> + <input id = "text_input"></input> +<script> + var select = document.getElementById('text_input'); + if (window.internals) + internals.setAutofilled(select, true); +</script> +</body>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value-with-keyboard.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value-with-keyboard.html index cd096d6..40ce924 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value-with-keyboard.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value-with-keyboard.html
@@ -8,15 +8,20 @@ <script src="../../../fast/forms/calendar-picker/resources/calendar-picker-common.js"></script> </head> <body> -<input type="time" id="time" value="14:15"> +<input type="time" id="time" value="14:15:02"> <script> let t = async_test('Test cancel select value with keyboard in time popup'); function cancelSelectValue() { + let timeElement = document.getElementById("time"); + assert_equals(timeElement.value, "14:15:02"); + assert_not_equals(internals.pagePopupWindow, null); + // change hours value eventSender.keyDown('ArrowDown'); eventSender.keyDown('ArrowDown'); + assert_equals(timeElement.value, "16:15:02"); // move to minutes column eventSender.keyDown('ArrowRight'); @@ -24,6 +29,7 @@ eventSender.keyDown('ArrowDown'); eventSender.keyDown('ArrowDown'); eventSender.keyDown('ArrowDown'); + assert_equals(timeElement.value, "16:18:02"); // move to seconds column eventSender.keyDown('ArrowRight'); @@ -34,17 +40,20 @@ eventSender.keyDown('ArrowUp'); eventSender.keyDown('ArrowUp'); eventSender.keyDown('ArrowUp'); + assert_equals(timeElement.value, "16:18:56"); // move to ampm column eventSender.keyDown('ArrowRight'); // change ampm value eventSender.keyDown('ArrowDown'); + assert_equals(timeElement.value, "04:18:56"); - // close the popup + // First escape resets popup to original value eventSender.keyDown('Escape'); + assert_equals(timeElement.value, "14:15:02"); - let timeElement = document.getElementById("time"); - assert_equals(timeElement.value, "14:15"); + // Second escape closes the popup + eventSender.keyDown('Escape'); assert_equals(internals.pagePopupWindow, null); t.done();
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value.html deleted file mode 100644 index 90edc99..0000000 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-cancel-select-value.html +++ /dev/null
@@ -1,30 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<script src="../../../resources/testharness.js"></script> -<script src="../../../resources/testharnessreport.js"></script> -<script src="../../../fast/forms/resources/common.js"></script> -<script src="../../../fast/forms/resources/picker-common.js"></script> -<script src="../../../fast/forms/calendar-picker/resources/calendar-picker-common.js"></script> -</head> -<body> -<input type="time" id="time" value="14:15"> -<script> - -let t = async_test('Test cancel select value in time popup'); - -function cancelSelectValue() { - let timeElement = document.getElementById("time"); - clickTimeCellAt(0, 4); - clickTimeCellAt(1, 1); - clickCancelTimeButton(); - assert_equals(timeElement.value, "14:15"); - t.done(); -} - -t.step(() => { - openPicker(document.getElementById('time'), t.step_func(cancelSelectValue)); -}); -</script> -</body> -</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-input-change-events.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-input-change-events.html new file mode 100644 index 0000000..9e14d120 --- /dev/null +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-input-change-events.html
@@ -0,0 +1,86 @@ +<!DOCTYPE html> +<html> +<head> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> +<script src="../../../fast/forms/resources/common.js"></script> +<script src="../../../fast/forms/resources/picker-common.js"></script> +<script src="../../../fast/forms/calendar-picker/resources/calendar-picker-common.js"></script> +</head> +<body> +<input type="time" id="time" value="14:15:02" oninput="inputEventCount++;" onchange="changeEventCount++"> +<script> +'use strict'; + +var inputEventCount = 0; +var changeEventCount = 0; + +let timeElement = document.getElementById("time"); + +promise_test(() => { + assert_equals(internals.pagePopupWindow, null); + return openPickerWithPromise(timeElement).then(() => { + assert_equals(timeElement.value, "14:15:02"); + assert_not_equals(internals.pagePopupWindow, null); + assert_equals(inputEventCount, 0, "No input event should have not have fired before making changes."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('ArrowDown'); + eventSender.keyDown('ArrowDown'); + + assert_equals(timeElement.value, "16:15:02"); + assert_equals(inputEventCount, 2, "One input event should have fired for each modification."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('Enter'); + + assert_equals(internals.pagePopupWindow, null, "Popup should have closed from Enter key"); + assert_equals(inputEventCount, 2, 'No extra input event should fire when closing popup.'); + assert_equals(changeEventCount, 0, 'Change event is fired asynchronously after closing popup.'); + return new Promise((resolve) => { + window.setTimeout(() => { + assert_equals(changeEventCount, 1, 'Change event should have fired (once) asynchronously after closing popup.'); + resolve(); + }, 0); + }); + }); +}, "Test input and change event firing when popup value is modified"); + +promise_test(() => { + inputEventCount = changeEventCount = 0; + assert_equals(internals.pagePopupWindow, null); + return openPickerWithPromise(timeElement).then(() => { + assert_equals(timeElement.value, "16:15:02"); + assert_not_equals(internals.pagePopupWindow, null); + assert_equals(inputEventCount, 0, "No input event should have not have fired before making changes."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('ArrowDown'); + + assert_equals(timeElement.value, "17:15:02"); + assert_equals(inputEventCount, 1, "One input event should have fired for the modification."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('Escape'); + + assert_equals(timeElement.value, "16:15:02"); + assert_not_equals(internals.pagePopupWindow, null, "Popup should not have closed from single escape"); + assert_equals(inputEventCount, 2, "One input event should have fired when restoring the initial value."); + assert_equals(changeEventCount, 0, "No change event should have fired before popup is closed."); + + eventSender.keyDown('Escape'); + + assert_equals(internals.pagePopupWindow, null, "Popup should have closed from Enter key"); + assert_equals(inputEventCount, 2, 'No extra input event should fire when closing popup.'); + return new Promise((resolve) => { + window.setTimeout(() => { + assert_equals(changeEventCount, 0, 'No change event should fire if popup was submitted with value still matching the original.'); + resolve(); + }, 0); + }); + }); +}, "Test that change does not fire if popup value is modified and then restored to original value."); + +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-max-value.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-max-value.html index 0eb49fcd..8523b44 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-max-value.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-max-value.html
@@ -22,7 +22,7 @@ })); clickTimeCellAt(0, 4); clickTimeCellAt(1, 2); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-min-value.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-min-value.html index 5e58ac1..5d81fa0b 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-min-value.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-min-value.html
@@ -23,7 +23,7 @@ clickTimeCellAt(0, 4); clickTimeCellAt(1, 1); clickTimeCellAt(2, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-AM.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-AM.html index d5ba8b23..4d1d040 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-AM.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-AM.html
@@ -24,7 +24,7 @@ clickTimeCellAt(1, 2); clickTimeCellAt(2, 2); clickTimeCellAt(3, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-PM.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-PM.html index 81f3ba56..018e483 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-PM.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-12-PM.html
@@ -23,7 +23,7 @@ clickTimeCellAt(0, 1); clickTimeCellAt(1, 2); clickTimeCellAt(2, 5); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-24-hour.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-24-hour.html index 3d0c7ad..2f47b0f 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-24-hour.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-invalid-value-24-hour.html
@@ -27,7 +27,7 @@ clickTimeCellAt(0, 1); clickTimeCellAt(1, 2); clickTimeCellAt(2, 5); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-AM.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-AM.html index eb3cee6..83d2a09 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-AM.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-AM.html
@@ -21,7 +21,7 @@ clickTimeCellAt(0, 2); clickTimeCellAt(1, 2); clickTimeCellAt(3, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-PM.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-PM.html index 04f01d6..67f3a673 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-PM.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-12-PM.html
@@ -21,7 +21,7 @@ clickTimeCellAt(0, 1); clickTimeCellAt(1, 2); clickTimeCellAt(2, 4); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-PM-to-AM.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-PM-to-AM.html index 3bb1d790..f2f539a 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-PM-to-AM.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-PM-to-AM.html
@@ -21,7 +21,7 @@ clickTimeCellAt(0, 4); clickTimeCellAt(1, 1); clickTimeCellAt(3, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-step2.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-step2.html index 897ddfb..e0dbde75 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-step2.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value-step2.html
@@ -23,7 +23,7 @@ clickTimeCellAt(0, 4); clickTimeCellAt(1, 1); clickTimeCellAt(2, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value.html b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value.html index f6622d6..0b21249 100644 --- a/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value.html +++ b/third_party/blink/web_tests/virtual/controls-refresh/time-picker/time-picker-select-value.html
@@ -20,7 +20,7 @@ })); clickTimeCellAt(0, 4); clickTimeCellAt(1, 1); - clickSubmitTimeButton(); + eventSender.keyDown('Enter'); } t.step(() => {
diff --git a/third_party/blink/web_tests/virtual/import-maps-without-builtin-modules/external/wpt/import-maps/common/parsing.tentative-expected.txt b/third_party/blink/web_tests/virtual/import-maps-without-builtin-modules/external/wpt/import-maps/common/parsing.tentative-expected.txt new file mode 100644 index 0000000..b353bc72 --- /dev/null +++ b/third_party/blink/web_tests/virtual/import-maps-without-builtin-modules/external/wpt/import-maps/common/parsing.tentative-expected.txt
@@ -0,0 +1,71 @@ +This is a testharness.js-based test. +Found 67 tests; 62 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-addresses-absolute.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-addresses-invalid.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-addresses.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-invalid-json.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-normalization.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-scope.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-specifier-map.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-schema-toplevel.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-scope-keys.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-specifier-keys.json +PASS Test helper: fetching and sanity checking test JSON: resources/parsing-trailing-slashes.json +PASS Absolute URL addresses: should only accept absolute URL addresses with fetch schemes +FAIL Absolute URL addresses: should parse absolute URLs, ignoring unparseable ones assert_equals: expected "{\"imports\":{\"invalidButParseable1\":\"https://example.org/\",\"invalidButParseable2\":\"https://example.com///\",\"percentDecoding\":\"https://example.com/\",\"prettyNormal\":\"https://example.net/\"},\"scopes\":{}}" but got "{\"imports\":{\"invalidButParseable1\":\"https://example.org/\",\"invalidButParseable2\":\"https://example.com///\",\"percentDecoding\":\"https://example.com/\",\"prettyNormal\":\"https://example.net/\",\"unparseable2\":[],\"unparseable3\":[]},\"scopes\":{}}" +FAIL Other invalid addresses: should ignore unprefixed strings that are not absolute URLs assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"foo1\":[],\"foo2\":[],\"foo3\":[],\"foo4\":[],\"foo5\":[]},\"scopes\":{}}" +PASS Relative URL-like addresses: should accept strings prefixed with ./, ../, or / +FAIL Relative URL-like addresses: should not accept strings prefixed with ./, ../, or / for data: base URLs assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"dotDotSlash\":[],\"dotSlash\":[],\"slash\":[]},\"scopes\":{}}" +PASS Relative URL-like addresses: should accept the literal strings ./, ../, or / with no suffix +FAIL Relative URL-like addresses: should ignore percent-encoded variants of ./, ../, or / assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"dotDotSlash1\":[],\"dotDotSlash2\":[],\"dotDotSlash3\":[],\"dotSlash1\":[],\"dotSlash2\":[],\"dotSlash3\":[],\"slash2\":[]},\"scopes\":{}}" +PASS Invalid JSON +PASS Normalization: should normalize empty import maps to have imports and scopes keys +PASS Normalization: should normalize an import map without imports to have imports +PASS Normalization: should normalize an import map without scopes to have scopes +PASS Mismatching scopes schema: should throw if a scope's value is not an object: null +PASS Mismatching scopes schema: should throw if a scope's value is not an object: boolean +PASS Mismatching scopes schema: should throw if a scope's value is not an object: number +PASS Mismatching scopes schema: should throw if a scope's value is not an object: string +PASS Mismatching scopes schema: should throw if a scope's value is not an object: array +PASS Mismatching the specifier map schema: should ignore entries where the address is not a string +PASS Mismatching the specifier map schema: should ignore entries where the specifier key is an empty string +PASS Mismatching the top-level schema: should throw for top-level non-objects: null +PASS Mismatching the top-level schema: should throw for top-level non-objects: boolean +PASS Mismatching the top-level schema: should throw for top-level non-objects: number +PASS Mismatching the top-level schema: should throw for top-level non-objects: string +PASS Mismatching the top-level schema: should throw for top-level non-objects: array +PASS Mismatching the top-level schema: should throw if imports is a non-object: null +PASS Mismatching the top-level schema: should throw if imports is a non-object: boolean +PASS Mismatching the top-level schema: should throw if imports is a non-object: number +PASS Mismatching the top-level schema: should throw if imports is a non-object: string +PASS Mismatching the top-level schema: should throw if imports is a non-object: array +PASS Mismatching the top-level schema: should throw if scopes is a non-object: null +PASS Mismatching the top-level schema: should throw if scopes is a non-object: boolean +PASS Mismatching the top-level schema: should throw if scopes is a non-object: number +PASS Mismatching the top-level schema: should throw if scopes is a non-object: string +PASS Mismatching the top-level schema: should throw if scopes is a non-object: array +PASS Mismatching the top-level schema: should ignore unspecified top-level entries +PASS Relative URL scope keys should work with no prefix +PASS Relative URL scope keys should work with ./, ../, and / prefixes +PASS Absolute URL scope keys should ignore relative URL scope keys when the base URL is a data: URL +PASS Relative URL scope keys should work with ./, ../, or / with no suffix +PASS Relative URL scope keys should work with /s, ?s, and #s +PASS Relative URL scope keys should work with an empty string scope key +PASS Relative URL scope keys should work with / suffixes +PASS Relative URL scope keys should deduplicate based on URL parsing rules +PASS Absolute URL scope keys should accept all absolute URL scope keys, with or without fetch schemes +PASS Absolute URL scope keys should parse absolute URL scope keys, ignoring unparseable ones +PASS Relative URL specifier keys should absolutize strings prefixed with ./, ../, or / into the corresponding URLs +PASS Relative URL specifier keys should not absolutize strings prefixed with ./, ../, or / with a data: URL base +PASS Relative URL specifier keys should absolutize the literal strings ./, ../, or / with no suffix +PASS Relative URL specifier keys should work with /s, ?s, and #s +PASS Relative URL specifier keys should ignore an empty string key +PASS Relative URL specifier keys should treat percent-encoded variants of ./, ../, or / as bare specifiers +PASS Relative URL specifier keys should deduplicate based on URL parsing rules +PASS Absolute URL specifier keys should accept all absolute URL specifier keys, with or without fetch schemes +PASS Absolute URL specifier keys should parse absolute URLs, treating unparseable ones as bare specifiers +PASS Specifier keys should be sort correctly (issue #181) - Test #1 +PASS Specifier keys should be sort correctly (issue #181) - Test #2 +FAIL Failing addresses: mismatched trailing slashes assert_equals: expected "{\"imports\":{},\"scopes\":{}}" but got "{\"imports\":{\"trailer/\":[]},\"scopes\":{}}" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt index b910ce4be..cddd68e 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/element-instance-property-listing-expected.txt
@@ -204,8 +204,12 @@ property ontransitionend property onvolumechange property onwaiting + property onwebkitanimationend + property onwebkitanimationiteration + property onwebkitanimationstart property onwebkitfullscreenchange property onwebkitfullscreenerror + property onwebkittransitionend property onwheel property outerHTML property outerText @@ -1302,8 +1306,12 @@ property ontransitionend property onvolumechange property onwaiting + property onwebkitanimationend + property onwebkitanimationiteration + property onwebkitanimationstart property onwebkitfullscreenchange property onwebkitfullscreenerror + property onwebkittransitionend property onwheel property outerHTML property ownerDocument
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 bcb8520..1f9c5c76 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
@@ -1385,8 +1385,12 @@ getter onvisibilitychange getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart getter onwebkitfullscreenchange getter onwebkitfullscreenerror + getter onwebkittransitionend getter onwheel getter pictureInPictureElement getter pictureInPictureEnabled @@ -1572,8 +1576,12 @@ setter onvisibilitychange setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart setter onwebkitfullscreenchange setter onwebkitfullscreenerror + setter onwebkittransitionend setter onwheel setter title setter vlinkColor @@ -2353,6 +2361,10 @@ getter ontransitionend getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart + getter onwebkittransitionend getter onwheel getter outerText getter spellcheck @@ -2461,6 +2473,10 @@ setter ontransitionend setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart + setter onwebkittransitionend setter onwheel setter outerText setter spellcheck @@ -5680,6 +5696,10 @@ getter ontransitionend getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart + getter onwebkittransitionend getter onwheel getter ownerSVGElement getter style @@ -5774,6 +5794,10 @@ setter ontransitionend setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart + setter onwebkittransitionend setter onwheel setter style setter tabIndex
diff --git a/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/dynamic-import-expected.txt b/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/dynamic-import-expected.txt new file mode 100644 index 0000000..c190611c --- /dev/null +++ b/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/dynamic-import-expected.txt
@@ -0,0 +1,9 @@ +CONSOLE MESSAGE: line 9: This test logs a result once from each PaintWorkletGlobalScope +CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope. +CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope. +CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope. +CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope. +This is a testharness.js-based test. +PASS Dynamic import() on WorkletGlobalScope should reject the promise. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/paint-worklet-csp-eval-expected.txt b/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/paint-worklet-csp-eval-expected.txt new file mode 100644 index 0000000..5dda4f4 --- /dev/null +++ b/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/paint-worklet-csp-eval-expected.txt
@@ -0,0 +1,13 @@ +CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'". + +CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'". + +CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'". + +CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'". + +This is a testharness.js-based test. +PASS eval() call on the worklet should be blocked because the script-src unsafe-eval directive is not specified. +PASS eval() call on the worklet should not be blocked because the script-src unsafe-eval directive allows it. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt b/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt new file mode 100644 index 0000000..b3bc60e --- /dev/null +++ b/third_party/blink/web_tests/virtual/threaded/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
@@ -0,0 +1,1118 @@ +CONSOLE MESSAGE: line 10: This test logs exposed APIs once from each PaintWorkletGlobalScope +CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter operator +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter matrix +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter matrix +CONSOLE MESSAGE: line 153: interface CSSNumericArray +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method add +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method div +CONSOLE MESSAGE: line 153: method equals +CONSOLE MESSAGE: line 153: method max +CONSOLE MESSAGE: line 153: method min +CONSOLE MESSAGE: line 153: method mul +CONSOLE MESSAGE: line 153: method sub +CONSOLE MESSAGE: line 153: method to +CONSOLE MESSAGE: line 153: method toSum +CONSOLE MESSAGE: line 153: method type +CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter length +CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter angle +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter angle +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: interface CSSTransformComponent +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: setter is2D +CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter unit +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue +CONSOLE MESSAGE: line 153: getter fallback +CONSOLE MESSAGE: line 153: getter variable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter variable +CONSOLE MESSAGE: line 153: interface CountQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D +CONSOLE MESSAGE: line 153: getter fillStyle +CONSOLE MESSAGE: line 153: getter filter +CONSOLE MESSAGE: line 153: getter globalAlpha +CONSOLE MESSAGE: line 153: getter globalCompositeOperation +CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: getter imageSmoothingQuality +CONSOLE MESSAGE: line 153: getter lineCap +CONSOLE MESSAGE: line 153: getter lineDashOffset +CONSOLE MESSAGE: line 153: getter lineJoin +CONSOLE MESSAGE: line 153: getter lineWidth +CONSOLE MESSAGE: line 153: getter miterLimit +CONSOLE MESSAGE: line 153: getter shadowBlur +CONSOLE MESSAGE: line 153: getter shadowColor +CONSOLE MESSAGE: line 153: getter shadowOffsetX +CONSOLE MESSAGE: line 153: getter shadowOffsetY +CONSOLE MESSAGE: line 153: getter strokeStyle +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method beginPath +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method clearRect +CONSOLE MESSAGE: line 153: method clip +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method createLinearGradient +CONSOLE MESSAGE: line 153: method createPattern +CONSOLE MESSAGE: line 153: method createRadialGradient +CONSOLE MESSAGE: line 153: method drawImage +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method fill +CONSOLE MESSAGE: line 153: method fillRect +CONSOLE MESSAGE: line 153: method getLineDash +CONSOLE MESSAGE: line 153: method getTransform +CONSOLE MESSAGE: line 153: method isPointInPath +CONSOLE MESSAGE: line 153: method isPointInStroke +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: method resetTransform +CONSOLE MESSAGE: line 153: method restore +CONSOLE MESSAGE: line 153: method rotate +CONSOLE MESSAGE: line 153: method save +CONSOLE MESSAGE: line 153: method scale +CONSOLE MESSAGE: line 153: method setLineDash +CONSOLE MESSAGE: line 153: method setTransform +CONSOLE MESSAGE: line 153: method stroke +CONSOLE MESSAGE: line 153: method strokeRect +CONSOLE MESSAGE: line 153: method transform +CONSOLE MESSAGE: line 153: method translate +CONSOLE MESSAGE: line 153: setter fillStyle +CONSOLE MESSAGE: line 153: setter filter +CONSOLE MESSAGE: line 153: setter globalAlpha +CONSOLE MESSAGE: line 153: setter globalCompositeOperation +CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: setter imageSmoothingQuality +CONSOLE MESSAGE: line 153: setter lineCap +CONSOLE MESSAGE: line 153: setter lineDashOffset +CONSOLE MESSAGE: line 153: setter lineJoin +CONSOLE MESSAGE: line 153: setter lineWidth +CONSOLE MESSAGE: line 153: setter miterLimit +CONSOLE MESSAGE: line 153: setter shadowBlur +CONSOLE MESSAGE: line 153: setter shadowColor +CONSOLE MESSAGE: line 153: setter shadowOffsetX +CONSOLE MESSAGE: line 153: setter shadowOffsetY +CONSOLE MESSAGE: line 153: setter strokeStyle +CONSOLE MESSAGE: line 153: interface PaintSize +CONSOLE MESSAGE: line 153: getter height +CONSOLE MESSAGE: line 153: getter width +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface Path2D +CONSOLE MESSAGE: line 153: method addPath +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: interface ReadableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getReader +CONSOLE MESSAGE: line 153: method pipeThrough +CONSOLE MESSAGE: line 153: method pipeTo +CONSOLE MESSAGE: line 153: method tee +CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method read +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method get +CONSOLE MESSAGE: line 153: method getAll +CONSOLE MESSAGE: line 153: method has +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface TransformStream +CONSOLE MESSAGE: line 153: getter readable +CONSOLE MESSAGE: line 153: getter writable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WritableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getWriter +CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: getter desiredSize +CONSOLE MESSAGE: line 153: getter ready +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: method write +CONSOLE MESSAGE: line 153: global object +CONSOLE MESSAGE: line 153: attribute console +CONSOLE MESSAGE: line 153: attribute globalThis +CONSOLE MESSAGE: line 153: getter devicePixelRatio +CONSOLE MESSAGE: line 153: method gc +CONSOLE MESSAGE: line 153: method registerPaint +CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter operator +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter matrix +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter matrix +CONSOLE MESSAGE: line 153: interface CSSNumericArray +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method add +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method div +CONSOLE MESSAGE: line 153: method equals +CONSOLE MESSAGE: line 153: method max +CONSOLE MESSAGE: line 153: method min +CONSOLE MESSAGE: line 153: method mul +CONSOLE MESSAGE: line 153: method sub +CONSOLE MESSAGE: line 153: method to +CONSOLE MESSAGE: line 153: method toSum +CONSOLE MESSAGE: line 153: method type +CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter length +CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter angle +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter angle +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: interface CSSTransformComponent +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: setter is2D +CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter unit +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue +CONSOLE MESSAGE: line 153: getter fallback +CONSOLE MESSAGE: line 153: getter variable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter variable +CONSOLE MESSAGE: line 153: interface CountQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D +CONSOLE MESSAGE: line 153: getter fillStyle +CONSOLE MESSAGE: line 153: getter filter +CONSOLE MESSAGE: line 153: getter globalAlpha +CONSOLE MESSAGE: line 153: getter globalCompositeOperation +CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: getter imageSmoothingQuality +CONSOLE MESSAGE: line 153: getter lineCap +CONSOLE MESSAGE: line 153: getter lineDashOffset +CONSOLE MESSAGE: line 153: getter lineJoin +CONSOLE MESSAGE: line 153: getter lineWidth +CONSOLE MESSAGE: line 153: getter miterLimit +CONSOLE MESSAGE: line 153: getter shadowBlur +CONSOLE MESSAGE: line 153: getter shadowColor +CONSOLE MESSAGE: line 153: getter shadowOffsetX +CONSOLE MESSAGE: line 153: getter shadowOffsetY +CONSOLE MESSAGE: line 153: getter strokeStyle +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method beginPath +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method clearRect +CONSOLE MESSAGE: line 153: method clip +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method createLinearGradient +CONSOLE MESSAGE: line 153: method createPattern +CONSOLE MESSAGE: line 153: method createRadialGradient +CONSOLE MESSAGE: line 153: method drawImage +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method fill +CONSOLE MESSAGE: line 153: method fillRect +CONSOLE MESSAGE: line 153: method getLineDash +CONSOLE MESSAGE: line 153: method getTransform +CONSOLE MESSAGE: line 153: method isPointInPath +CONSOLE MESSAGE: line 153: method isPointInStroke +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: method resetTransform +CONSOLE MESSAGE: line 153: method restore +CONSOLE MESSAGE: line 153: method rotate +CONSOLE MESSAGE: line 153: method save +CONSOLE MESSAGE: line 153: method scale +CONSOLE MESSAGE: line 153: method setLineDash +CONSOLE MESSAGE: line 153: method setTransform +CONSOLE MESSAGE: line 153: method stroke +CONSOLE MESSAGE: line 153: method strokeRect +CONSOLE MESSAGE: line 153: method transform +CONSOLE MESSAGE: line 153: method translate +CONSOLE MESSAGE: line 153: setter fillStyle +CONSOLE MESSAGE: line 153: setter filter +CONSOLE MESSAGE: line 153: setter globalAlpha +CONSOLE MESSAGE: line 153: setter globalCompositeOperation +CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: setter imageSmoothingQuality +CONSOLE MESSAGE: line 153: setter lineCap +CONSOLE MESSAGE: line 153: setter lineDashOffset +CONSOLE MESSAGE: line 153: setter lineJoin +CONSOLE MESSAGE: line 153: setter lineWidth +CONSOLE MESSAGE: line 153: setter miterLimit +CONSOLE MESSAGE: line 153: setter shadowBlur +CONSOLE MESSAGE: line 153: setter shadowColor +CONSOLE MESSAGE: line 153: setter shadowOffsetX +CONSOLE MESSAGE: line 153: setter shadowOffsetY +CONSOLE MESSAGE: line 153: setter strokeStyle +CONSOLE MESSAGE: line 153: interface PaintSize +CONSOLE MESSAGE: line 153: getter height +CONSOLE MESSAGE: line 153: getter width +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface Path2D +CONSOLE MESSAGE: line 153: method addPath +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: interface ReadableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getReader +CONSOLE MESSAGE: line 153: method pipeThrough +CONSOLE MESSAGE: line 153: method pipeTo +CONSOLE MESSAGE: line 153: method tee +CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method read +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method get +CONSOLE MESSAGE: line 153: method getAll +CONSOLE MESSAGE: line 153: method has +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface TransformStream +CONSOLE MESSAGE: line 153: getter readable +CONSOLE MESSAGE: line 153: getter writable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WritableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getWriter +CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: getter desiredSize +CONSOLE MESSAGE: line 153: getter ready +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: method write +CONSOLE MESSAGE: line 153: global object +CONSOLE MESSAGE: line 153: attribute console +CONSOLE MESSAGE: line 153: attribute globalThis +CONSOLE MESSAGE: line 153: getter devicePixelRatio +CONSOLE MESSAGE: line 153: method gc +CONSOLE MESSAGE: line 153: method registerPaint +CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter operator +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter matrix +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter matrix +CONSOLE MESSAGE: line 153: interface CSSNumericArray +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method add +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method div +CONSOLE MESSAGE: line 153: method equals +CONSOLE MESSAGE: line 153: method max +CONSOLE MESSAGE: line 153: method min +CONSOLE MESSAGE: line 153: method mul +CONSOLE MESSAGE: line 153: method sub +CONSOLE MESSAGE: line 153: method to +CONSOLE MESSAGE: line 153: method toSum +CONSOLE MESSAGE: line 153: method type +CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter length +CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter angle +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter angle +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: interface CSSTransformComponent +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: setter is2D +CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter unit +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue +CONSOLE MESSAGE: line 153: getter fallback +CONSOLE MESSAGE: line 153: getter variable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter variable +CONSOLE MESSAGE: line 153: interface CountQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D +CONSOLE MESSAGE: line 153: getter fillStyle +CONSOLE MESSAGE: line 153: getter filter +CONSOLE MESSAGE: line 153: getter globalAlpha +CONSOLE MESSAGE: line 153: getter globalCompositeOperation +CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: getter imageSmoothingQuality +CONSOLE MESSAGE: line 153: getter lineCap +CONSOLE MESSAGE: line 153: getter lineDashOffset +CONSOLE MESSAGE: line 153: getter lineJoin +CONSOLE MESSAGE: line 153: getter lineWidth +CONSOLE MESSAGE: line 153: getter miterLimit +CONSOLE MESSAGE: line 153: getter shadowBlur +CONSOLE MESSAGE: line 153: getter shadowColor +CONSOLE MESSAGE: line 153: getter shadowOffsetX +CONSOLE MESSAGE: line 153: getter shadowOffsetY +CONSOLE MESSAGE: line 153: getter strokeStyle +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method beginPath +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method clearRect +CONSOLE MESSAGE: line 153: method clip +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method createLinearGradient +CONSOLE MESSAGE: line 153: method createPattern +CONSOLE MESSAGE: line 153: method createRadialGradient +CONSOLE MESSAGE: line 153: method drawImage +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method fill +CONSOLE MESSAGE: line 153: method fillRect +CONSOLE MESSAGE: line 153: method getLineDash +CONSOLE MESSAGE: line 153: method getTransform +CONSOLE MESSAGE: line 153: method isPointInPath +CONSOLE MESSAGE: line 153: method isPointInStroke +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: method resetTransform +CONSOLE MESSAGE: line 153: method restore +CONSOLE MESSAGE: line 153: method rotate +CONSOLE MESSAGE: line 153: method save +CONSOLE MESSAGE: line 153: method scale +CONSOLE MESSAGE: line 153: method setLineDash +CONSOLE MESSAGE: line 153: method setTransform +CONSOLE MESSAGE: line 153: method stroke +CONSOLE MESSAGE: line 153: method strokeRect +CONSOLE MESSAGE: line 153: method transform +CONSOLE MESSAGE: line 153: method translate +CONSOLE MESSAGE: line 153: setter fillStyle +CONSOLE MESSAGE: line 153: setter filter +CONSOLE MESSAGE: line 153: setter globalAlpha +CONSOLE MESSAGE: line 153: setter globalCompositeOperation +CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: setter imageSmoothingQuality +CONSOLE MESSAGE: line 153: setter lineCap +CONSOLE MESSAGE: line 153: setter lineDashOffset +CONSOLE MESSAGE: line 153: setter lineJoin +CONSOLE MESSAGE: line 153: setter lineWidth +CONSOLE MESSAGE: line 153: setter miterLimit +CONSOLE MESSAGE: line 153: setter shadowBlur +CONSOLE MESSAGE: line 153: setter shadowColor +CONSOLE MESSAGE: line 153: setter shadowOffsetX +CONSOLE MESSAGE: line 153: setter shadowOffsetY +CONSOLE MESSAGE: line 153: setter strokeStyle +CONSOLE MESSAGE: line 153: interface PaintSize +CONSOLE MESSAGE: line 153: getter height +CONSOLE MESSAGE: line 153: getter width +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface Path2D +CONSOLE MESSAGE: line 153: method addPath +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: interface ReadableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getReader +CONSOLE MESSAGE: line 153: method pipeThrough +CONSOLE MESSAGE: line 153: method pipeTo +CONSOLE MESSAGE: line 153: method tee +CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method read +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method get +CONSOLE MESSAGE: line 153: method getAll +CONSOLE MESSAGE: line 153: method has +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface TransformStream +CONSOLE MESSAGE: line 153: getter readable +CONSOLE MESSAGE: line 153: getter writable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WritableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getWriter +CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: getter desiredSize +CONSOLE MESSAGE: line 153: getter ready +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: method write +CONSOLE MESSAGE: line 153: global object +CONSOLE MESSAGE: line 153: attribute console +CONSOLE MESSAGE: line 153: attribute globalThis +CONSOLE MESSAGE: line 153: getter devicePixelRatio +CONSOLE MESSAGE: line 153: method gc +CONSOLE MESSAGE: line 153: method registerPaint +CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue +CONSOLE MESSAGE: line 153: getter values +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter operator +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter matrix +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter matrix +CONSOLE MESSAGE: line 153: interface CSSNumericArray +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue +CONSOLE MESSAGE: line 153: method add +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method div +CONSOLE MESSAGE: line 153: method equals +CONSOLE MESSAGE: line 153: method max +CONSOLE MESSAGE: line 153: method min +CONSOLE MESSAGE: line 153: method mul +CONSOLE MESSAGE: line 153: method sub +CONSOLE MESSAGE: line 153: method to +CONSOLE MESSAGE: line 153: method toSum +CONSOLE MESSAGE: line 153: method type +CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter length +CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter angle +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter angle +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ax +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ax +CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter ay +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter ay +CONSOLE MESSAGE: line 153: interface CSSStyleValue +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: interface CSSTransformComponent +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method toString +CONSOLE MESSAGE: line 153: setter is2D +CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter is2D +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method toMatrix +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent +CONSOLE MESSAGE: line 153: getter x +CONSOLE MESSAGE: line 153: getter y +CONSOLE MESSAGE: line 153: getter z +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter x +CONSOLE MESSAGE: line 153: setter y +CONSOLE MESSAGE: line 153: setter z +CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue +CONSOLE MESSAGE: line 153: getter unit +CONSOLE MESSAGE: line 153: getter value +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter value +CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue +CONSOLE MESSAGE: line 153: getter length +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue +CONSOLE MESSAGE: line 153: getter fallback +CONSOLE MESSAGE: line 153: getter variable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: setter variable +CONSOLE MESSAGE: line 153: interface CountQueuingStrategy +CONSOLE MESSAGE: line 153: getter highWaterMark +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D +CONSOLE MESSAGE: line 153: getter fillStyle +CONSOLE MESSAGE: line 153: getter filter +CONSOLE MESSAGE: line 153: getter globalAlpha +CONSOLE MESSAGE: line 153: getter globalCompositeOperation +CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: getter imageSmoothingQuality +CONSOLE MESSAGE: line 153: getter lineCap +CONSOLE MESSAGE: line 153: getter lineDashOffset +CONSOLE MESSAGE: line 153: getter lineJoin +CONSOLE MESSAGE: line 153: getter lineWidth +CONSOLE MESSAGE: line 153: getter miterLimit +CONSOLE MESSAGE: line 153: getter shadowBlur +CONSOLE MESSAGE: line 153: getter shadowColor +CONSOLE MESSAGE: line 153: getter shadowOffsetX +CONSOLE MESSAGE: line 153: getter shadowOffsetY +CONSOLE MESSAGE: line 153: getter strokeStyle +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method beginPath +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method clearRect +CONSOLE MESSAGE: line 153: method clip +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method createLinearGradient +CONSOLE MESSAGE: line 153: method createPattern +CONSOLE MESSAGE: line 153: method createRadialGradient +CONSOLE MESSAGE: line 153: method drawImage +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method fill +CONSOLE MESSAGE: line 153: method fillRect +CONSOLE MESSAGE: line 153: method getLineDash +CONSOLE MESSAGE: line 153: method getTransform +CONSOLE MESSAGE: line 153: method isPointInPath +CONSOLE MESSAGE: line 153: method isPointInStroke +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: method resetTransform +CONSOLE MESSAGE: line 153: method restore +CONSOLE MESSAGE: line 153: method rotate +CONSOLE MESSAGE: line 153: method save +CONSOLE MESSAGE: line 153: method scale +CONSOLE MESSAGE: line 153: method setLineDash +CONSOLE MESSAGE: line 153: method setTransform +CONSOLE MESSAGE: line 153: method stroke +CONSOLE MESSAGE: line 153: method strokeRect +CONSOLE MESSAGE: line 153: method transform +CONSOLE MESSAGE: line 153: method translate +CONSOLE MESSAGE: line 153: setter fillStyle +CONSOLE MESSAGE: line 153: setter filter +CONSOLE MESSAGE: line 153: setter globalAlpha +CONSOLE MESSAGE: line 153: setter globalCompositeOperation +CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled +CONSOLE MESSAGE: line 153: setter imageSmoothingQuality +CONSOLE MESSAGE: line 153: setter lineCap +CONSOLE MESSAGE: line 153: setter lineDashOffset +CONSOLE MESSAGE: line 153: setter lineJoin +CONSOLE MESSAGE: line 153: setter lineWidth +CONSOLE MESSAGE: line 153: setter miterLimit +CONSOLE MESSAGE: line 153: setter shadowBlur +CONSOLE MESSAGE: line 153: setter shadowColor +CONSOLE MESSAGE: line 153: setter shadowOffsetX +CONSOLE MESSAGE: line 153: setter shadowOffsetY +CONSOLE MESSAGE: line 153: setter strokeStyle +CONSOLE MESSAGE: line 153: interface PaintSize +CONSOLE MESSAGE: line 153: getter height +CONSOLE MESSAGE: line 153: getter width +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface Path2D +CONSOLE MESSAGE: line 153: method addPath +CONSOLE MESSAGE: line 153: method arc +CONSOLE MESSAGE: line 153: method arcTo +CONSOLE MESSAGE: line 153: method bezierCurveTo +CONSOLE MESSAGE: line 153: method closePath +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method ellipse +CONSOLE MESSAGE: line 153: method lineTo +CONSOLE MESSAGE: line 153: method moveTo +CONSOLE MESSAGE: line 153: method quadraticCurveTo +CONSOLE MESSAGE: line 153: method rect +CONSOLE MESSAGE: line 153: interface ReadableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getReader +CONSOLE MESSAGE: line 153: method pipeThrough +CONSOLE MESSAGE: line 153: method pipeTo +CONSOLE MESSAGE: line 153: method tee +CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: method cancel +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method read +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly +CONSOLE MESSAGE: line 153: getter size +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method entries +CONSOLE MESSAGE: line 153: method forEach +CONSOLE MESSAGE: line 153: method get +CONSOLE MESSAGE: line 153: method getAll +CONSOLE MESSAGE: line 153: method has +CONSOLE MESSAGE: line 153: method keys +CONSOLE MESSAGE: line 153: method values +CONSOLE MESSAGE: line 153: interface TransformStream +CONSOLE MESSAGE: line 153: getter readable +CONSOLE MESSAGE: line 153: getter writable +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WorkletGlobalScope +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: interface WritableStream +CONSOLE MESSAGE: line 153: getter locked +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method getWriter +CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter +CONSOLE MESSAGE: line 153: getter closed +CONSOLE MESSAGE: line 153: getter desiredSize +CONSOLE MESSAGE: line 153: getter ready +CONSOLE MESSAGE: line 153: method abort +CONSOLE MESSAGE: line 153: method close +CONSOLE MESSAGE: line 153: method constructor +CONSOLE MESSAGE: line 153: method releaseLock +CONSOLE MESSAGE: line 153: method write +CONSOLE MESSAGE: line 153: global object +CONSOLE MESSAGE: line 153: attribute console +CONSOLE MESSAGE: line 153: attribute globalThis +CONSOLE MESSAGE: line 153: getter devicePixelRatio +CONSOLE MESSAGE: line 153: method gc +CONSOLE MESSAGE: line 153: method registerPaint +
diff --git a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt index 039fc0d..1d7e363 100644 --- a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt +++ b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-createOffer-expected.txt
@@ -3,5 +3,6 @@ PASS createOffer() and then setLocalDescription() should succeed PASS createOffer() after connection is closed should reject with InvalidStateError FAIL When media stream is added when createOffer() is running in parallel, the result offer should contain the new media stream Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. +FAIL createOffer() should fail when signaling state is not stable or have-local-offer assert_unreached: Should have rejected: undefined Reached unreachable code Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt b/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt index 8f79b526..4c53f6d 100644 --- a/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt
@@ -261,8 +261,12 @@ property ontransitionend property onvolumechange property onwaiting + property onwebkitanimationend + property onwebkitanimationiteration + property onwebkitanimationstart property onwebkitfullscreenchange property onwebkitfullscreenerror + property onwebkittransitionend property onwheel property outerHTML property outerText @@ -1444,8 +1448,12 @@ property ontransitionend property onvolumechange property onwaiting + property onwebkitanimationend + property onwebkitanimationiteration + property onwebkitanimationstart property onwebkitfullscreenchange property onwebkitfullscreenerror + property onwebkittransitionend property onwheel property outerHTML property ownerDocument
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt index 102fc8ec..1da2e3a 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -1710,8 +1710,12 @@ getter onvisibilitychange getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart getter onwebkitfullscreenchange getter onwebkitfullscreenerror + getter onwebkittransitionend getter onwheel getter pictureInPictureElement getter pictureInPictureEnabled @@ -1907,8 +1911,12 @@ setter onvisibilitychange setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart setter onwebkitfullscreenchange setter onwebkitfullscreenerror + setter onwebkittransitionend setter onwheel setter rootScroller setter title @@ -3052,6 +3060,10 @@ getter ontransitionend getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart + getter onwebkittransitionend getter onwheel getter outerText getter spellcheck @@ -3165,6 +3177,10 @@ setter ontransitionend setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart + setter onwebkittransitionend setter onwheel setter outerText setter spellcheck @@ -4824,6 +4840,10 @@ getter ontransitionend getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart + getter onwebkittransitionend getter onwheel getter style getter tabIndex @@ -4920,6 +4940,10 @@ setter ontransitionend setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart + setter onwebkittransitionend setter onwheel setter style setter tabIndex @@ -6863,6 +6887,10 @@ getter ontransitionend getter onvolumechange getter onwaiting + getter onwebkitanimationend + getter onwebkitanimationiteration + getter onwebkitanimationstart + getter onwebkittransitionend getter onwheel getter ownerSVGElement getter style @@ -6961,6 +6989,10 @@ setter ontransitionend setter onvolumechange setter onwaiting + setter onwebkitanimationend + setter onwebkitanimationiteration + setter onwebkitanimationstart + setter onwebkittransitionend setter onwheel setter style setter tabIndex
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/tab-order-ignores-invisible-subtrees.html b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/tab-order-ignores-invisible-subtrees.html new file mode 100644 index 0000000..bbdf85ab --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/display-lock/css-render-subtree/tab-order-ignores-invisible-subtrees.html
@@ -0,0 +1,49 @@ +<!doctype HTML> +<meta charset="utf8"> +<title>Tab order navigation ignores invisible subtrees</title> +<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> +<link rel="match" href="activated-removes-size-containment-ref.html"> +<meta name="assert" content="tab order navigation ignores invisible subtrees."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<style> +.locked { + render-subtree: invisible skip-viewport-activation; +} +</style> + +<input id=one type=text></input> +<div class=locked> + <input id=two type=text></input> + <input id=three type=text></input> + <input id=four type=text></input> +</div> +<input id=five type=text></input> + +<script> +async_test((t) => { + const tab = "\t"; + async function step1() { + await test_driver.send_keys(document.body, tab); + t.step(() => { + assert_equals(document.activeElement, document.getElementById("one")); + }); + requestAnimationFrame(step2); + } + + async function step2() { + await test_driver.send_keys(document.body, tab); + t.step(() => { + assert_equals(document.activeElement, document.getElementById("five")); + }); + t.done(); + } + + window.onload = () => { requestAnimationFrame(step1); }; +}, "Tab order navigation skips invisible subtrees"); +</script>
diff --git a/third_party/bspatch/BUILD.gn b/third_party/bspatch/BUILD.gn index 3929615..59f9039 100644 --- a/third_party/bspatch/BUILD.gn +++ b/third_party/bspatch/BUILD.gn
@@ -11,7 +11,5 @@ configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] - deps = [ - "//third_party/lzma_sdk", - ] + deps = [ "//third_party/lzma_sdk" ] }
diff --git a/third_party/jstemplate/BUILD.gn b/third_party/jstemplate/BUILD.gn index 89dbdef..08e120c 100644 --- a/third_party/jstemplate/BUILD.gn +++ b/third_party/jstemplate/BUILD.gn
@@ -8,13 +8,9 @@ } js_library("jsevalcontext") { - deps = [ - ":util", - ] + deps = [ ":util" ] } js_library("jstemplate") { - deps = [ - ":jsevalcontext", - ] + deps = [ ":jsevalcontext" ] }
diff --git a/third_party/re2/BUILD.gn b/third_party/re2/BUILD.gn index faf546f..a4e38410 100644 --- a/third_party/re2/BUILD.gn +++ b/third_party/re2/BUILD.gn
@@ -61,10 +61,6 @@ } fuzzer_test("third_party_re2_fuzzer") { - sources = [ - "src/re2/fuzzing/re2_fuzzer.cc", - ] - deps = [ - ":re2", - ] + sources = [ "src/re2/fuzzing/re2_fuzzer.cc" ] + deps = [ ":re2" ] }
diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py index dafb1bb..2327ea85 100755 --- a/tools/clang/scripts/build.py +++ b/tools/clang/scripts/build.py
@@ -338,6 +338,15 @@ default=sys.platform in ('linux2', 'darwin')) args = parser.parse_args() + # TODO(crbug.com/1042192): Remove in the next Clang roll. + if args.llvm_force_head_revision: + global RELEASE_VERSION + RELEASE_VERSION = '11.0.0' + old_lib_dir = os.path.join(LLVM_BUILD_DIR, 'lib', 'clang', '10.0.0') + if (os.path.isdir(old_lib_dir)): + print('Removing old lib dir: ' + old_lib_dir) + RmTree(old_lib_dir) + if args.lto_lld and not args.bootstrap: print('--lto-lld requires --bootstrap') return 1
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py index 9d67743..c1f79cb 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py
@@ -45,6 +45,7 @@ PACKAGE_VERSION = '%s-%s-%s' % (CLANG_SVN_REVISION, CLANG_REVISION[:8], CLANG_SUB_REVISION) +# TODO(crbug.com/985289): Bump to 11.0.0 in the next Clang roll. RELEASE_VERSION = '10.0.0' @@ -340,6 +341,11 @@ help='Verify that clang has the passed-in version.') args = parser.parse_args() + # TODO(crbug.com/1042192): Remove in the next Clang roll. + if args.llvm_force_head_revision: + global RELEASE_VERSION + RELEASE_VERSION = '11.0.0' + if args.force_local_build: print(('update.py --force-local-build is no longer used to build clang; ' 'use build.py instead.'))
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 17a8d1c..bd1ab99 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -32644,6 +32644,8 @@ <int value="93" label="TAB_SHARING_INFOBAR_DELEGATE"/> <int value="94" label="SAFETY_TIP_INFOBAR_DELEGATE"/> <int value="95" label="SMS_RECEIVER_INFOBAR_DELEGATE"/> + <int value="96" label="KNOWN_INTERCEPTION_DISCLOSURE_INFOBAR_DELEGATE"/> + <int value="97" label="SYNC_ERROR_INFOBAR_DELEGATE_ANDROID"/> </enum> <enum name="InfoBarResponse"> @@ -35774,6 +35776,23 @@ <int value="11" label="Could not write into temporary database"/> </enum> +<enum name="LinuxPasswordStoreUsage"> + <int value="0" label="No decision"/> + <int value="1" label="No decision - Initialization failed"/> + <int value="2" label="Basic text"/> + <int value="3" label="Basic text - Initialization failed"/> + <int value="4" label="Gnome any"/> + <int value="5" label="Gnome any - Initialization failed"/> + <int value="6" label="Gnome keyring"/> + <int value="7" label="Gnome keyring - Initialization failed"/> + <int value="8" label="Gnome libsecret"/> + <int value="9" label="Gnome libsecret - Initialization failed"/> + <int value="10" label="KWallet"/> + <int value="11" label="KWallet - Initialization failed"/> + <int value="12" label="KWallet5"/> + <int value="13" label="KWallet5 - Initialization failed"/> +</enum> + <enum name="LinuxSandboxStatus"> <int value="0" label="none"/> <int value="1" label="suid"/> @@ -61651,6 +61670,12 @@ <int value="5" label="Remote initial update (updated downstream)"/> </enum> +<enum name="SyncErrorInfoBarAction"> + <int value="0" label="Shown"/> + <int value="1" label="Dismissed"/> + <int value="2" label="Open settings clicked"/> +</enum> + <enum name="SyncErrorInfobarTypes"> <summary>Possible errors that can trigger a sync error infobar.</summary> <int value="1" label="Sign in needs update"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 207ebca..5385f7b 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -260,7 +260,7 @@ </histogram> <histogram name="Accessibility.CrosSelectToSpeak" enum="BooleanEnabled" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>dmazzoni@chromium.org</owner> <summary> Whether the Chrome OS select-to-speak is on (logged once 45 secs after @@ -1636,7 +1636,7 @@ </histogram> <histogram name="Android.AppNotificationStatus" enum="NotificationAppStatus" - expires_after="2020-04-05"> + expires_after="2020-07-13"> <owner>peter@chromium.org</owner> <summary> Records whether notifications are enabled for Chrome, as the Android app, @@ -1801,7 +1801,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative.FullBrowser" - enum="BackgroundTaskId" expires_after="2020-05-14"> + enum="BackgroundTaskId" expires_after="2020-07-13"> <owner>mheikal@chromium.org</owner> <owner>hanxi@chromium.org</owner> <owner>hnakashima@chromium.org</owner> @@ -1812,7 +1812,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative.ReducedMode" - enum="BackgroundTaskId" expires_after="2020-05-14"> + enum="BackgroundTaskId" expires_after="2020-07-13"> <owner>mheikal@chromium.org</owner> <owner>hanxi@chromium.org</owner> <owner>hnakashima@chromium.org</owner> @@ -3076,7 +3076,7 @@ </histogram> <histogram name="Android.ManageSpace.UnimportantDiskUsageMB" units="MB" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>dmurph@chromium.org</owner> <summary> Recorded when the user opens the 'Manage Space' screen for Chrome, after the @@ -5527,7 +5527,7 @@ </histogram> <histogram name="Apps.AppList.ZeroStateResultsList.LaunchedItemPositionV2" - units="position" expires_after="2020-05-10"> + units="position" expires_after="2020-07-13"> <owner>wrong@chromium.org</owner> <owner>tby@chromium.org</owner> <owner>jiameng@chromium.org</owner> @@ -5848,7 +5848,7 @@ </histogram> <histogram name="Apps.AppListPlayStoreQueryState" - enum="AppListPlayStoreQueryState" expires_after="2020-03-29"> + enum="AppListPlayStoreQueryState" expires_after="2020-07-13"> <owner>hejq@chromium.org</owner> <summary>The state of a Play Store app search request.</summary> </histogram> @@ -7228,7 +7228,7 @@ </histogram> <histogram name="Arc.OptInCancel" enum="ArcOptInCancel" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>elijahtaylor@google.com</owner> <owner>shihuis@google.com</owner> <summary>Arc OptIn cancelation reason.</summary> @@ -8545,7 +8545,7 @@ </histogram> <histogram name="Ash.Shelf.NumberOfItems" units="Icons" - expires_after="2020-05-03"> + expires_after="2020-07-13"> <owner>anasalazar@google.com</owner> <owner>mmourgos@google.com</owner> <summary> @@ -8565,7 +8565,7 @@ </histogram> <histogram name="Ash.Shelf.NumberOfUnpinnedItems" units="Icons" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>anasalazar@google.com</owner> <owner>mmourgos@google.com</owner> <summary> @@ -9195,7 +9195,7 @@ </histogram> <histogram name="Ash.Window.AnimationSmoothness.Hide" units="%" - expires_after="2020-03-22"> + expires_after="2020-07-13"> <owner>wutao@chromium.org</owner> <summary> Relative smoothness of hiding window animation. 100% represents ideally @@ -14431,7 +14431,7 @@ </histogram> <histogram name="AutoScreenBrightness.TrainingCompleteDuration.NewCurve" - units="ms" expires_after="2020-05-10"> + units="ms" expires_after="2020-07-13"> <owner>jiameng@chromium.org</owner> <summary> The time elapsed to complete training after which a new curve was generated. @@ -17772,7 +17772,7 @@ </histogram> <histogram name="Blink.Sms.Receive.TimeContinueOnSuccess" units="ms" - expires_after="2020-03-08"> + expires_after="2020-07-13"> <owner>goto@chromium.org</owner> <owner>reillyg@chromium.org</owner> <owner>ayui@chromium.org</owner> @@ -17783,7 +17783,7 @@ </histogram> <histogram name="Blink.Sms.Receive.TimeSmsReceive" units="ms" - expires_after="2020-03-08"> + expires_after="2020-07-13"> <owner>goto@chromium.org</owner> <owner>reillyg@chromium.org</owner> <owner>ayui@chromium.org</owner> @@ -17794,7 +17794,7 @@ </histogram> <histogram name="Blink.Sms.Receive.TimeSuccess" units="ms" - expires_after="2020-03-08"> + expires_after="2020-07-13"> <owner>goto@chromium.org</owner> <owner>reillyg@chromium.org</owner> <owner>ayui@chromium.org</owner> @@ -18283,7 +18283,7 @@ </histogram> <histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold" - enum="NQEEffectiveConnectionType" expires_after="2020-04-05"> + enum="NQEEffectiveConnectionType" expires_after="2020-07-13"> <owner>sclittle@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -22352,7 +22352,7 @@ </histogram> <histogram name="ChromeOS.Apps.IntentPickerDestinationPlatform" - enum="ArcIntentHandlerDestinationPlatform" expires_after="2020-05-03"> + enum="ArcIntentHandlerDestinationPlatform" expires_after="2020-07-13"> <owner>elijahtaylor@google.com</owner> <owner>dominickn@chromium.org</owner> <owner>shihuis@google.com</owner> @@ -22782,7 +22782,7 @@ </histogram> <histogram name="ChromeOS.SystemTray.FeaturePodCountOnOpen" units="count" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>tengs@chromium.org</owner> <owner>amehfooz@chromium.org</owner> <summary> @@ -27059,7 +27059,7 @@ </summary> </histogram> -<histogram name="Cookie.Count" units="units" expires_after="2020-05-10"> +<histogram name="Cookie.Count" units="units" expires_after="2020-07-13"> <owner>battre@chromium.org</owner> <summary> Number of cookies in the store (recorded every 10 minutes of active browsing @@ -27152,7 +27152,7 @@ </summary> </histogram> -<histogram name="Cookie.HeaderLength" units="bytes" expires_after="2020-05-10"> +<histogram name="Cookie.HeaderLength" units="bytes" expires_after="2020-07-13"> <owner>mkwst@chromium.org</owner> <summary> The size of each outgoing request's 'Cookie' header field's value, in bytes. @@ -29711,7 +29711,7 @@ </histogram> <histogram name="Cryptohome.InstallAttributesUsage" - enum="InstallAttributesUsageEvent" expires_after="2020-05-10"> + enum="InstallAttributesUsageEvent" expires_after="2020-07-13"> <owner>vsavu@google.com</owner> <owner>igorcov@chromium.com</owner> <summary> @@ -29721,7 +29721,7 @@ </histogram> <histogram name="Cryptohome.InstallAttributesValidation" - enum="InstallAttributesValidationEvent" expires_after="2020-05-10"> + enum="InstallAttributesValidationEvent" expires_after="2020-07-13"> <owner>vsavu@google.com</owner> <owner>igorcov@chromium.com</owner> <summary> @@ -30320,7 +30320,7 @@ </histogram> <histogram name="CustomTabs.SpareWebContents.Status2" - enum="SpareWebContentsStatus2" expires_after="2020-05-10"> + enum="SpareWebContentsStatus2" expires_after="2020-07-13"> <owner>lizeb@chromium.org</owner> <owner>mthiesse@chromium.org</owner> <summary> @@ -38714,7 +38714,7 @@ </histogram> <histogram name="Download.IOSDownloadInstallDrivePromoShown" enum="Boolean" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>eugenebut@chromium.org</owner> <owner>pkl@chromium.org</owner> <summary> @@ -38724,7 +38724,7 @@ </histogram> <histogram name="Download.IOSDownloadMimeType" enum="DownloadMimeTypeResult" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>eugenebut@chromium.org</owner> <summary> MIME type of a download response. Logged when the download UI was offered by @@ -41445,7 +41445,7 @@ </histogram> <histogram name="Enterprise.FCMInvalidationService.PolicyInvalidations" - enum="EnterprisePolicyInvalidations" expires_after="2020-05-10"> + enum="EnterprisePolicyInvalidations" expires_after="2020-07-13"> <owner>askaraitzhan@google.com</owner> <owner>isandrk@chromium.org</owner> <summary> @@ -41460,7 +41460,7 @@ <histogram name="Enterprise.FCMInvalidationService.PolicyInvalidationsRegistrationResult" - enum="BooleanSuccess" expires_after="2020-05-10"> + enum="BooleanSuccess" expires_after="2020-07-13"> <owner>askaraitzhan@google.com</owner> <owner>isandrk@chromium.org</owner> <summary> @@ -41958,7 +41958,7 @@ </histogram> <histogram name="Enterprise.TiclInvalidationService.PolicyInvalidations" - enum="EnterprisePolicyInvalidations" expires_after="2020-05-10"> + enum="EnterprisePolicyInvalidations" expires_after="2020-07-13"> <owner>askaraitzhan@google.com</owner> <owner>isandrk@chromium.org</owner> <summary> @@ -41973,7 +41973,7 @@ <histogram name="Enterprise.TiclInvalidationService.PolicyInvalidationsRegistrationResult" - enum="BooleanSuccess" expires_after="2020-05-10"> + enum="BooleanSuccess" expires_after="2020-07-13"> <owner>askaraitzhan@google.com</owner> <owner>isandrk@chromium.org</owner> <summary> @@ -44202,7 +44202,7 @@ </histogram> <histogram name="Event.Latency.ScrollBegin.Touch.GpuSwap2" units="microseconds" - expires_after="2020-04-05"> + expires_after="2020-07-13"> <owner>tdresser@chromium.org</owner> <summary> Time between gpu starts to swap the first ScrollUpdate gesture event in a @@ -44406,7 +44406,7 @@ <histogram name="Event.Latency.ScrollBegin.Wheel.RendererSwapToBrowserNotified2" - units="microseconds" expires_after="2020-04-05"> + units="microseconds" expires_after="2020-07-13"> <owner>tdresser@chromium.org</owner> <summary> Time between the renderer starts to swap a frame induced by the first @@ -44601,7 +44601,7 @@ <histogram name="Event.Latency.ScrollInertial.Touch.TimeToScrollUpdateSwapBegin4" - units="microseconds" expires_after="2020-05-10"> + units="microseconds" expires_after="2020-07-13"> <owner>nozlghadr@chromium.org</owner> <summary> Time between initial creation of a ScrollUpdate gesture event generated from @@ -45142,7 +45142,7 @@ <histogram name="Event.Latency.ScrollUpdate.Wheel.RendererSwapToBrowserNotified2" - units="microseconds" expires_after="2020-04-26"> + units="microseconds" expires_after="2020-07-13"> <owner>tdresser@chromium.org</owner> <summary> Time between the renderer starts to swap a frame induced by ScrollUpdate @@ -53780,7 +53780,7 @@ </histogram> <histogram name="FirstRun.NewUserExperience.NtpBackgroundInteraction" - enum="NuxNtpBackgroundInteractions" expires_after="2020-05-10"> + enum="NuxNtpBackgroundInteractions" expires_after="2020-07-13"> <owner>hcarmona@chromium.org</owner> <owner>johntlee@chromium.org</owner> <summary> @@ -55902,7 +55902,7 @@ </summary> </histogram> -<histogram name="GPU.ContextMemory" units="MB" expires_after="2020-04-19"> +<histogram name="GPU.ContextMemory" units="MB" expires_after="2020-07-13"> <owner>ericrk@chromium.org</owner> <summary>The amount of memory used by a GL Context.</summary> </histogram> @@ -56416,7 +56416,7 @@ </summary> </histogram> -<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2020-05-10"> +<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2020-07-13"> <owner>jmadill@chromium.org</owner> <owner>jonahr@chromium.org</owner> <summary> @@ -56938,7 +56938,7 @@ </histogram> <histogram name="GPU.PassthroughDoLinkProgramTime" units="ms" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>jmadill@chromium.org</owner> <owner>jonahr@google.com</owner> <summary> @@ -57257,7 +57257,7 @@ </histogram> <histogram name="GPU.SwapTimeUs" units="microseconds" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>vasilyt@chromium.org</owner> <owner>backer@chromium.org</owner> <summary> @@ -63629,7 +63629,7 @@ </histogram> <histogram name="Kiosk.Launch.CryptohomeFailure" enum="LoginFailureReason" - expires_after="2020-04-26"> + expires_after="2020-07-13"> <owner>xiyuan@chromium.org</owner> <summary>Tracks cryptohome failure during kiosk launch.</summary> </histogram> @@ -77341,7 +77341,7 @@ <histogram name="MultiDevice.SecureChannel.BLE.Performance.StartScanToConnectionDuration.Background" - units="ms" expires_after="2020-05-10"> + units="ms" expires_after="2020-07-13"> <owner>vecore@google.com</owner> <owner>better-together-dev@google.com</owner> <summary> @@ -103071,6 +103071,16 @@ </summary> </histogram> +<histogram name="OSCrypt.BackendUsage" enum="LinuxPasswordStoreUsage" + expires_after="2020-12-01"> + <owner>cfroussios@chromium.org</owner> + <owner>mamir@chromium.org</owner> + <summary> + The backend selected for this user and whether it was initialised + successfully. + </summary> +</histogram> + <histogram name="OSCrypt.EncryptionKeyLookupError" units="units" expires_after="M81"> <owner>cfroussios@chromium.org</owner> @@ -103485,7 +103495,7 @@ </histogram> <histogram name="Overscroll.Cancelled3" enum="OverscrollNavigationType" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>nzolghadr@chromium.org</owner> <summary> Overscroll gestures that were aborted before they were completed. @@ -108416,7 +108426,7 @@ </histogram> <histogram name="PasswordManager.AccessPasswordInSettings" - enum="AccessPasswordInSettingsEvent" expires_after="M81"> + enum="AccessPasswordInSettingsEvent" expires_after="M87"> <owner>jdoerrie@chromium.org</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -108887,8 +108897,8 @@ </summary> </histogram> -<histogram name="PasswordManager.BlacklistedSitesHiRes" units="units" - expires_after="M81"> +<histogram base="true" name="PasswordManager.BlacklistedSitesHiRes" + units="sites" expires_after="M87"> <owner>jdoerrie@chromium.org</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -117379,7 +117389,7 @@ </histogram> <histogram name="Power.FirmwareResumeTimeOnAC" units="ms" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>tbroch@chromium.org</owner> <summary> The time that the firmware took to resume the Chrome OS device from @@ -117388,7 +117398,7 @@ </histogram> <histogram name="Power.FirmwareResumeTimeOnBattery" units="ms" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>tbroch@chromium.org</owner> <summary> The time that the firmware took to resume the Chrome OS device from @@ -142005,6 +142015,19 @@ </summary> </histogram> +<histogram name="Sharing.DeviceLastUpdatedAgeWithResult" units="hours" + expires_after="2020-06-15"> +<!-- Name completed by histogram_suffixes name="SharingSendMessageResult" --> + + <owner>mvanouwerkerk@chromium.org</owner> + <owner>knollr@chromium.org</owner> + <summary> + The number of hours since the target device timestamp was last updated. + Logged when a message is sent to the device and the result is known. Not + logged for sending ack messages. All platforms. + </summary> +</histogram> + <histogram name="Sharing.DeviceRegistrationResult" enum="SharingDeviceRegistrationResult" expires_after="M84"> <owner>alexchau@chromium.org</owner> @@ -142038,7 +142061,7 @@ </histogram> <histogram name="Sharing.MessageAckTime" units="ms" expires_after="M84"> -<!-- Name completed by histogram_suffixes name="SharingDeviceType" and +<!-- Name completed by histogram_suffixes name="SharingDevicePlatform" and name="SharingMessage" --> <owner>mvanouwerkerk@chromium.org</owner> @@ -142051,8 +142074,6 @@ <histogram name="Sharing.MessageReceivedType" enum="SharingMessageType" expires_after="M84"> -<!-- Name completed by histogram_suffixes name="SharingMessage" --> - <owner>mvanouwerkerk@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -142137,7 +142158,7 @@ <histogram name="Sharing.SendAckMessageResult" enum="SharingSendMessageResult" expires_after="M84"> -<!-- Name completed by histogram_suffixes name="SharingDeviceType" and +<!-- Name completed by histogram_suffixes name="SharingDevicePlatform" and name="SharingMessage" --> <owner>alexchau@chromium.org</owner> @@ -142163,7 +142184,7 @@ <histogram name="Sharing.SendMessageResult" enum="SharingSendMessageResult" expires_after="M84"> -<!-- Name completed by histogram_suffixes name="SharingDeviceType" and +<!-- Name completed by histogram_suffixes name="SharingDevicePlatform" and name="SharingMessage" --> <owner>alexchau@chromium.org</owner> @@ -143516,6 +143537,18 @@ </summary> </histogram> +<histogram base="true" name="Signin.SyncErrorInfoBar" + enum="SyncErrorInfoBarAction" expires_after="M83"> +<!-- Name completed by histogram_suffixes name="SyncErrorInfoBarType" --> + + <owner>triploblastic@chromium.org</owner> + <owner>bsazonov@chromium.org</owner> + <summary> + Records various UI and user action events related to the sync error infobar. + Android only. + </summary> +</histogram> + <histogram name="Signin.SyncFirstSetupCompleteSource" enum="SyncFirstSetupCompleteSource" expires_after="M85"> <owner>triploblastic@chromium.org</owner> @@ -148452,7 +148485,7 @@ </histogram> <histogram name="Startup.AfterStartupTaskDelayedUntilTime" units="ms" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>michaeln@chromium.org</owner> <summary> Time from the process creation until deferred after-startup tasks began @@ -158618,7 +158651,7 @@ </histogram> <histogram name="Tracing.Background.FinalizationDisallowedReason" - enum="TracingFinalizationDisallowedReason" expires_after="2020-04-05"> + enum="TracingFinalizationDisallowedReason" expires_after="2020-07-13"> <owner>ssid@chromium.org</owner> <summary> Reason why background tracing finalization was not allowed. Also see @@ -158628,7 +158661,7 @@ </histogram> <histogram name="Tracing.Background.FinalizingTraceSizeInKB" units="KB" - expires_after="2020-03-29"> + expires_after="2020-07-13"> <owner>oysteine@chromium.org</owner> <summary> The size, in kilobytes, of a finalized trace ready to be uploaded. @@ -159830,7 +159863,7 @@ </histogram> <histogram name="UKM.UserDemographics.Status" enum="UserDemographicsStatus" - expires_after="2020-05-08"> + expires_after="2020-07-13"> <owner>vincb@google.com</owner> <owner>ukm-team@google.com</owner> <summary> @@ -160887,7 +160920,7 @@ </histogram> <histogram name="UMA.TruncatedEvents.UserAction" units="events" - expires_after="2020-07-06"> + expires_after="2020-07-13"> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -160973,7 +161006,7 @@ </histogram> <histogram name="UMA.UserDemographics.Status" enum="UserDemographicsStatus" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>vincb@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -166748,7 +166781,7 @@ </histogram> <histogram name="WebAuthentication.AttestationPromptResult" - enum="WebAuthenticationAttestationPromptResult" expires_after="2020-05-10"> + enum="WebAuthenticationAttestationPromptResult" expires_after="2020-07-13"> <owner>agl@chromium.org</owner> <summary> Tracks events related to prompting users for permission to pass WebAuthn @@ -166771,7 +166804,7 @@ </histogram> <histogram name="WebAuthentication.CredentialRequestAllowCredentialsCount" - units="credentials" expires_after="2020-05-10"> + units="credentials" expires_after="2020-07-13"> <owner>kenrb@chromium.org</owner> <owner>kpaulhamus@chromium.org</owner> <summary> @@ -166782,7 +166815,7 @@ </histogram> <histogram name="WebAuthentication.GetAssertionRequestTransport" - enum="WebAuthenticationFidoTransport" expires_after="2020-05-03"> + enum="WebAuthenticationFidoTransport" expires_after="2020-07-13"> <owner>kenrb@chromium.org</owner> <owner>kpaulhamus@chromium.org</owner> <summary> @@ -166793,7 +166826,7 @@ </histogram> <histogram name="WebAuthentication.GetAssertionResponseTransport" - enum="WebAuthenticationFidoTransport" expires_after="2020-05-10"> + enum="WebAuthenticationFidoTransport" expires_after="2020-07-13"> <owner>kenrb@chromium.org</owner> <owner>kpaulhamus@chromium.org</owner> <summary> @@ -166813,7 +166846,7 @@ </histogram> <histogram name="WebAuthentication.MakeCredentialRequestTransport" - enum="WebAuthenticationFidoTransport" expires_after="2020-05-10"> + enum="WebAuthenticationFidoTransport" expires_after="2020-07-13"> <owner>kenrb@chromium.org</owner> <owner>kpaulhamus@chromium.org</owner> <summary> @@ -166824,7 +166857,7 @@ </histogram> <histogram name="WebAuthentication.MakeCredentialResponseTransport" - enum="WebAuthenticationFidoTransport" expires_after="2020-05-03"> + enum="WebAuthenticationFidoTransport" expires_after="2020-07-13"> <owner>kenrb@chromium.org</owner> <owner>kpaulhamus@chromium.org</owner> <summary> @@ -166848,7 +166881,7 @@ <histogram name="WebAuthentication.U2FAttestationPromptResult" enum="WebAuthenticationU2FAttestationPromptResult" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>agl@chromium.org</owner> <summary> Tracks events related to prompting users for permission to pass U2F @@ -171257,7 +171290,7 @@ </histogram> <histogram name="WebRTC.Video.InterframeDelay95PercentileInMs" units="ms" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>ilnik@chromium.org</owner> <summary> The 95th percentile of interframe delay for a received video stream. @@ -171597,7 +171630,7 @@ </histogram> <histogram name="WebRTC.Video.Screenshare.BandwidthLimitedResolutionInPercent" - units="%" expires_after="2020-05-10"> + units="%" expires_after="2020-07-13"> <owner>sprang@chromium.org</owner> <summary> Percentage of sent frames that are limited in resolution due to bandwidth @@ -172151,7 +172184,7 @@ </histogram> <histogram name="WebRTC.Video.SentToInputFpsRatioPercent" units="%" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>ilnik@chromium.org</owner> <summary> Ratio between SentFramesPerSecond and InputFramesPerSecond in percents. @@ -172179,7 +172212,7 @@ </histogram> <histogram name="WebRTC.Video.TimeInBlockyVideoPercentage" units="%" - expires_after="2020-05-10"> + expires_after="2020-07-13"> <owner>ilnik@chromium.org</owner> <summary> Percentage of time the receive video stream playbacks low quality blocky @@ -172282,7 +172315,7 @@ </histogram> <histogram name="WebRtcEventLogging.Upload" enum="WebRtcEventLoggingUploadEnum" - expires_after="2020-03-01"> + expires_after="2020-07-13"> <owner>eladalon@chromium.org</owner> <owner>saeedj@google.com</owner> <owner>manj@google.com</owner> @@ -188748,7 +188781,11 @@ <affected-histogram name="Sharing.MessageAckTime.Mac"/> <affected-histogram name="Sharing.MessageAckTime.Unknown"/> <affected-histogram name="Sharing.MessageAckTime.Windows"/> - <affected-histogram name="Sharing.MessageReceivedType"/> + <affected-histogram name="Sharing.MessageReceivedType"> + <obsolete> + Removed 2020-01. + </obsolete> + </affected-histogram> <affected-histogram name="Sharing.SendAckMessageResult"/> <affected-histogram name="Sharing.SendAckMessageResult.Android"/> <affected-histogram name="Sharing.SendAckMessageResult.ChromeOS"/> @@ -188767,6 +188804,16 @@ <affected-histogram name="Sharing.SendMessageResult.Windows"/> </histogram_suffixes> +<histogram_suffixes name="SharingSendMessageResult" separator="."> + <suffix name="AckTimeout" label="Timeout waiting for ack"/> + <suffix name="DeviceNotFound" label="Device is not found"/> + <suffix name="InternalError" label="Other internal error"/> + <suffix name="NetworkError" label="Network error"/> + <suffix name="PayloadTooLarge" label="Payload is too large"/> + <suffix name="Successful" label="Successful"/> + <affected-histogram name="Sharing.DeviceLastUpdatedAgeWithResult"/> +</histogram_suffixes> + <histogram_suffixes name="ShillCumulativeTimeOnline" separator="."> <suffix name="Any" label="Any connection type"/> <suffix name="Cellular" label="Cellular connection"/> @@ -189453,6 +189500,13 @@ <affected-histogram name="Sync.ConfigureTime_Subsequent"/> </histogram_suffixes> +<histogram_suffixes name="SyncErrorInfoBarType" separator="."> + <suffix name="AuthError" label="Auth error."/> + <suffix name="PassphraseRequired" label="Passphrase required."/> + <suffix name="SyncSetupIncomplete" label="Sync setup incomplete."/> + <affected-histogram name="Signin.SyncErrorInfoBar"/> +</histogram_suffixes> + <histogram_suffixes name="SyncFaviconRequestOrigin" separator="."> <suffix name="HISTORY" label="Request made by chrome://history."/> <suffix name="RECENTLY_CLOSED_TABS" @@ -189619,6 +189673,9 @@ </histogram_suffixes> <histogram_suffixes name="SyncModelTypeByMacro" separator="" ordering="prefix"> + <obsolete> + Deprecated in M80. + </obsolete> <suffix name="AppList" label="App list"/> <suffix name="AppNotifications" label="App notifications"> <obsolete>
diff --git a/tools/perf/contrib/media_router_benchmarks/BUILD.gn b/tools/perf/contrib/media_router_benchmarks/BUILD.gn index 3026eb8..fcb1054 100644 --- a/tools/perf/contrib/media_router_benchmarks/BUILD.gn +++ b/tools/perf/contrib/media_router_benchmarks/BUILD.gn
@@ -7,7 +7,6 @@ "extension/manifest.json", "extension/script.js", ] - outputs = [ - "$root_out_dir/media_router/telemetry_extension/{{source_file_part}}", - ] + outputs = + [ "$root_out_dir/media_router/telemetry_extension/{{source_file_part}}" ] }
diff --git a/ui/events/blink/event_with_callback.cc b/ui/events/blink/event_with_callback.cc index c3c685d..48cced4c 100644 --- a/ui/events/blink/event_with_callback.cc +++ b/ui/events/blink/event_with_callback.cc
@@ -46,6 +46,11 @@ return CanCoalesce(other.event(), event()); } +void EventWithCallback::SetScrollbarManipulationHandledOnCompositorThread() { + for (auto& original_event : original_events_) + original_event.event_->SetScrollbarManipulationHandledOnCompositorThread(); +} + void EventWithCallback::CoalesceWith(EventWithCallback* other, base::TimeTicks timestamp_now) { // |other| should be a newer event than |this|.
diff --git a/ui/events/blink/event_with_callback.h b/ui/events/blink/event_with_callback.h index a554275..4d8d2ab 100644 --- a/ui/events/blink/event_with_callback.h +++ b/ui/events/blink/event_with_callback.h
@@ -63,6 +63,7 @@ return original_events_.empty() ? nullptr : original_events_.front().event_.get(); } + void SetScrollbarManipulationHandledOnCompositorThread(); private: friend class test::InputHandlerProxyEventQueueTest;
diff --git a/ui/events/blink/input_handler_proxy.cc b/ui/events/blink/input_handler_proxy.cc index 57fbc512..17bd9a5 100644 --- a/ui/events/blink/input_handler_proxy.cc +++ b/ui/events/blink/input_handler_proxy.cc
@@ -338,7 +338,8 @@ current_overscroll_params_.reset(); InputHandlerProxy::EventDisposition disposition = RouteToTypeSpecificHandler( - event_with_callback->event(), original_latency_info); + event_with_callback->event(), event_with_callback.get(), + original_latency_info); blink::WebGestureEvent::Type type = event_with_callback->event().GetType(); switch (type) { @@ -472,7 +473,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::RouteToTypeSpecificHandler( - const WebInputEvent& event, + const blink::WebInputEvent& event, + EventWithCallback* event_with_callback, const LatencyInfo& original_latency_info) { DCHECK(input_handler_); @@ -574,10 +576,11 @@ original_latency_info, mouse_event.TimeStamp()); } - // Drop the mousedown for now as the gesture event equivalent for this - // has already been added to the CompositorThreadEventQueue and will - // be dispatched at the vsync boundary. - return DROP_EVENT; + // Mark this event as being handled on the compositor thread. + if (event_with_callback) { + event_with_callback + ->SetScrollbarManipulationHandledOnCompositorThread(); + } } } @@ -599,10 +602,11 @@ pointer_result, original_latency_info, mouse_event.TimeStamp()); - // Drop the mouseup for now as the gesture event equivalent for this - // has already been added to the CompositorThreadEventQueue and will - // be dispatched at the vsync boundary. - return DROP_EVENT; + // Mark this event as being handled on the compositor thread. + if (event_with_callback) { + event_with_callback + ->SetScrollbarManipulationHandledOnCompositorThread(); + } } } return DID_NOT_HANDLE; @@ -624,10 +628,11 @@ pointer_result, original_latency_info, mouse_event.TimeStamp()); - // Drop the mousemove for now as the gesture event equivalent for this - // has already been added to the CompositorThreadEventQueue and will - // be dispatched at the vsync boundary. - return DROP_EVENT; + // Mark this event as being handled on the compositor thread. + if (event_with_callback) { + event_with_callback + ->SetScrollbarManipulationHandledOnCompositorThread(); + } } return DID_NOT_HANDLE; }
diff --git a/ui/events/blink/input_handler_proxy.h b/ui/events/blink/input_handler_proxy.h index 25902776..fd2fdf09 100644 --- a/ui/events/blink/input_handler_proxy.h +++ b/ui/events/blink/input_handler_proxy.h
@@ -87,8 +87,13 @@ const cc::InputHandlerPointerResult& pointer_result, const LatencyInfo& latency_info, const base::TimeTicks now); + // TODO(arakeri): Update tests in input_handler_proxy_unittests to call + // HandleInputEventWithLatencyInfo instead of directly calling + // RouteToTypeSpecificHandler. Once that is done, make + // RouteToTypeSpecificHandler private. WIP CL: https://crrev.com/c/2001288 EventDisposition RouteToTypeSpecificHandler( const blink::WebInputEvent& event, + EventWithCallback* event_with_callback = nullptr, const LatencyInfo& original_latency_info = LatencyInfo()); // cc::InputHandlerClient implementation.
diff --git a/ui/gfx/font_fallback_unittest.cc b/ui/gfx/font_fallback_unittest.cc index caacce9..e106787 100644 --- a/ui/gfx/font_fallback_unittest.cc +++ b/ui/gfx/font_fallback_unittest.cc
@@ -162,13 +162,7 @@ // // The previous checks can be activated or deactivated through the class // FallbackFontTestOption (e.g. test_option_). -#if defined(OS_MACOSX) -// https://crbug.com/1022455 -#define MAYBE_GetFallbackFont DISABLED_GetFallbackFont -#else -#define MAYBE_GetFallbackFont GetFallbackFont -#endif -TEST_P(GetFallbackFontTest, MAYBE_GetFallbackFont) { +TEST_P(GetFallbackFontTest, GetFallbackFont) { // Default system font. Font base_font; // Apply font options to the base font.
diff --git a/ui/gfx/platform_font_mac.mm b/ui/gfx/platform_font_mac.mm index f14b7b7..0d26c190a 100644 --- a/ui/gfx/platform_font_mac.mm +++ b/ui/gfx/platform_font_mac.mm
@@ -13,6 +13,7 @@ #import "base/mac/scoped_nsobject.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" +#include "third_party/skia/include/ports/SkTypeface_mac.h" #include "ui/gfx/canvas.h" #include "ui/gfx/font.h" #include "ui/gfx/font_render_params.h" @@ -312,7 +313,8 @@ } sk_sp<SkTypeface> PlatformFontMac::GetNativeSkTypefaceIfAvailable() const { - return nullptr; + return sk_sp<SkTypeface>( + SkCreateTypefaceFromCTFont(base::mac::NSToCFCast(GetNativeFont()))); } ////////////////////////////////////////////////////////////////////////////////
diff --git a/ui/gl/gl_bindings.h b/ui/gl/gl_bindings.h index 0f853ed..7c1ef4c 100644 --- a/ui/gl/gl_bindings.h +++ b/ui/gl/gl_bindings.h
@@ -369,9 +369,6 @@ #define GL_RG16_EXT 0x822C #define GL_RGBA16_EXT 0x805B #define GL_RGB16_EXT 0x8054 -#define GL_R16_SNORM_EXT 0x8F98 -#define GL_RG16_SNORM_EXT 0x8F99 -#define GL_RGBA16_SNORM_EXT 0x8F9B #define GL_RGB16_SNORM_EXT 0x8F9A #endif /* GL_EXT_texture_norm16 */
diff --git a/ui/native_theme/native_theme.h b/ui/native_theme/native_theme.h index 100f822..0c26cce 100644 --- a/ui/native_theme/native_theme.h +++ b/ui/native_theme/native_theme.h
@@ -245,6 +245,7 @@ bool draw_edges; int classic_state; // Used on Windows when uxtheme is not available. bool has_border; + bool auto_complete_active; }; struct TrackbarExtraParams {
diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc index 0d1c3728..87af723 100644 --- a/ui/native_theme/native_theme_base.cc +++ b/ui/native_theme/native_theme_base.cc
@@ -979,7 +979,13 @@ fill_flags.setStyle(cc::PaintFlags::kFill_Style); if (text.background_color != 0) { PaintLightenLayer(canvas, bounds, state, border_radius, color_scheme); - fill_flags.setColor(ControlsBackgroundColorForState(state, color_scheme)); + SkColor text_field_background_color = + ControlsBackgroundColorForState(state, color_scheme); + if (text.auto_complete_active && state != kDisabled) { + text_field_background_color = + GetControlColor(kAutoCompleteBackground, color_scheme); + } + fill_flags.setColor(text_field_background_color); canvas->drawRoundRect(bounds, border_radius, border_radius, fill_flags); } @@ -1608,6 +1614,8 @@ return SkColorSetRGB(0x37, 0x93, 0xFF); case kDisabledSlider: return SkColorSetRGB(0xCB, 0xCB, 0xCB); + case kAutoCompleteBackground: + return SkColorSetRGB(0xE8, 0xF0, 0xFE); } NOTREACHED(); return gfx::kPlaceholderColor; @@ -1640,6 +1648,7 @@ case kHoveredFill: case kPressedFill: case kDisabledFill: + case kAutoCompleteBackground: case kLightenLayer: return system_colors_[SystemThemeColor::kWindow]; } @@ -1668,6 +1677,7 @@ case kHoveredFill: case kPressedFill: case kDisabledFill: + case kAutoCompleteBackground: case kLightenLayer: return SK_ColorBLACK; }
diff --git a/ui/native_theme/native_theme_base.h b/ui/native_theme/native_theme_base.h index c69159f..5ec6149 100644 --- a/ui/native_theme/native_theme_base.h +++ b/ui/native_theme/native_theme_base.h
@@ -64,7 +64,8 @@ kSlider, kDisabledSlider, kHoveredSlider, - kPressedSlider + kPressedSlider, + kAutoCompleteBackground }; NativeThemeBase();