diff --git a/AUTHORS b/AUTHORS
index f9f475a..6a4dc8e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -440,6 +440,7 @@
 JongKwon Lee <jongkwon.lee@navercorp.com>
 Jongsoo Lee <leejongsoo@gmail.com>
 Joone Hur <joone.hur@intel.com>
+Joonghun Park <pjh0718@gmail.com>
 Jorge Villatoro <jorge@tomatocannon.com>
 Joseph Gentle <josephg@gmail.com>
 Joseph Lolak <joseph.lolak@samsung.com>
diff --git a/DEPS b/DEPS
index 935db656..9d176958 100644
--- a/DEPS
+++ b/DEPS
@@ -127,11 +127,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': '8546335d2d40c31e7c3a3672aad583ccf08beff3',
+  'skia_revision': '5bbd02d6bb3d933fbe73d6b8fc915caa120bbcaf',
   # 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': '6b0fdfceb1d6b3c73a1e84d510307ef965601465',
+  'v8_revision': '2f408608876b015b5c40977a6e3bf3984ce8cbe8',
   # 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.
@@ -139,15 +139,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'd09546e1ec906c5027c25ba0ba3a49e5affb6643',
+  'angle_revision': 'f78131dac0763e4c2d1310a9560cbd311e5dea64',
   # 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': 'e53533d6fdf9838ecc16842b5e071c132881676a',
+  'swiftshader_revision': 'b47c816ad7e6b7643b5491d6b0b3f373e316844c',
   # 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': '36e541ccbf9f30b0ae2604bd0ac4b3bd9e853d6b',
+  'pdfium_revision': '01e1527e35e2b21c9d6b5434cf2123e1a34dc58b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling openmax_dl
   # and whatever else without interference from each other.
@@ -190,7 +190,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': 'e4abf4c59be62c98f05d62d9a5dd8418c6d92cdb',
+  'catapult_revision': 'a4323c9b818b66583feb3bd7df786f564ee2b756',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -254,7 +254,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '87bf834109fd5d372e62901101f285d4fb65fe67',
+  'dawn_revision': '8deadd8d022c80dfe85328da28dc3ef8e354453f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -727,7 +727,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'c08d404a452b5d55b99fb665ace0435ba4d6e198',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '73f6992d34868b8002380c864cd1a3273d2e4ce1',
       'condition': 'checkout_linux',
   },
 
@@ -752,7 +752,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '298f2cf820dfe45dff53b0e41b11441dbf72b48c',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '18f119bb3a0335fe9fdf8b94e5eebcea527784d9',
 
   'src/third_party/devtools-node-modules':
     Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'),
@@ -1265,7 +1265,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'a0f51b2e123f39c9ff12e621b0b47dd28dd64424',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '487c09bb73c18fd7ae8c2efc746531422c324c1f',
+    Var('webrtc_git') + '/src.git' + '@' + '19d0104abbeb808e0ba27c56dc37916bbe5375ce',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1306,7 +1306,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@d2b61f7238c15ebf2d920476f1b7b734b4acdee8',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@48d5237abd4dda469d49bb8a92a52b62e0047e38',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/browser/aw_http_auth_handler.h b/android_webview/browser/aw_http_auth_handler.h
index ecb5818d..491daf2c 100644
--- a/android_webview/browser/aw_http_auth_handler.h
+++ b/android_webview/browser/aw_http_auth_handler.h
@@ -13,11 +13,11 @@
 
 namespace content {
 class WebContents;
-};
+}
 
 namespace net {
 class AuthChallengeInfo;
-};
+}
 
 namespace android_webview {
 
diff --git a/android_webview/browser/aw_pdf_exporter.h b/android_webview/browser/aw_pdf_exporter.h
index a4ca157..4735aaa 100644
--- a/android_webview/browser/aw_pdf_exporter.h
+++ b/android_webview/browser/aw_pdf_exporter.h
@@ -13,11 +13,11 @@
 
 namespace content {
 class WebContents;
-};
+}
 
 namespace printing {
 class PrintSettings;
-};
+}
 
 namespace android_webview {
 
diff --git a/android_webview/browser/aw_settings.cc b/android_webview/browser/aw_settings.cc
index f8175890..4d9867b2 100644
--- a/android_webview/browser/aw_settings.cc
+++ b/android_webview/browser/aw_settings.cc
@@ -47,7 +47,7 @@
 
 const void* const kAwSettingsUserDataKey = &kAwSettingsUserDataKey;
 
-};  // namespace
+}  // namespace
 
 class AwSettingsUserData : public base::SupportsUserData::Data {
  public:
diff --git a/android_webview/browser/gfx/test/fake_window.cc b/android_webview/browser/gfx/test/fake_window.cc
index 9c8ced56..b4031e3 100644
--- a/android_webview/browser/gfx/test/fake_window.cc
+++ b/android_webview/browser/gfx/test/fake_window.cc
@@ -24,7 +24,7 @@
     view_root_->context_current_ = true;
     bool result = view_root_->context_->MakeCurrent(view_root_->surface_.get());
     DCHECK(result);
-  };
+  }
 
   ~ScopedMakeCurrent() {
     DCHECK(view_root_->context_current_);
diff --git a/ash/app_list/views/search_result_list_view.cc b/ash/app_list/views/search_result_list_view.cc
index 4731f98..c4ac1708 100644
--- a/ash/app_list/views/search_result_list_view.cc
+++ b/ash/app_list/views/search_result_list_view.cc
@@ -137,6 +137,9 @@
       view_delegate_->InvokeSearchResultAction(view->result()->id(),
                                                action_index, event_flags);
     } else if (action == ash::OmniBoxZeroStateAction::kAppendSuggestion) {
+      // Make sure ChromeVox will focus on the search box.
+      main_view_->search_box_view()->search_box()->NotifyAccessibilityEvent(
+          ax::mojom::Event::kSelection, true);
       main_view_->search_box_view()->UpdateQuery(view->result()->title());
     }
   }
diff --git a/ash/app_list/views/search_result_view.cc b/ash/app_list/views/search_result_view.cc
index ae38cddb..1867b3f3 100644
--- a/ash/app_list/views/search_result_view.cc
+++ b/ash/app_list/views/search_result_view.cc
@@ -365,6 +365,25 @@
   actions_view_->UpdateButtonsOnStateChanged();
 }
 
+void SearchResultView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
+  if (!visible())
+    return;
+
+  // This is a work around to deal with the nested button case(append and remove
+  // button are child button of SearchResultView), which is not supported by
+  // ChromeVox. see details in crbug.com/924776.
+  // We change the role of the parent view SearchResultView to kGenericContainer
+  // i.e., not a kButton anymore.
+  node_data->role = ax::mojom::Role::kGenericContainer;
+  node_data->AddState(ax::mojom::State::kFocusable);
+  node_data->SetDefaultActionVerb(ax::mojom::DefaultActionVerb::kClick);
+  node_data->SetName(GetAccessibleName());
+}
+
+void SearchResultView::VisibilityChanged(View* starting_from, bool is_visible) {
+  NotifyAccessibilityEvent(ax::mojom::Event::kLayoutComplete, true);
+}
+
 void SearchResultView::OnGestureEvent(ui::GestureEvent* event) {
   switch (event->type()) {
     case ui::ET_GESTURE_LONG_PRESS:
diff --git a/ash/app_list/views/search_result_view.h b/ash/app_list/views/search_result_view.h
index 0cd665b..cec2ae5 100644
--- a/ash/app_list/views/search_result_view.h
+++ b/ash/app_list/views/search_result_view.h
@@ -96,6 +96,8 @@
   void OnBlur() override;
   void OnMouseEntered(const ui::MouseEvent& event) override;
   void OnMouseExited(const ui::MouseEvent& event) override;
+  void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
+  void VisibilityChanged(View* starting_from, bool is_visible) override;
 
   // ui::EventHandler overrides:
   void OnGestureEvent(ui::GestureEvent* event) override;
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 317d9f1..b228fcc 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -1649,6 +1649,9 @@
       <message name="IDS_ASH_MESSAGE_CENTER_CLEAR_ALL_BUTTON_LABEL" desc="The label text for clearing all notifications.">
         Clear all
       </message>
+      <message name="IDS_ASH_MESSAGE_CENTER_HIDDEN_NOTIFICATION_COUNT_LABEL" desc="The label text the number of hidden notifications.">
+        +<ph name="COUNT">$1<ex>2</ex></ph> more
+      </message>
       <message name="IDS_ASH_MESSAGE_CENTER_SETTINGS_BUTTON_TOOLTIP" desc="The tooltip text for visiting the appropriate settings page in the footer of the message center.">
         Settings
       </message>
diff --git a/ash/ash_strings_grd/IDS_ASH_MESSAGE_CENTER_HIDDEN_NOTIFICATION_COUNT_LABEL.png.sha1 b/ash/ash_strings_grd/IDS_ASH_MESSAGE_CENTER_HIDDEN_NOTIFICATION_COUNT_LABEL.png.sha1
new file mode 100644
index 0000000..ac139c2
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_ASH_MESSAGE_CENTER_HIDDEN_NOTIFICATION_COUNT_LABEL.png.sha1
@@ -0,0 +1 @@
+dfd3c833114e1cc1eec2a7959aaed35c18afb8e9
\ No newline at end of file
diff --git a/ash/assistant/assistant_alarm_timer_controller.cc b/ash/assistant/assistant_alarm_timer_controller.cc
index 7f5cde3..6b52c7de8 100644
--- a/ash/assistant/assistant_alarm_timer_controller.cc
+++ b/ash/assistant/assistant_alarm_timer_controller.cc
@@ -4,6 +4,10 @@
 
 #include "ash/assistant/assistant_alarm_timer_controller.h"
 
+#include <map>
+#include <string>
+#include <utility>
+
 #include "ash/assistant/assistant_controller.h"
 #include "ash/assistant/assistant_notification_controller.h"
 #include "ash/assistant/util/deep_link_util.h"
@@ -45,6 +49,7 @@
   using chromeos::assistant::mojom::AssistantNotification;
   using chromeos::assistant::mojom::AssistantNotificationButton;
   using chromeos::assistant::mojom::AssistantNotificationPtr;
+  using chromeos::assistant::mojom::AssistantNotificationType;
 
   const std::string title =
       l10n_util::GetStringUTF8(IDS_ASSISTANT_TIMER_NOTIFICATION_TITLE);
@@ -55,12 +60,23 @@
 
   AssistantNotificationPtr notification = AssistantNotification::New();
 
+  // If in-Assistant notifications are supported, we'll allow alarm/timer
+  // notifications to show in either Assistant UI or the Message Center.
+  // Otherwise, we'll only allow the notification to show in the Message Center.
+  notification->type =
+      chromeos::assistant::features::IsInAssistantNotificationsEnabled()
+          ? AssistantNotificationType::kPreferInAssistant
+          : AssistantNotificationType::kSystem;
+
   notification->title = title;
   notification->message = message;
   notification->action_url = action_url;
   notification->client_id = alarm_timer.id;
   notification->grouping_key = kTimerNotificationGroupingKey;
 
+  // This notification should be able to wake up the display if it was off.
+  notification->is_high_priority = true;
+
   // "STOP" button.
   notification->buttons.push_back(AssistantNotificationButton::New(
       l10n_util::GetStringUTF8(IDS_ASSISTANT_TIMER_NOTIFICATION_STOP_BUTTON),
diff --git a/ash/assistant/assistant_notification_controller.cc b/ash/assistant/assistant_notification_controller.cc
index 489e1e7..bc2fea8 100644
--- a/ash/assistant/assistant_notification_controller.cc
+++ b/ash/assistant/assistant_notification_controller.cc
@@ -4,6 +4,9 @@
 
 #include "ash/assistant/assistant_notification_controller.h"
 
+#include <memory>
+#include <utility>
+
 #include "ash/assistant/assistant_controller.h"
 #include "ash/assistant/util/deep_link_util.h"
 #include "ash/new_window_controller.h"
@@ -48,7 +51,8 @@
           /*delegate=*/nullptr, kNotificationAssistantIcon,
           message_center::SystemNotificationWarningLevel::NORMAL);
 
-  system_notification->set_priority(message_center::DEFAULT_PRIORITY);
+  if (notification->is_high_priority)
+    system_notification->set_priority(message_center::HIGH_PRIORITY);
 
   return system_notification;
 }
@@ -58,6 +62,13 @@
       message_center::NotifierType::SYSTEM_COMPONENT, kNotifierId);
 }
 
+bool IsSystemNotification(
+    const chromeos::assistant::mojom::AssistantNotification* notification) {
+  using chromeos::assistant::mojom::AssistantNotificationType;
+  return notification->type == AssistantNotificationType::kPreferInAssistant ||
+         notification->type == AssistantNotificationType::kSystem;
+}
+
 bool IsValidActionUrl(const GURL& action_url) {
   return action_url.is_valid() && (action_url.SchemeIsHTTPOrHTTPS() ||
                                    assistant::util::IsDeepLinkUrl(action_url));
@@ -73,11 +84,13 @@
       binding_(this),
       notifier_id_(GetNotifierId()) {
   AddModelObserver(this);
+  assistant_controller_->AddObserver(this);
   message_center::MessageCenter::Get()->AddObserver(this);
 }
 
 AssistantNotificationController::~AssistantNotificationController() {
   message_center::MessageCenter::Get()->RemoveObserver(this);
+  assistant_controller_->RemoveObserver(this);
   RemoveModelObserver(this);
 }
 
@@ -101,10 +114,69 @@
   assistant_ = assistant;
 }
 
+// AssistantControllerObserver -------------------------------------------------
+
+void AssistantNotificationController::OnAssistantControllerConstructed() {
+  assistant_controller_->ui_controller()->AddModelObserver(this);
+}
+
+void AssistantNotificationController::OnAssistantControllerDestroying() {
+  assistant_controller_->ui_controller()->RemoveModelObserver(this);
+}
+
+// AssistantUiModelObserver ----------------------------------------------------
+
+void AssistantNotificationController::OnUiVisibilityChanged(
+    AssistantVisibility new_visibility,
+    AssistantVisibility old_visibility,
+    base::Optional<AssistantEntryPoint> entry_point,
+    base::Optional<AssistantExitPoint> exit_point) {
+  switch (new_visibility) {
+    case AssistantVisibility::kVisible:
+      // When the Assistant UI becomes visible we convert any notifications of
+      // type |kPreferInAssistant| to type |kInAssistant|. This will cause them
+      // to be removed from the Message Center (if they had previously been
+      // added) and to finish out their lifetimes as in-Assistant notifications.
+      for (const auto* notification : model_.GetNotificationsByType(
+               AssistantNotificationType::kPreferInAssistant)) {
+        auto update = notification->Clone();
+        update->type = AssistantNotificationType::kInAssistant;
+        model_.AddOrUpdateNotification(std::move(update));
+      }
+      break;
+    case AssistantVisibility::kHidden:
+    case AssistantVisibility::kClosed:
+      // When the Assistant UI is no longer visible to the user we remove any
+      // notifications of type |kInAssistant| as this type of notification does
+      // not outlive the Assistant view hierarchy.
+      if (old_visibility == AssistantVisibility::kVisible) {
+        for (const auto* notification : model_.GetNotificationsByType(
+                 AssistantNotificationType::kInAssistant)) {
+          model_.RemoveNotificationById(notification->client_id,
+                                        /*from_server=*/false);
+        }
+      }
+      break;
+  }
+}
+
 // mojom::AssistantNotificationController --------------------------------------
 
 void AssistantNotificationController::AddOrUpdateNotification(
     AssistantNotificationPtr notification) {
+  const AssistantVisibility visibility =
+      assistant_controller_->ui_controller()->model()->visibility();
+
+  // If Assistant UI is visible and |notification| is of type
+  // |kPreferInAssistant|, we convert it to a notification of type
+  // |kInAssistant|. This will cause the notification to be removed from the
+  // Message Center (if it had previously been added) and it will finish out its
+  // lifetime as an in-Assistant notification.
+  if (visibility == AssistantVisibility::kVisible &&
+      notification->type == AssistantNotificationType::kPreferInAssistant) {
+    notification->type = AssistantNotificationType::kInAssistant;
+  }
+
   model_.AddOrUpdateNotification(std::move(notification));
 }
 
@@ -132,6 +204,10 @@
   if (!Shell::Get()->voice_interaction_controller()->notification_enabled())
     return;
 
+  // We only show system notifications in the Message Center.
+  if (!IsSystemNotification(notification))
+    return;
+
   message_center::MessageCenter::Get()->AddNotification(
       CreateSystemNotification(notifier_id_, notification));
 }
@@ -142,6 +218,15 @@
   if (!Shell::Get()->voice_interaction_controller()->notification_enabled())
     return;
 
+  // If the notification that was updated is *not* a system notification, we
+  // need to ensure that it is removed from the Message Center (given that it
+  // may have been a system notification prior to update).
+  if (!IsSystemNotification(notification)) {
+    message_center::MessageCenter::Get()->RemoveNotification(
+        notification->client_id, /*by_user=*/false);
+    return;
+  }
+
   message_center::MessageCenter::Get()->UpdateNotification(
       notification->client_id,
       CreateSystemNotification(notifier_id_, notification));
@@ -200,7 +285,13 @@
 void AssistantNotificationController::OnNotificationRemoved(
     const std::string& notification_id,
     bool by_user) {
-  model_.RemoveNotificationById(notification_id, /*from_server=*/false);
+  // If the notification that was removed is a system notification, we need to
+  // update our notification model. If it is *not* a system notification, then
+  // the notification was removed from the Message Center due to a change of
+  // |type| so it should be retained in the model.
+  const auto* notification = model_.GetNotificationById(notification_id);
+  if (notification && IsSystemNotification(notification))
+    model_.RemoveNotificationById(notification_id, /*from_server=*/false);
 }
 
 }  // namespace ash
diff --git a/ash/assistant/assistant_notification_controller.h b/ash/assistant/assistant_notification_controller.h
index 69cf45a7..4dbef87f 100644
--- a/ash/assistant/assistant_notification_controller.h
+++ b/ash/assistant/assistant_notification_controller.h
@@ -8,8 +8,10 @@
 #include <string>
 
 #include "ash/ash_export.h"
+#include "ash/assistant/assistant_controller_observer.h"
 #include "ash/assistant/model/assistant_notification_model.h"
 #include "ash/assistant/model/assistant_notification_model_observer.h"
+#include "ash/assistant/model/assistant_ui_model_observer.h"
 #include "ash/public/interfaces/assistant_controller.mojom.h"
 #include "base/macros.h"
 #include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
@@ -24,6 +26,8 @@
 // The class to manage Assistant notifications.
 class ASH_EXPORT AssistantNotificationController
     : public mojom::AssistantNotificationController,
+      public AssistantControllerObserver,
+      public AssistantUiModelObserver,
       public AssistantNotificationModelObserver,
       public message_center::MessageCenterObserver {
  public:
@@ -31,6 +35,8 @@
       chromeos::assistant::mojom::AssistantNotification;
   using AssistantNotificationPtr =
       chromeos::assistant::mojom::AssistantNotificationPtr;
+  using AssistantNotificationType =
+      chromeos::assistant::mojom::AssistantNotificationType;
 
   explicit AssistantNotificationController(
       AssistantController* assistant_controller);
@@ -48,6 +54,17 @@
   // Provides a pointer to the |assistant| owned by AssistantController.
   void SetAssistant(chromeos::assistant::mojom::Assistant* assistant);
 
+  // AssistantControllerObserver:
+  void OnAssistantControllerConstructed() override;
+  void OnAssistantControllerDestroying() override;
+
+  // AssistantUiModelObserver:
+  void OnUiVisibilityChanged(
+      AssistantVisibility new_visibility,
+      AssistantVisibility old_visibility,
+      base::Optional<AssistantEntryPoint> entry_point,
+      base::Optional<AssistantExitPoint> exit_point) override;
+
   // mojom::AssistantNotificationController:
   void AddOrUpdateNotification(AssistantNotificationPtr notification) override;
   void RemoveNotificationById(const std::string& id, bool from_server) override;
diff --git a/ash/assistant/model/assistant_notification_model.cc b/ash/assistant/model/assistant_notification_model.cc
index eae1924..c804c3c 100644
--- a/ash/assistant/model/assistant_notification_model.cc
+++ b/ash/assistant/model/assistant_notification_model.cc
@@ -78,6 +78,17 @@
   return it != notifications_.end() ? it->second.get() : nullptr;
 }
 
+std::vector<const chromeos::assistant::mojom::AssistantNotification*>
+AssistantNotificationModel::GetNotificationsByType(
+    AssistantNotificationType type) const {
+  std::vector<const AssistantNotification*> notifications;
+  for (const auto& notification : notifications_) {
+    if (notification.second->type == type)
+      notifications.push_back(notification.second.get());
+  }
+  return notifications;
+}
+
 bool AssistantNotificationModel::HasNotificationForId(
     const std::string& id) const {
   return base::ContainsKey(notifications_, id);
diff --git a/ash/assistant/model/assistant_notification_model.h b/ash/assistant/model/assistant_notification_model.h
index cac6c3c..22c8dbf 100644
--- a/ash/assistant/model/assistant_notification_model.h
+++ b/ash/assistant/model/assistant_notification_model.h
@@ -7,6 +7,7 @@
 
 #include <map>
 #include <string>
+#include <vector>
 
 #include "base/component_export.h"
 #include "base/macros.h"
@@ -25,6 +26,8 @@
       chromeos::assistant::mojom::AssistantNotification;
   using AssistantNotificationPtr =
       chromeos::assistant::mojom::AssistantNotificationPtr;
+  using AssistantNotificationType =
+      chromeos::assistant::mojom::AssistantNotificationType;
 
   AssistantNotificationModel();
   ~AssistantNotificationModel();
@@ -54,6 +57,10 @@
   // Returns the notification uniquely identified by |id|.
   const AssistantNotification* GetNotificationById(const std::string& id) const;
 
+  // Returns all notifications matching the specified |type|.
+  std::vector<const AssistantNotification*> GetNotificationsByType(
+      AssistantNotificationType type) const;
+
   // Returns true if the model contains a notification uniquely identified by
   // |id|, otherwise false.
   bool HasNotificationForId(const std::string& id) const;
diff --git a/ash/assistant/ui/assistant_notification_overlay.cc b/ash/assistant/ui/assistant_notification_overlay.cc
index d054d83b..83c69fc 100644
--- a/ash/assistant/ui/assistant_notification_overlay.cc
+++ b/ash/assistant/ui/assistant_notification_overlay.cc
@@ -28,9 +28,11 @@
 
   // The AssistantViewDelegate outlives the Assistant view hierarchy.
   delegate_->AddNotificationModelObserver(this);
+  delegate_->AddUiModelObserver(this);
 }
 
 AssistantNotificationOverlay::~AssistantNotificationOverlay() {
+  delegate_->RemoveUiModelObserver(this);
   delegate_->RemoveNotificationModelObserver(this);
 }
 
@@ -54,10 +56,30 @@
     PreferredSizeChanged();
 }
 
+void AssistantNotificationOverlay::OnUiVisibilityChanged(
+    AssistantVisibility new_visibility,
+    AssistantVisibility old_visibility,
+    base::Optional<AssistantEntryPoint> entry_point,
+    base::Optional<AssistantExitPoint> exit_point) {
+  if (new_visibility != AssistantVisibility::kVisible)
+    return;
+
+  // We need to create views for any notifications that currently exist of type
+  // |kInAssistant| as they should be shown within Assistant UI.
+  using chromeos::assistant::mojom::AssistantNotificationType;
+  for (const auto* notification :
+       delegate_->GetNotificationModel()->GetNotificationsByType(
+           AssistantNotificationType::kInAssistant)) {
+    AddChildView(new AssistantNotificationView(delegate_, notification));
+  }
+}
+
 void AssistantNotificationOverlay::OnNotificationAdded(
     const AssistantNotification* notification) {
-  // TODO(dmblack): Only add views for notifications of the appropriate type.
-  AddChildView(new AssistantNotificationView(delegate_, notification));
+  // We only show notifications of type |kInAssistant| with Assistant UI.
+  using chromeos::assistant::mojom::AssistantNotificationType;
+  if (notification->type == AssistantNotificationType::kInAssistant)
+    AddChildView(new AssistantNotificationView(delegate_, notification));
 }
 
 void AssistantNotificationOverlay::InitLayout() {
diff --git a/ash/assistant/ui/assistant_notification_overlay.h b/ash/assistant/ui/assistant_notification_overlay.h
index acb3b539..a48b9ac 100644
--- a/ash/assistant/ui/assistant_notification_overlay.h
+++ b/ash/assistant/ui/assistant_notification_overlay.h
@@ -6,6 +6,7 @@
 #define ASH_ASSISTANT_UI_ASSISTANT_NOTIFICATION_OVERLAY_H_
 
 #include "ash/assistant/model/assistant_notification_model_observer.h"
+#include "ash/assistant/model/assistant_ui_model_observer.h"
 #include "ash/assistant/ui/assistant_overlay.h"
 #include "base/component_export.h"
 #include "base/macros.h"
@@ -18,6 +19,7 @@
 // responsible for parenting in-Assistant notifications.
 class COMPONENT_EXPORT(ASSISTANT_UI) AssistantNotificationOverlay
     : public AssistantOverlay,
+      public AssistantUiModelObserver,
       public AssistantNotificationModelObserver {
  public:
   AssistantNotificationOverlay(AssistantViewDelegate* delegate);
@@ -29,6 +31,13 @@
   void ViewHierarchyChanged(
       const ViewHierarchyChangedDetails& details) override;
 
+  // AssistantUiModelObserver:
+  void OnUiVisibilityChanged(
+      AssistantVisibility new_visibility,
+      AssistantVisibility old_visibility,
+      base::Optional<AssistantEntryPoint> entry_point,
+      base::Optional<AssistantExitPoint> exit_point) override;
+
   // AssistantNotificationModelObserver:
   void OnNotificationAdded(const AssistantNotification* notification) override;
 
diff --git a/ash/assistant/ui/assistant_notification_view.cc b/ash/assistant/ui/assistant_notification_view.cc
index 6b0a93e5..24f25296 100644
--- a/ash/assistant/ui/assistant_notification_view.cc
+++ b/ash/assistant/ui/assistant_notification_view.cc
@@ -79,9 +79,21 @@
 
 void AssistantNotificationView::OnNotificationUpdated(
     const AssistantNotification* notification) {
+  // We only care about the |notification| being updated if it is the
+  // notification associated with this view.
   if (notification->client_id != notification_id_)
     return;
 
+  using AssistantNotificationType =
+      chromeos::assistant::mojom::AssistantNotificationType;
+
+  // If the notification associated with this view is no longer of type
+  // |kInAssistant|, it should not be shown in Assistant UI.
+  if (notification->type != AssistantNotificationType::kInAssistant) {
+    delete this;
+    return;
+  }
+
   // Title/Message.
   title_->SetText(base::UTF8ToUTF16(notification->title));
   message_->SetText(base::UTF8ToUTF16(notification->message));
diff --git a/ash/public/cpp/ash_features.cc b/ash/public/cpp/ash_features.cc
index 168b592..148b675 100644
--- a/ash/public/cpp/ash_features.cc
+++ b/ash/public/cpp/ash_features.cc
@@ -66,6 +66,9 @@
 const base::Feature kSupervisedUserDeprecationNotice{
     "SupervisedUserDeprecationNotice", base::FEATURE_ENABLED_BY_DEFAULT};
 
+const base::Feature kNotificationStackingBarRedesign{
+    "NotificationStackingBarRedesign", base::FEATURE_DISABLED_BY_DEFAULT};
+
 bool IsLockScreenNotificationsEnabled() {
   return base::FeatureList::IsEnabled(kLockScreenNotifications);
 }
@@ -118,5 +121,9 @@
   return base::FeatureList::IsEnabled(kSupervisedUserDeprecationNotice);
 }
 
+bool IsNotificationStackingBarRedesignEnabled() {
+  return base::FeatureList::IsEnabled(kNotificationStackingBarRedesign);
+}
+
 }  // namespace features
 }  // namespace ash
diff --git a/ash/public/cpp/ash_features.h b/ash/public/cpp/ash_features.h
index ef3b438..7fe28a7 100644
--- a/ash/public/cpp/ash_features.h
+++ b/ash/public/cpp/ash_features.h
@@ -80,6 +80,9 @@
 // Enables the Supervised User Deprecation notices.
 ASH_PUBLIC_EXPORT extern const base::Feature kSupervisedUserDeprecationNotice;
 
+// Enables the notification stacking bar redesigned UI.
+ASH_PUBLIC_EXPORT extern const base::Feature kNotificationStackingBarRedesign;
+
 ASH_PUBLIC_EXPORT bool IsKeyboardShortcutViewerAppEnabled();
 
 ASH_PUBLIC_EXPORT bool IsLockScreenNotificationsEnabled();
@@ -104,6 +107,8 @@
 
 ASH_PUBLIC_EXPORT bool IsSupervisedUserDeprecationNoticeEnabled();
 
+ASH_PUBLIC_EXPORT bool IsNotificationStackingBarRedesignEnabled();
+
 }  // namespace features
 }  // namespace ash
 
diff --git a/ash/public/cpp/window_properties.cc b/ash/public/cpp/window_properties.cc
index 2050963d..37a100e 100644
--- a/ash/public/cpp/window_properties.cc
+++ b/ash/public/cpp/window_properties.cc
@@ -95,6 +95,9 @@
       kIsShowingInOverviewKey, mojom::kIsShowingInOverview_Property,
       aura::PropertyConverter::CreateAcceptAnyValueCallback());
   property_converter->RegisterPrimitiveProperty(
+      kPrePipWindowStateTypeKey, mojom::kPrePipWindowStateType_Property,
+      base::BindRepeating(&IsValidWindowStateType));
+  property_converter->RegisterPrimitiveProperty(
       kRenderTitleAreaProperty,
       ws::mojom::WindowManager::kRenderParentTitleArea_Property,
       aura::PropertyConverter::CreateAcceptAnyValueCallback());
@@ -172,6 +175,9 @@
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kIsDeferredTabDraggingTargetWindowKey, false)
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kIsDraggingTabsKey, false)
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kIsShowingInOverviewKey, false)
+DEFINE_UI_CLASS_PROPERTY_KEY(mojom::WindowStateType,
+                             kPrePipWindowStateTypeKey,
+                             mojom::WindowStateType::DEFAULT);
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kRenderTitleAreaProperty, false)
 DEFINE_OWNED_UI_CLASS_PROPERTY_KEY(gfx::Rect,
                                    kRestoreBoundsOverrideKey,
diff --git a/ash/public/cpp/window_properties.h b/ash/public/cpp/window_properties.h
index bbea4af..b137474 100644
--- a/ash/public/cpp/window_properties.h
+++ b/ash/public/cpp/window_properties.h
@@ -112,6 +112,10 @@
 ASH_PUBLIC_EXPORT extern const aura::WindowProperty<bool>* const
     kIsShowingInOverviewKey;
 
+// A property key to store the window state the window had before entering PIP.
+ASH_PUBLIC_EXPORT extern const aura::WindowProperty<
+    mojom::WindowStateType>* const kPrePipWindowStateTypeKey;
+
 // Maps to ws::mojom::WindowManager::kRenderParentTitleArea_Property.
 ASH_PUBLIC_EXPORT extern const aura::WindowProperty<bool>* const
     kRenderTitleAreaProperty;
diff --git a/ash/public/interfaces/window_properties.mojom b/ash/public/interfaces/window_properties.mojom
index 60da2dc..8fae082 100644
--- a/ash/public/interfaces/window_properties.mojom
+++ b/ash/public/interfaces/window_properties.mojom
@@ -53,6 +53,9 @@
 // If true, the window is currently showing in overview mode.
 const string kIsShowingInOverview_Property = "ash:is-showing-in-overview";
 
+// A property key to store the window state the window had before entering PIP.
+const string kPrePipWindowStateType_Property = "ash:pre-pip-window-state-type";
+
 // A property key to store the address of the source window that the drag
 // originated from if the window is currently in tab-dragging process.
 const string kTabDraggingSourceWindow_Property =
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc
index 58b9b256..a9aa4b6 100644
--- a/ash/system/message_center/unified_message_center_view.cc
+++ b/ash/system/message_center/unified_message_center_view.cc
@@ -5,6 +5,7 @@
 #include "ash/system/message_center/unified_message_center_view.h"
 
 #include <algorithm>
+#include <memory>
 
 #include "ash/public/cpp/ash_features.h"
 #include "ash/session/session_controller.h"
@@ -14,6 +15,7 @@
 #include "ash/system/message_center/message_center_scroll_bar.h"
 #include "ash/system/message_center/unified_message_list_view.h"
 #include "ash/system/tray/tray_constants.h"
+#include "ash/system/tray/tray_popup_utils.h"
 #include "ash/system/unified/sign_out_button.h"
 #include "ash/system/unified/unified_system_tray_model.h"
 #include "ash/system/unified/unified_system_tray_view.h"
@@ -23,6 +25,12 @@
 #include "ui/message_center/message_center.h"
 #include "ui/message_center/public/cpp/message_center_constants.h"
 #include "ui/message_center/views/message_view.h"
+#include "ui/views/animation/flood_fill_ink_drop_ripple.h"
+#include "ui/views/animation/ink_drop_highlight.h"
+#include "ui/views/animation/ink_drop_impl.h"
+#include "ui/views/animation/ink_drop_mask.h"
+#include "ui/views/background.h"
+#include "ui/views/controls/button/label_button.h"
 #include "ui/views/controls/scroll_view.h"
 #include "ui/views/layout/box_layout.h"
 #include "ui/views/layout/fill_layout.h"
@@ -72,25 +80,135 @@
   DISALLOW_COPY_AND_ASSIGN(ScrollerContentsView);
 };
 
+// The "Clear all" button in the stacking notification bar.
+class StackingBarClearAllButton : public views::LabelButton {
+ public:
+  StackingBarClearAllButton(views::ButtonListener* listener,
+                            const base::string16& text)
+      : views::LabelButton(listener, text) {
+    SetEnabledTextColors(kUnifiedMenuButtonColorActive);
+    SetHorizontalAlignment(gfx::ALIGN_CENTER);
+    SetBorder(views::CreateEmptyBorder(gfx::Insets()));
+    label()->SetSubpixelRenderingEnabled(false);
+    label()->SetFontList(views::Label::GetDefaultFontList().Derive(
+        1, gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM));
+    TrayPopupUtils::ConfigureTrayPopupButton(this);
+  }
+
+  ~StackingBarClearAllButton() override = default;
+
+  // views::LabelButton:
+  gfx::Size CalculatePreferredSize() const override {
+    return gfx::Size(label()->GetPreferredSize().width() +
+                         kStackingNotificationClearAllButtonPadding.width(),
+                     label()->GetPreferredSize().height() +
+                         kStackingNotificationClearAllButtonPadding.height());
+  }
+
+  int GetHeightForWidth(int width) const override {
+    return label()->GetPreferredSize().height() +
+           kStackingNotificationClearAllButtonPadding.height();
+  }
+
+  void PaintButtonContents(gfx::Canvas* canvas) override {
+    views::LabelButton::PaintButtonContents(canvas);
+  }
+
+  std::unique_ptr<views::InkDrop> CreateInkDrop() override {
+    auto ink_drop = TrayPopupUtils::CreateInkDrop(this);
+    ink_drop->SetShowHighlightOnFocus(true);
+    ink_drop->SetShowHighlightOnHover(true);
+    return ink_drop;
+  }
+
+  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override {
+    return TrayPopupUtils::CreateInkDropRipple(
+        TrayPopupInkDropStyle::FILL_BOUNDS, this,
+        GetInkDropCenterBasedOnLastEvent(), SK_ColorBLACK);
+  }
+
+  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
+      const override {
+    return TrayPopupUtils::CreateInkDropHighlight(
+        TrayPopupInkDropStyle::FILL_BOUNDS, this, SK_ColorBLACK);
+  }
+
+  std::unique_ptr<views::InkDropMask> CreateInkDropMask() const override {
+    SkScalar top_radius = SkIntToScalar(kUnifiedTrayCornerRadius);
+    SkScalar radii[8] = {0, 0, top_radius, top_radius, 0, 0, 0, 0};
+    SkPath path;
+    path.addRoundRect(gfx::RectToSkRect(GetContentsBounds()), radii);
+
+    return std::make_unique<views::PathInkDropMask>(size(), path);
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(StackingBarClearAllButton);
+};
+
+int GetStackingNotificationCounterHeight() {
+  return features::IsNotificationStackingBarRedesignEnabled()
+             ? kStackingNotificationCounterWithClearAllHeight
+             : kStackingNotificationCounterHeight;
+}
+
 }  // namespace
 
-StackingNotificationCounterView::StackingNotificationCounterView() {
-  SetBorder(views::CreateSolidSidedBorder(
-      0, 0, 1, 0, kStackingNotificationCounterBorderColor));
+StackingNotificationCounterView::StackingNotificationCounterView(
+    views::ButtonListener* listener) {
+  if (!features::IsNotificationStackingBarRedesignEnabled())
+    return;
+
+  auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
+      views::BoxLayout::kHorizontal,
+      gfx::Insets(0, kStackingNotificationClearAllButtonPadding.left(), 0, 0),
+      0));
+  layout->set_cross_axis_alignment(
+      views::BoxLayout::CROSS_AXIS_ALIGNMENT_STRETCH);
+
+  count_label_ = new views::Label();
+  count_label_->SetEnabledColor(kStackingNotificationCounterLabelColor);
+  count_label_->SetFontList(views::Label::GetDefaultFontList().Derive(
+      1, gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM));
+  AddChildView(count_label_);
+
+  views::View* spacer = new views::View;
+  AddChildView(spacer);
+  layout->SetFlexForView(spacer, 1);
+
+  clear_all_button_ = new StackingBarClearAllButton(
+      listener,
+      l10n_util::GetStringUTF16(IDS_ASH_MESSAGE_CENTER_CLEAR_ALL_BUTTON_LABEL));
+  clear_all_button_->SetTooltipText(l10n_util::GetStringUTF16(
+      IDS_ASH_MESSAGE_CENTER_CLEAR_ALL_BUTTON_TOOLTIP));
+  AddChildView(clear_all_button_);
 }
 
 StackingNotificationCounterView::~StackingNotificationCounterView() = default;
 
-void StackingNotificationCounterView::SetCount(int stacking_count) {
-  stacking_count_ = std::min(stacking_count, kStackingNotificationCounterMax);
-  SetVisible(stacking_count > 0);
+void StackingNotificationCounterView::SetCount(int total_notification_count,
+                                               int stacked_notification_count) {
+  total_notification_count_ = total_notification_count;
+  stacked_notification_count_ = stacked_notification_count;
+
+  if (features::IsNotificationStackingBarRedesignEnabled()) {
+    SetVisible(total_notification_count_ > 1);
+    if (stacked_notification_count_ > 0) {
+      count_label_->SetText(l10n_util::GetStringFUTF16Int(
+          IDS_ASH_MESSAGE_CENTER_HIDDEN_NOTIFICATION_COUNT_LABEL,
+          stacked_notification_count_));
+      count_label_->SetVisible(true);
+    } else {
+      count_label_->SetVisible(false);
+    }
+  } else {
+    SetVisible(stacked_notification_count_ > 0);
+  }
+
   SchedulePaint();
 }
 
 void StackingNotificationCounterView::OnPaint(gfx::Canvas* canvas) {
-  int x = kStackingNotificationCounterStartX;
-  const int y = kStackingNotificationCounterHeight / 2;
-
   cc::PaintFlags flags;
   flags.setColor(message_center::kNotificationBackgroundColor);
   flags.setStyle(cc::PaintFlags::kFill_Style);
@@ -100,11 +218,27 @@
   SkScalar top_radius = SkIntToScalar(kUnifiedTrayCornerRadius);
   SkScalar radii[8] = {top_radius, top_radius, top_radius, top_radius,
                        0,          0,          0,          0};
-  background_path.addRoundRect(gfx::RectToSkRect(GetLocalBounds()), radii);
+
+  gfx::Rect bounds = GetLocalBounds();
+  background_path.addRoundRect(gfx::RectToSkRect(bounds), radii);
   canvas->DrawPath(background_path, flags);
 
+  // We draw a border here than use a views::Border so the ink drop highlight
+  // of the clear all button overlays the border.
+  canvas->Draw1pxLine(gfx::PointF(bounds.bottom_left() - gfx::Vector2d(0, 1)),
+                      gfx::PointF(bounds.bottom_right() - gfx::Vector2d(0, 1)),
+                      kStackingNotificationCounterBorderColor);
+
+  if (features::IsNotificationStackingBarRedesignEnabled())
+    return;
+
+  // Draw the hidden notification dots for the the old UI.
+  int x = kStackingNotificationCounterStartX;
+  const int y = kStackingNotificationCounterHeight / 2;
+  int stacking_count =
+      std::min(stacked_notification_count_, kStackingNotificationCounterMax);
   flags.setColor(kStackingNotificationCounterColor);
-  for (int i = 0; i < stacking_count_; ++i) {
+  for (int i = 0; i < stacking_count; ++i) {
     canvas->DrawCircle(gfx::Point(x, y), kStackingNotificationCounterRadius,
                        flags);
     x += kStackingNotificationCounterDistanceX;
@@ -118,7 +252,7 @@
     UnifiedSystemTrayModel* model)
     : parent_(parent),
       model_(model),
-      stacking_counter_(new StackingNotificationCounterView()),
+      stacking_counter_(new StackingNotificationCounterView(this)),
       scroll_bar_(new MessageCenterScrollBar(this)),
       scroller_(new views::ScrollView()),
       message_list_view_(new UnifiedMessageListView(this, model)),
@@ -178,15 +312,16 @@
 }
 
 void UnifiedMessageCenterView::Layout() {
-  stacking_counter_->SetCount(GetStackedNotificationCount());
+  stacking_counter_->SetCount(message_list_view_->GetTotalNotificationCount(),
+                              GetStackedNotificationCount());
   if (stacking_counter_->visible()) {
     gfx::Rect counter_bounds(GetContentsBounds());
-    counter_bounds.set_height(kStackingNotificationCounterHeight);
+    counter_bounds.set_height(GetStackingNotificationCounterHeight());
     stacking_counter_->SetBoundsRect(counter_bounds);
 
     gfx::Rect scroller_bounds(GetContentsBounds());
     scroller_bounds.Inset(
-        gfx::Insets(kStackingNotificationCounterHeight, 0, 0, 0));
+        gfx::Insets(GetStackingNotificationCounterHeight(), 0, 0, 0));
     scroller_->SetBoundsRect(scroller_bounds);
   } else {
     scroller_->SetBoundsRect(GetContentsBounds());
@@ -212,7 +347,8 @@
       UnifiedSystemTrayModel::NotificationTargetMode::LAST_POSITION);
 
   const bool was_visible = stacking_counter_->visible();
-  stacking_counter_->SetCount(GetStackedNotificationCount());
+  stacking_counter_->SetCount(message_list_view_->GetTotalNotificationCount(),
+                              GetStackedNotificationCount());
   if (was_visible != stacking_counter_->visible()) {
     const int previous_y = scroller_->y();
     Layout();
@@ -311,11 +447,10 @@
   if (scroller_->bounds().IsEmpty())
     scroller_->SetBoundsRect(GetContentsBounds());
 
-  // Consistently use the y offset absolutely kStackingNotificationCounterHeight
-  // below the top of UnifiedMessageCenterView to count number of hidden
-  // notifications.
+  // Consistently use the y offset below the stacked notification bar in the
+  // UnifiedMessageCenterView to count number of hidden notifications.
   const int y_offset = scroller_->GetVisibleRect().y() - scroller_->y() +
-                       kStackingNotificationCounterHeight;
+                       GetStackingNotificationCounterHeight();
   return message_list_view_->CountNotificationsAboveY(y_offset);
 }
 
diff --git a/ash/system/message_center/unified_message_center_view.h b/ash/system/message_center/unified_message_center_view.h
index 313f2b40..cade76b 100644
--- a/ash/system/message_center/unified_message_center_view.h
+++ b/ash/system/message_center/unified_message_center_view.h
@@ -8,7 +8,9 @@
 #include "ash/ash_export.h"
 #include "ash/system/message_center/message_center_scroll_bar.h"
 #include "ash/system/message_center/unified_message_list_view.h"
+#include "ui/views/background.h"
 #include "ui/views/controls/button/button.h"
+#include "ui/views/controls/label.h"
 #include "ui/views/focus/focus_manager.h"
 #include "ui/views/view.h"
 
@@ -22,18 +24,29 @@
 class UnifiedSystemTrayModel;
 class UnifiedSystemTrayView;
 
+// The header shown above the notification list displaying the number of hidden
+// notifications. There are currently two UI implementations toggled by the
+// NotificationStackingBarRedesign feature flag.
 class StackingNotificationCounterView : public views::View {
  public:
-  StackingNotificationCounterView();
+  explicit StackingNotificationCounterView(views::ButtonListener* listener);
   ~StackingNotificationCounterView() override;
 
-  void SetCount(int stacking_count);
+  void SetCount(int total_notification_count, int stacked_notification_count);
 
   // views::View:
   void OnPaint(gfx::Canvas* canvas) override;
 
  private:
-  int stacking_count_ = 0;
+  friend class UnifiedMessageCenterViewTest;
+
+  int total_notification_count_ = 0;
+  int stacked_notification_count_ = 0;
+
+  // These UI elements are only created and shown when the
+  // NotificationStackingBarRedesign feature is enabled.
+  views::Label* count_label_ = nullptr;
+  views::Button* clear_all_button_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(StackingNotificationCounterView);
 };
diff --git a/ash/system/message_center/unified_message_center_view_unittest.cc b/ash/system/message_center/unified_message_center_view_unittest.cc
index b9c30c1c..59eb9684 100644
--- a/ash/system/message_center/unified_message_center_view_unittest.cc
+++ b/ash/system/message_center/unified_message_center_view_unittest.cc
@@ -17,6 +17,7 @@
 #include "base/macros.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/scoped_feature_list.h"
 #include "components/prefs/pref_service.h"
 #include "ui/message_center/message_center.h"
 #include "ui/message_center/views/message_view.h"
@@ -143,19 +144,33 @@
     return message_center_view()->scroller_->contents();
   }
 
-  views::View* GetStackingCounter() {
+  StackingNotificationCounterView* GetStackingCounter() {
     return message_center_view()->stacking_counter_;
   }
 
+  views::View* GetStackingCounterLabel() {
+    return message_center_view()->stacking_counter_->count_label_;
+  }
+
+  views::View* GetStackingCounterClearAllButton() {
+    return message_center_view()->stacking_counter_->clear_all_button_;
+  }
+
   TestUnifiedMessageCenterView* message_center_view() {
     return message_center_view_.get();
   }
 
+  void EnableNotificationStackingBarRedesign() {
+    scoped_feature_list_.InitAndEnableFeature(
+        features::kNotificationStackingBarRedesign);
+  }
+
   int size_changed_count() const { return size_changed_count_; }
 
   UnifiedSystemTrayModel* model() { return model_.get(); }
 
  private:
+  base::test::ScopedFeatureList scoped_feature_list_;
   int id_ = 0;
   int size_changed_count_ = 0;
 
@@ -426,6 +441,108 @@
   EXPECT_FALSE(GetStackingCounter()->visible());
 }
 
+TEST_F(UnifiedMessageCenterViewTest, RedesignedStackingCounterLayout) {
+  EnableNotificationStackingBarRedesign();
+
+  for (size_t i = 0; i < 6; ++i)
+    AddNotification();
+
+  // MessageCenterView is maxed out.
+  CreateMessageCenterView();
+  EXPECT_TRUE(message_center_view()->visible());
+
+  EXPECT_GT(GetMessageListView()->bounds().height(),
+            message_center_view()->bounds().height());
+
+  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_EQ(0, GetStackingCounter()->bounds().y());
+  EXPECT_EQ(GetStackingCounter()->bounds().bottom(),
+            GetScroller()->bounds().y());
+  EXPECT_TRUE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+
+  // Scroll to the top, making the counter label invisible.
+  GetScroller()->ScrollToPosition(GetScrollBar(), 0);
+  message_center_view()->OnMessageCenterScrolled();
+  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+}
+
+TEST_F(UnifiedMessageCenterViewTest,
+       RedesignedStackingCounterMessageListScrolled) {
+  EnableNotificationStackingBarRedesign();
+
+  for (size_t i = 0; i < 6; ++i)
+    AddNotification();
+  CreateMessageCenterView();
+  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+
+  // MessageCenterView is maxed out.
+  EXPECT_GT(GetMessageListView()->bounds().height(),
+            message_center_view()->bounds().height());
+
+  // Scroll to the top, making the counter label invisible.
+  GetScroller()->ScrollToPosition(GetScrollBar(), 0);
+  message_center_view()->OnMessageCenterScrolled();
+  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+
+  gfx::Rect previous_bounds = GetMessageViewVisibleBounds(2);
+
+  // Scrolling past a notification should make the counter label visible.
+  const int scroll_amount = GetMessageViewVisibleBounds(0).height() + 1;
+  GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount);
+  message_center_view()->OnMessageCenterScrolled();
+
+  EXPECT_TRUE(GetStackingCounterLabel()->visible());
+  // The offset change matches with the scroll amount.
+  EXPECT_EQ(previous_bounds - gfx::Vector2d(0, scroll_amount),
+            GetMessageViewVisibleBounds(2));
+
+  // Scrolling back a tiny bit to reveal the notification should make the
+  // counter label invisible again.
+  GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount - 2);
+  message_center_view()->OnMessageCenterScrolled();
+  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+}
+
+TEST_F(UnifiedMessageCenterViewTest,
+       RedesignedStackingCounterNotificationRemoval) {
+  EnableNotificationStackingBarRedesign();
+
+  std::vector<std::string> ids;
+  for (size_t i = 0; i < 6; ++i)
+    ids.push_back(AddNotification());
+  CreateMessageCenterView();
+  EXPECT_TRUE(message_center_view()->visible());
+
+  // MessageCenterView is maxed out.
+  EXPECT_GT(GetMessageListView()->bounds().height(),
+            message_center_view()->bounds().height());
+
+  // Dismiss until there are 2 notifications. The bar should still be visible.
+  EXPECT_TRUE(GetStackingCounter()->visible());
+  for (size_t i = 0; i < 4; ++i) {
+    MessageCenter::Get()->RemoveNotification(ids[i], true /* by_user */);
+    AnimateUntilIdle();
+  }
+  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+
+  // Dismiss until there is only 1 notification left. The bar should be
+  // invisible.
+  MessageCenter::Get()->RemoveNotification(ids[4], true /* by_user */);
+  AnimateUntilIdle();
+  EXPECT_FALSE(GetStackingCounter()->visible());
+}
+
 TEST_F(UnifiedMessageCenterViewTest, RectBelowScroll) {
   for (size_t i = 0; i < 6; ++i)
     AddNotification();
diff --git a/ash/system/message_center/unified_message_list_view.cc b/ash/system/message_center/unified_message_list_view.cc
index fff29f8..b92c66b 100644
--- a/ash/system/message_center/unified_message_list_view.cc
+++ b/ash/system/message_center/unified_message_list_view.cc
@@ -4,6 +4,7 @@
 
 #include "ash/system/message_center/unified_message_list_view.h"
 
+#include "ash/public/cpp/ash_features.h"
 #include "ash/system/message_center/notification_swipe_control_view.h"
 #include "ash/system/message_center/unified_message_center_view.h"
 #include "ash/system/tray/tray_constants.h"
@@ -212,12 +213,16 @@
 
 int UnifiedMessageListView::CountNotificationsAboveY(int y_offset) const {
   for (int i = 0; i < child_count(); ++i) {
-    if (child_at(i)->bounds().bottom() >= y_offset)
+    if (child_at(i)->bounds().bottom() > y_offset)
       return i;
   }
   return child_count();
 }
 
+int UnifiedMessageListView::GetTotalNotificationCount() const {
+  return child_count();
+}
+
 void UnifiedMessageListView::ChildPreferredSizeChanged(views::View* child) {
   if (ignore_size_change_)
     return;
@@ -417,7 +422,12 @@
 
 void UnifiedMessageListView::UpdateBorders() {
   for (int i = 0; i < child_count(); ++i) {
-    const bool is_top = i == 0;
+    bool is_top = i == 0;
+    // When the stacking bar is shown, there should never be a top notification.
+    if (features::IsNotificationStackingBarRedesignEnabled() &&
+        GetTotalNotificationCount() > 1) {
+      is_top = false;
+    }
     const bool is_bottom = i == child_count() - 1;
     GetContainer(i)->UpdateBorder(is_top, is_bottom);
   }
diff --git a/ash/system/message_center/unified_message_list_view.h b/ash/system/message_center/unified_message_list_view.h
index acd45f9..1bdce67 100644
--- a/ash/system/message_center/unified_message_list_view.h
+++ b/ash/system/message_center/unified_message_list_view.h
@@ -62,6 +62,9 @@
   // |y_offset|. O(n) where n is number of notifications.
   int CountNotificationsAboveY(int y_offset) const;
 
+  // Returns the total number of notifications in the list.
+  int GetTotalNotificationCount() const;
+
   // views::View:
   void ChildPreferredSizeChanged(views::View* child) override;
   void PreferredSizeChanged() override;
diff --git a/ash/system/power/power_prefs_unittest.cc b/ash/system/power/power_prefs_unittest.cc
index 498af911..6f008dea 100644
--- a/ash/system/power/power_prefs_unittest.cc
+++ b/ash/system/power/power_prefs_unittest.cc
@@ -49,6 +49,9 @@
 
 std::string GetExpectedPowerPolicyForPrefs(PrefService* prefs,
                                            ScreenLockState screen_lock_state) {
+  const bool is_smart_dim_enabled =
+      prefs->GetBoolean(prefs::kPowerSmartDimEnabled);
+
   power_manager::PowerManagementPolicy expected_policy;
   expected_policy.mutable_ac_delays()->set_screen_dim_ms(
       prefs->GetInteger(screen_lock_state == ScreenLockState::LOCKED
@@ -91,10 +94,17 @@
       prefs->GetBoolean(prefs::kPowerUseAudioActivity));
   expected_policy.set_use_video_activity(
       prefs->GetBoolean(prefs::kPowerUseVideoActivity));
-  expected_policy.set_presentation_screen_dim_delay_factor(
-      prefs->GetDouble(prefs::kPowerPresentationScreenDimDelayFactor));
-  expected_policy.set_user_activity_screen_dim_delay_factor(
-      prefs->GetDouble(prefs::kPowerUserActivityScreenDimDelayFactor));
+  if (is_smart_dim_enabled) {
+    // Screen-dim scaling factors are disabled by PowerPolicyController when
+    // smart-dimming is enabled.
+    expected_policy.set_presentation_screen_dim_delay_factor(1.0);
+    expected_policy.set_user_activity_screen_dim_delay_factor(1.0);
+  } else {
+    expected_policy.set_presentation_screen_dim_delay_factor(
+        prefs->GetDouble(prefs::kPowerPresentationScreenDimDelayFactor));
+    expected_policy.set_user_activity_screen_dim_delay_factor(
+        prefs->GetDouble(prefs::kPowerUserActivityScreenDimDelayFactor));
+  }
   expected_policy.set_wait_for_initial_user_activity(
       prefs->GetBoolean(prefs::kPowerWaitForInitialUserActivity));
   expected_policy.set_force_nonzero_brightness_for_user_activity(
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h
index ae98a9a..d4079c8 100644
--- a/ash/system/tray/tray_constants.h
+++ b/ash/system/tray/tray_constants.h
@@ -191,10 +191,14 @@
 constexpr int kStackingNotificationCounterStartX = 18;
 constexpr int kStackingNotificationCounterDistanceX = 10;
 constexpr int kStackingNotificationCounterHeight = 20;
+constexpr int kStackingNotificationCounterWithClearAllHeight = 32;
+constexpr gfx::Insets kStackingNotificationClearAllButtonPadding(8, 16);
 constexpr SkColor kStackingNotificationCounterColor =
     SkColorSetRGB(0x5f, 0x63, 0x68);
 constexpr SkColor kStackingNotificationCounterBorderColor =
     SkColorSetRGB(0xe0, 0xe0, 0xe0);
+constexpr SkColor kStackingNotificationCounterLabelColor =
+    SkColorSetRGB(0x5f, 0x64, 0x68);
 
 // Size of an icon drawn inside top shortcut buttons.
 // A dark disc with |kTrayItemSize| diameter is drawn in the background.
diff --git a/ash/wm/base_state.cc b/ash/wm/base_state.cc
index 294314e..8759fb2 100644
--- a/ash/wm/base_state.cc
+++ b/ash/wm/base_state.cc
@@ -5,6 +5,7 @@
 #include "ash/wm/base_state.h"
 
 #include "ash/public/cpp/window_animation_types.h"
+#include "ash/public/cpp/window_properties.h"
 #include "ash/public/cpp/window_state_type.h"
 #include "ash/screen_util.h"
 #include "ash/shell.h"
@@ -149,8 +150,12 @@
     // Save the previous show state when it is not minimized so that we can
     // correctly restore it after exiting the minimized mode.
     if (!IsMinimizedWindowStateType(previous_state_type)) {
-      window->SetProperty(aura::client::kPreMinimizedShowStateKey,
-                          ToWindowShowState(previous_state_type));
+      window->SetProperty(
+          aura::client::kPreMinimizedShowStateKey,
+          ToWindowShowState(
+              previous_state_type == mojom::WindowStateType::PIP
+                  ? window->GetProperty(ash::kPrePipWindowStateTypeKey)
+                  : previous_state_type));
     }
     // Count minimizing a PIP window as dismissing it. Android apps in PIP mode
     // don't exit when they are dismissed, they just go back to being a regular
diff --git a/ash/wm/window_state.cc b/ash/wm/window_state.cc
index 853eaab7..7bcccb5 100644
--- a/ash/wm/window_state.cc
+++ b/ash/wm/window_state.cc
@@ -529,7 +529,7 @@
       ignore_property_change_(false),
       current_state_(new DefaultState(ToWindowStateType(GetShowState()))) {
   window_->AddObserver(this);
-  UpdatePipState(/*was_pip=*/false);
+  UpdatePipState(mojom::WindowStateType::DEFAULT);
 }
 
 bool WindowState::GetAlwaysOnTop() const {
@@ -602,7 +602,7 @@
     mojom::WindowStateType old_window_state_type) {
   for (auto& observer : observer_list_)
     observer.OnPreWindowStateTypeChange(this, old_window_state_type);
-  UpdatePipState(old_window_state_type == mojom::WindowStateType::PIP);
+  UpdatePipState(old_window_state_type);
 }
 
 void WindowState::NotifyPostStateTypeChange(
@@ -682,7 +682,7 @@
   CrossFadeAnimation(window_, std::move(old_layer_owner), animation_type);
 }
 
-void WindowState::UpdatePipState(bool was_pip) {
+void WindowState::UpdatePipState(mojom::WindowStateType old_window_state_type) {
   auto* widget = views::Widget::GetWidgetForNativeWindow(window());
   if (IsPip()) {
     // widget may not exit in some unit tests.
@@ -695,10 +695,13 @@
     }
     ::wm::SetWindowVisibilityAnimationType(
         window(), WINDOW_VISIBILITY_ANIMATION_TYPE_FADE_IN_SLIDE_OUT);
-
     // There may already be a system ui window on the initial position.
     UpdatePipBounds();
-  } else if (was_pip) {
+    if (old_window_state_type != mojom::WindowStateType::PIP) {
+      window()->SetProperty(ash::kPrePipWindowStateTypeKey,
+                            old_window_state_type);
+    }
+  } else if (old_window_state_type == mojom::WindowStateType::PIP) {
     if (widget) {
       widget->widget_delegate()->SetCanActivate(true);
       Shell::Get()->focus_cycler()->RemoveWidget(widget);
diff --git a/ash/wm/window_state.h b/ash/wm/window_state.h
index 256b961..767b37c5 100644
--- a/ash/wm/window_state.h
+++ b/ash/wm/window_state.h
@@ -411,7 +411,7 @@
 
   // Update PIP related state, such as next window animation type, upon
   // state change.
-  void UpdatePipState(bool was_pip);
+  void UpdatePipState(mojom::WindowStateType old_window_state_type);
 
   // Update the PIP bounds if necessary. This may need to happen when the
   // display work area changes, or if system ui regions like the virtual
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc
index 572a3e0..a5af777 100644
--- a/ash/wm/window_state_unittest.cc
+++ b/ash/wm/window_state_unittest.cc
@@ -573,6 +573,41 @@
   EXPECT_TRUE(window_state->CanConsumeSystemKeys());
 }
 
+TEST_F(WindowStateTest, RestoreStateAfterDismissingPip) {
+  std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
+  wm::WindowState* window_state = wm::GetWindowState(window.get());
+  window->Show();
+  EXPECT_TRUE(window->layer()->visible());
+
+  // Ensure a maximized window gets maximized again after it enters PIP, gets
+  // minimized, and unminimized.
+  window_state->Maximize();
+  ASSERT_TRUE(window_state->IsMaximized());
+
+  const wm::WMEvent enter_pip(wm::WM_EVENT_PIP);
+  window_state->OnWMEvent(&enter_pip);
+  EXPECT_TRUE(window_state->IsPip());
+
+  window_state->Minimize();
+  ASSERT_TRUE(window_state->IsMinimized());
+
+  window_state->Unminimize();
+  ASSERT_TRUE(window_state->IsMaximized());
+
+  // Ensure a freeform window gets freeform again after it enters PIP, gets
+  // minimized, and unminimized.
+  ::wm::SetWindowState(window.get(), ui::SHOW_STATE_NORMAL);
+
+  window_state->OnWMEvent(&enter_pip);
+  EXPECT_TRUE(window_state->IsPip());
+
+  window_state->Minimize();
+  ASSERT_TRUE(window_state->IsMinimized());
+
+  window_state->Unminimize();
+  ASSERT_TRUE(window_state->GetStateType() == mojom::WindowStateType::NORMAL);
+}
+
 // TODO(skuhne): Add more unit test to verify the correctness for the restore
 // operation.
 
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 3dea978..443c4cf 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -1691,6 +1691,8 @@
       "memory/platform_shared_memory_region_mac.cc",
       "memory/shared_memory_handle_mac.cc",
       "memory/shared_memory_mac.cc",
+      "message_loop/message_pump_kqueue.cc",
+      "message_loop/message_pump_kqueue.h",
       "power_monitor/power_monitor_device_source_mac.mm",
       "system/sys_info_mac.mm",
       "time/time_conversion_posix.cc",
@@ -2746,6 +2748,7 @@
   }
 
   if (is_mac) {
+    sources += [ "message_loop/message_pump_kqueue_unittest.cc" ]
     libs = [
       "CoreFoundation.framework",
       "Foundation.framework",
diff --git a/base/message_loop/message_loop_current.cc b/base/message_loop/message_loop_current.cc
index e669669..c0b2ff7 100644
--- a/base/message_loop/message_loop_current.cc
+++ b/base/message_loop/message_loop_current.cc
@@ -259,6 +259,17 @@
 }
 #endif  // defined(OS_WIN)
 
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+bool MessageLoopCurrentForIO::WatchMachReceivePort(
+    mach_port_t port,
+    MessagePumpForIO::MachPortWatchController* controller,
+    MessagePumpForIO::MachPortWatcher* delegate) {
+  DCHECK(current_->IsBoundToCurrentThread());
+  return GetMessagePumpForIO()->WatchMachReceivePort(port, controller,
+                                                     delegate);
+}
+#endif
+
 #endif  // !defined(OS_NACL_SFI)
 
 #if defined(OS_FUCHSIA)
diff --git a/base/message_loop/message_loop_current.h b/base/message_loop/message_loop_current.h
index 391331b2..bcab89d6 100644
--- a/base/message_loop/message_loop_current.h
+++ b/base/message_loop/message_loop_current.h
@@ -300,6 +300,13 @@
                            MessagePumpForIO::FdWatcher* delegate);
 #endif  // defined(OS_WIN)
 
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+  bool WatchMachReceivePort(
+      mach_port_t port,
+      MessagePumpForIO::MachPortWatchController* controller,
+      MessagePumpForIO::MachPortWatcher* delegate);
+#endif
+
 #if defined(OS_FUCHSIA)
   // Additional watch API for native platform resources.
   bool WatchZxHandle(zx_handle_t handle,
diff --git a/base/message_loop/message_pump_for_io.h b/base/message_loop/message_pump_for_io.h
index 6aac1e6..76687306 100644
--- a/base/message_loop/message_pump_for_io.h
+++ b/base/message_loop/message_pump_for_io.h
@@ -14,6 +14,8 @@
 #include "base/message_loop/message_pump_win.h"
 #elif defined(OS_IOS)
 #include "base/message_loop/message_pump_io_ios.h"
+#elif defined(OS_MACOSX)
+#include "base/message_loop/message_pump_kqueue.h"
 #elif defined(OS_NACL_SFI)
 #include "base/message_loop/message_pump_default.h"
 #elif defined(OS_FUCHSIA)
@@ -29,6 +31,8 @@
 using MessagePumpForIO = MessagePumpForIO;
 #elif defined(OS_IOS)
 using MessagePumpForIO = MessagePumpIOSForIO;
+#elif defined(OS_MACOSX)
+using MessagePumpForIO = MessagePumpKqueue;
 #elif defined(OS_NACL_SFI)
 using MessagePumpForIO = MessagePumpDefault;
 #elif defined(OS_FUCHSIA)
diff --git a/base/message_loop/message_pump_kqueue.cc b/base/message_loop/message_pump_kqueue.cc
new file mode 100644
index 0000000..bc50186
--- /dev/null
+++ b/base/message_loop/message_pump_kqueue.cc
@@ -0,0 +1,457 @@
+// 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 "base/message_loop/message_pump_kqueue.h"
+
+#include <sys/errno.h>
+
+#include "base/auto_reset.h"
+#include "base/logging.h"
+#include "base/mac/mac_util.h"
+#include "base/mac/mach_logging.h"
+#include "base/mac/scoped_nsautorelease_pool.h"
+#include "base/posix/eintr_wrapper.h"
+
+namespace base {
+
+namespace {
+
+// Prior to macOS 10.12, a kqueue could not watch individual Mach ports, only
+// port sets. MessagePumpKqueue will directly use Mach ports in the kqueue if
+// it is possible.
+bool KqueueNeedsPortSet() {
+  static bool kqueue_needs_port_set = mac::IsAtMostOS10_11();
+  return kqueue_needs_port_set;
+}
+
+int ChangeOneEvent(const ScopedFD& kqueue, kevent64_s* event) {
+  return HANDLE_EINTR(kevent64(kqueue.get(), event, 1, nullptr, 0, 0, nullptr));
+}
+
+}  // namespace
+
+MessagePumpKqueue::FdWatchController::FdWatchController(
+    const Location& from_here)
+    : FdWatchControllerInterface(from_here) {}
+
+MessagePumpKqueue::FdWatchController::~FdWatchController() {
+  StopWatchingFileDescriptor();
+}
+
+bool MessagePumpKqueue::FdWatchController::StopWatchingFileDescriptor() {
+  if (!pump_)
+    return true;
+  return pump_->StopWatchingFileDescriptor(this);
+}
+
+void MessagePumpKqueue::FdWatchController::Init(WeakPtr<MessagePumpKqueue> pump,
+                                                int fd,
+                                                int mode,
+                                                FdWatcher* watcher) {
+  DCHECK_NE(fd, -1);
+  DCHECK(!watcher_);
+  DCHECK(watcher);
+  DCHECK(pump);
+  fd_ = fd;
+  mode_ = mode;
+  watcher_ = watcher;
+  pump_ = pump;
+}
+
+void MessagePumpKqueue::FdWatchController::Reset() {
+  fd_ = -1;
+  mode_ = 0;
+  watcher_ = nullptr;
+  pump_ = nullptr;
+}
+
+MessagePumpKqueue::MachPortWatchController::MachPortWatchController(
+    const Location& from_here)
+    : from_here_(from_here) {}
+
+MessagePumpKqueue::MachPortWatchController::~MachPortWatchController() {
+  StopWatchingMachPort();
+}
+
+bool MessagePumpKqueue::MachPortWatchController::StopWatchingMachPort() {
+  if (!pump_)
+    return true;
+  return pump_->StopWatchingMachPort(this);
+}
+
+void MessagePumpKqueue::MachPortWatchController::Init(
+    WeakPtr<MessagePumpKqueue> pump,
+    mach_port_t port,
+    MachPortWatcher* watcher) {
+  DCHECK(!watcher_);
+  DCHECK(watcher);
+  DCHECK(pump);
+  port_ = port;
+  watcher_ = watcher;
+  pump_ = pump;
+}
+
+void MessagePumpKqueue::MachPortWatchController::Reset() {
+  port_ = MACH_PORT_NULL;
+  watcher_ = nullptr;
+  pump_ = nullptr;
+}
+
+MessagePumpKqueue::MessagePumpKqueue()
+    : kqueue_(kqueue()), weak_factory_(this) {
+  PCHECK(kqueue_.is_valid()) << "kqueue";
+
+  // Create a Mach port that will be used to wake up the pump by sending
+  // a message in response to ScheduleWork(). This is significantly faster than
+  // using an EVFILT_USER event, especially when triggered across threads.
+  kern_return_t kr = mach_port_allocate(
+      mach_task_self(), MACH_PORT_RIGHT_RECEIVE,
+      base::mac::ScopedMachReceiveRight::Receiver(wakeup_).get());
+  MACH_CHECK(kr == KERN_SUCCESS, kr) << "mach_port_allocate";
+
+  kevent64_s event{};
+  if (KqueueNeedsPortSet()) {
+    kr = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_PORT_SET,
+                            mac::ScopedMachPortSet::Receiver(port_set_).get());
+    MACH_CHECK(kr == KERN_SUCCESS, kr) << "mach_port_allocate PORT_SET";
+
+    kr = mach_port_insert_member(mach_task_self(), wakeup_.get(),
+                                 port_set_.get());
+    MACH_CHECK(kr == KERN_SUCCESS, kr) << "mach_port_insert_member";
+
+    event.ident = port_set_.get();
+    event.filter = EVFILT_MACHPORT;
+    event.flags = EV_ADD;
+  } else {
+    // When not using a port set, the wakeup port event can be specified to
+    // directly receive the Mach message as part of the kevent64() syscall.
+    // This is not done when using a port set, since that would potentially
+    // receive client MachPortWatchers' messages.
+    event.ident = wakeup_.get();
+    event.filter = EVFILT_MACHPORT;
+    event.flags = EV_ADD;
+    event.fflags = MACH_RCV_MSG;
+    event.ext[0] = reinterpret_cast<uint64_t>(&wakeup_buffer_);
+    event.ext[1] = sizeof(wakeup_buffer_);
+  }
+
+  int rv = ChangeOneEvent(kqueue_, &event);
+  PCHECK(rv == 0) << "kevent64";
+}
+
+MessagePumpKqueue::~MessagePumpKqueue() {}
+
+void MessagePumpKqueue::Run(Delegate* delegate) {
+  AutoReset<bool> reset_keep_running(&keep_running_, true);
+
+  while (keep_running_) {
+    mac::ScopedNSAutoreleasePool pool;
+
+    bool do_more_work = DoInternalWork(nullptr);
+    if (!keep_running_)
+      break;
+
+    Delegate::NextWorkInfo next_work_info = delegate->DoSomeWork();
+    do_more_work |= next_work_info.is_immediate();
+    if (!keep_running_)
+      break;
+
+    if (do_more_work)
+      continue;
+
+    do_more_work |= delegate->DoIdleWork();
+    if (!keep_running_)
+      break;
+
+    if (do_more_work)
+      continue;
+
+    DoInternalWork(&next_work_info);
+  }
+}
+
+void MessagePumpKqueue::Quit() {
+  keep_running_ = false;
+  ScheduleWork();
+}
+
+void MessagePumpKqueue::ScheduleWork() {
+  mach_msg_empty_send_t message{};
+  message.header.msgh_size = sizeof(message);
+  message.header.msgh_bits =
+      MACH_MSGH_BITS_REMOTE(MACH_MSG_TYPE_MAKE_SEND_ONCE);
+  message.header.msgh_remote_port = wakeup_.get();
+  kern_return_t kr = mach_msg_send(&message.header);
+  if (kr != KERN_SUCCESS) {
+    // If ScheduleWork() is being called by other threads faster than the pump
+    // can dispatch work, the kernel message queue for the wakeup port can fill
+    // up (this happens under base_perftests, for example). The kernel does
+    // return a SEND_ONCE right in the case of failure, which must be destroyed
+    // to avoid leaking.
+    MACH_DLOG_IF(ERROR, (kr & ~MACH_MSG_IPC_SPACE) != MACH_SEND_NO_BUFFER, kr)
+        << "mach_msg_send";
+    mach_msg_destroy(&message.header);
+  }
+}
+
+void MessagePumpKqueue::ScheduleDelayedWork(
+    const TimeTicks& delayed_work_time) {
+  // Nothing to do. This MessagePump uses DoSomeWork().
+}
+
+bool MessagePumpKqueue::WatchMachReceivePort(
+    mach_port_t port,
+    MachPortWatchController* controller,
+    MachPortWatcher* delegate) {
+  DCHECK(port != MACH_PORT_NULL);
+  DCHECK(controller);
+  DCHECK(delegate);
+
+  if (controller->port() != MACH_PORT_NULL) {
+    DLOG(ERROR)
+        << "Cannot use the same MachPortWatchController while it is active";
+    return false;
+  }
+
+  if (KqueueNeedsPortSet()) {
+    kern_return_t kr =
+        mach_port_insert_member(mach_task_self(), port, port_set_.get());
+    if (kr != KERN_SUCCESS) {
+      MACH_LOG(ERROR, kr) << "mach_port_insert_member";
+      return false;
+    }
+  } else {
+    kevent64_s event{};
+    event.ident = port;
+    event.filter = EVFILT_MACHPORT;
+    event.flags = EV_ADD;
+    int rv = ChangeOneEvent(kqueue_, &event);
+    if (rv < 0) {
+      DPLOG(ERROR) << "kevent64";
+      return false;
+    }
+    ++event_count_;
+  }
+
+  controller->Init(weak_factory_.GetWeakPtr(), port, delegate);
+  port_controllers_.AddWithID(controller, port);
+
+  return true;
+}
+
+bool MessagePumpKqueue::WatchFileDescriptor(int fd,
+                                            bool persistent,
+                                            int mode,
+                                            FdWatchController* controller,
+                                            FdWatcher* delegate) {
+  DCHECK_GE(fd, 0);
+  DCHECK(controller);
+  DCHECK(delegate);
+  DCHECK_NE(mode & Mode::WATCH_READ_WRITE, 0);
+
+  if (controller->fd() != -1 && controller->fd() != fd) {
+    DLOG(ERROR) << "Cannot use the same FdWatchController on two different FDs";
+    return false;
+  }
+  controller->Reset();
+
+  std::vector<kevent64_s> events;
+
+  kevent64_s base_event{};
+  base_event.ident = fd;
+  base_event.flags = EV_ADD | (!persistent ? EV_ONESHOT : 0);
+
+  if (mode & Mode::WATCH_READ) {
+    base_event.filter = EVFILT_READ;
+    base_event.udata = fd_controllers_.Add(controller);
+    events.push_back(base_event);
+  }
+  if (mode & Mode::WATCH_WRITE) {
+    base_event.filter = EVFILT_WRITE;
+    base_event.udata = fd_controllers_.Add(controller);
+    events.push_back(base_event);
+  }
+
+  int rv = HANDLE_EINTR(kevent64(kqueue_.get(), events.data(), events.size(),
+                                 nullptr, 0, 0, nullptr));
+  if (rv < 0) {
+    DPLOG(ERROR) << "WatchFileDescriptor kevent64";
+    return false;
+  }
+
+  event_count_ += events.size();
+  controller->Init(weak_factory_.GetWeakPtr(), fd, mode, delegate);
+
+  return true;
+}
+
+bool MessagePumpKqueue::StopWatchingMachPort(
+    MachPortWatchController* controller) {
+  mach_port_t port = controller->port();
+  controller->Reset();
+  port_controllers_.Remove(port);
+
+  if (KqueueNeedsPortSet()) {
+    kern_return_t kr =
+        mach_port_extract_member(mach_task_self(), port, port_set_.get());
+    if (kr != KERN_SUCCESS) {
+      MACH_LOG(ERROR, kr) << "mach_port_extract_member";
+      return false;
+    }
+  } else {
+    kevent64_s event{};
+    event.ident = port;
+    event.filter = EVFILT_MACHPORT;
+    event.flags = EV_DELETE;
+    int rv = ChangeOneEvent(kqueue_, &event);
+    if (rv < 0) {
+      DPLOG(ERROR) << "kevent64";
+      return false;
+    }
+    --event_count_;
+  }
+
+  return true;
+}
+
+bool MessagePumpKqueue::StopWatchingFileDescriptor(
+    FdWatchController* controller) {
+  int fd = controller->fd();
+  int mode = controller->mode();
+  controller->Reset();
+
+  if (fd == -1)
+    return true;
+
+  std::vector<kevent64_s> events;
+
+  kevent64_s base_event{};
+  base_event.ident = fd;
+  base_event.flags = EV_DELETE;
+
+  if (mode & Mode::WATCH_READ) {
+    base_event.filter = EVFILT_READ;
+    events.push_back(base_event);
+  }
+  if (mode & Mode::WATCH_WRITE) {
+    base_event.filter = EVFILT_WRITE;
+    events.push_back(base_event);
+  }
+
+  int rv = HANDLE_EINTR(kevent64(kqueue_.get(), events.data(), events.size(),
+                                 nullptr, 0, 0, nullptr));
+  if (rv < 0) {
+    DPLOG(ERROR) << "StopWatchingFileDescriptor kevent64";
+    return false;
+  }
+
+  // The keys for the IDMap aren't recorded anywhere (they're attached to the
+  // kevent object in the kernel), so locate the entries by controller pointer.
+  for (auto it = IDMap<FdWatchController*>::iterator(&fd_controllers_);
+       !it.IsAtEnd(); it.Advance()) {
+    if (it.GetCurrentValue() == controller) {
+      fd_controllers_.Remove(it.GetCurrentKey());
+    }
+  }
+
+  event_count_ -= events.size();
+  return true;
+}
+
+bool MessagePumpKqueue::DoInternalWork(Delegate::NextWorkInfo* next_work_info) {
+  if (events_.size() < event_count_) {
+    events_.resize(event_count_);
+  }
+
+  bool poll = next_work_info == nullptr;
+  int flags = poll ? KEVENT_FLAG_IMMEDIATE : 0;
+  bool indefinite =
+      next_work_info != nullptr && next_work_info->delayed_run_time.is_max();
+
+  int rv = 0;
+  do {
+    timespec timeout{};
+    if (!indefinite && !poll) {
+      if (rv != 0) {
+        // The wait was interrupted and made |next_work_info|'s view of
+        // TimeTicks::Now() stale. Refresh it before doing another wait.
+        next_work_info->recent_now = TimeTicks::Now();
+      }
+      timeout = next_work_info->remaining_delay().ToTimeSpec();
+    }
+    // This does not use HANDLE_EINTR, since retrying the syscall requires
+    // adjusting the timeout to account for time already waited.
+    rv = kevent64(kqueue_.get(), nullptr, 0, events_.data(), events_.size(),
+                  flags, indefinite ? nullptr : &timeout);
+  } while (rv < 0 && errno == EINTR);
+
+  PCHECK(rv >= 0) << "kevent64";
+  return ProcessEvents(rv);
+}
+
+bool MessagePumpKqueue::ProcessEvents(int count) {
+  bool did_work = false;
+
+  for (int i = 0; i < count; ++i) {
+    auto* event = &events_[i];
+    if (event->filter == EVFILT_READ || event->filter == EVFILT_WRITE) {
+      did_work = true;
+
+      FdWatchController* controller = fd_controllers_.Lookup(event->udata);
+      if (!controller) {
+        // The controller was removed by some other work callout before
+        // this event could be processed.
+        continue;
+      }
+      FdWatcher* delegate = controller->watcher();
+
+      if (event->flags & EV_ONESHOT) {
+        // If this was a one-shot event, the Controller needs to stop tracking
+        // the descriptor, so it is not double-removed when it is told to stop
+        // watching.
+        controller->Reset();
+        fd_controllers_.Remove(event->udata);
+      }
+
+      if (event->filter == EVFILT_READ) {
+        delegate->OnFileCanReadWithoutBlocking(event->ident);
+      } else if (event->filter == EVFILT_WRITE) {
+        delegate->OnFileCanWriteWithoutBlocking(event->ident);
+      }
+    } else if (event->filter == EVFILT_MACHPORT) {
+      mach_port_t port = KqueueNeedsPortSet() ? event->data : event->ident;
+
+      if (port == wakeup_.get()) {
+        // The wakeup event has been received, do not treat this as "doing
+        // work", this just wakes up the pump.
+        if (KqueueNeedsPortSet()) {
+          // When using the kqueue directly, the message can be received
+          // straight into a buffer that was created when adding the event.
+          // But when using a port set, the message must be drained manually.
+          wakeup_buffer_.header.msgh_local_port = port;
+          wakeup_buffer_.header.msgh_size = sizeof(wakeup_buffer_);
+          kern_return_t kr = mach_msg_receive(&wakeup_buffer_.header);
+          MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr)
+              << "mach_msg_receive wakeup";
+        }
+        continue;
+      }
+
+      did_work = true;
+
+      MachPortWatchController* controller = port_controllers_.Lookup(port);
+      // The controller could have been removed by some other work callout
+      // before this event could be processed.
+      if (controller) {
+        controller->watcher()->OnMachMessageReceived(port);
+      }
+    } else {
+      NOTREACHED() << "Unexpected event for filter " << event->filter;
+    }
+  }
+
+  return did_work;
+}
+
+}  // namespace base
diff --git a/base/message_loop/message_pump_kqueue.h b/base/message_loop/message_pump_kqueue.h
new file mode 100644
index 0000000..9acfcf2
--- /dev/null
+++ b/base/message_loop/message_pump_kqueue.h
@@ -0,0 +1,176 @@
+// 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 BASE_MESSAGE_LOOP_MESSAGE_PUMP_KQUEUE_H_
+#define BASE_MESSAGE_LOOP_MESSAGE_PUMP_KQUEUE_H_
+
+#include <mach/mach.h>
+#include <stdint.h>
+#include <sys/event.h>
+
+#include <vector>
+
+#include "base/containers/id_map.h"
+#include "base/files/scoped_file.h"
+#include "base/location.h"
+#include "base/mac/scoped_mach_port.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/message_loop/message_pump.h"
+#include "base/message_loop/watchable_io_message_pump_posix.h"
+
+namespace base {
+
+// MessagePumpKqueue is used on macOS to drive an IO MessageLoop that is
+// capable of watching both POSIX file descriptors and Mach ports.
+class BASE_EXPORT MessagePumpKqueue : public MessagePump,
+                                      public WatchableIOMessagePumpPosix {
+ public:
+  class FdWatchController : public FdWatchControllerInterface {
+   public:
+    explicit FdWatchController(const Location& from_here);
+    ~FdWatchController() override;
+
+    // FdWatchControllerInterface:
+    bool StopWatchingFileDescriptor() override;
+
+   protected:
+    friend class MessagePumpKqueue;
+
+    void Init(WeakPtr<MessagePumpKqueue> pump,
+              int fd,
+              int mode,
+              FdWatcher* watcher);
+    void Reset();
+
+    int fd() { return fd_; }
+    int mode() { return mode_; }
+    FdWatcher* watcher() { return watcher_; }
+
+   private:
+    int fd_ = -1;
+    int mode_ = 0;
+    FdWatcher* watcher_ = nullptr;
+    WeakPtr<MessagePumpKqueue> pump_;
+
+    DISALLOW_COPY_AND_ASSIGN(FdWatchController);
+  };
+
+  // Delegate interface that provides notifications of Mach message receive
+  // events.
+  class MachPortWatcher {
+   public:
+    virtual ~MachPortWatcher() {}
+    virtual void OnMachMessageReceived(mach_port_t port) = 0;
+  };
+
+  // Controller interface that is used to stop receiving events for an
+  // installed MachPortWatcher.
+  class MachPortWatchController {
+   public:
+    explicit MachPortWatchController(const Location& from_here);
+    ~MachPortWatchController();
+
+    bool StopWatchingMachPort();
+
+   protected:
+    friend class MessagePumpKqueue;
+
+    void Init(WeakPtr<MessagePumpKqueue> pump,
+              mach_port_t port,
+              MachPortWatcher* watcher);
+    void Reset();
+
+    mach_port_t port() { return port_; }
+    MachPortWatcher* watcher() { return watcher_; }
+
+   private:
+    mach_port_t port_ = MACH_PORT_NULL;
+    MachPortWatcher* watcher_ = nullptr;
+    WeakPtr<MessagePumpKqueue> pump_;
+    const Location from_here_;
+
+    DISALLOW_COPY_AND_ASSIGN(MachPortWatchController);
+  };
+
+  MessagePumpKqueue();
+  ~MessagePumpKqueue() override;
+
+  // MessagePump:
+  void Run(Delegate* delegate) override;
+  void Quit() override;
+  void ScheduleWork() override;
+  void ScheduleDelayedWork(const TimeTicks& delayed_work_time) override;
+
+  // Begins watching the Mach receive right named by |port|. The |controller|
+  // can be used to stop watching for incoming messages, and new message
+  // notifications are delivered to the |delegate|. Returns true if the watch
+  // was successfully set-up and false on error.
+  bool WatchMachReceivePort(mach_port_t port,
+                            MachPortWatchController* controller,
+                            MachPortWatcher* delegate);
+
+  // WatchableIOMessagePumpPosix:
+  bool WatchFileDescriptor(int fd,
+                           bool persistent,
+                           int mode,
+                           FdWatchController* controller,
+                           FdWatcher* delegate);
+
+ private:
+  // Called by the watch controller implementations to stop watching the
+  // respective types of handles.
+  bool StopWatchingMachPort(MachPortWatchController* controller);
+  bool StopWatchingFileDescriptor(FdWatchController* controller);
+
+  // Checks the |kqueue_| for events. If |next_work_info| is null, then the
+  // kqueue will be polled for events. If it is non-null, it will wait for the
+  // amount of time specified by the NextWorkInfo or until an event is
+  // triggered. Returns whether any events were dispatched, with the events
+  // stored in |events_|.
+  bool DoInternalWork(Delegate::NextWorkInfo* next_work_info);
+
+  // Called by DoInternalWork() to dispatch the user events stored in |events_|
+  // that were triggered. |count| is the number of events to process. Returns
+  // true if work was done, or false if no work was done.
+  bool ProcessEvents(int count);
+
+  // Receive right to which an empty Mach message is sent to wake up the pump
+  // in response to ScheduleWork().
+  mac::ScopedMachReceiveRight wakeup_;
+  // Scratch buffer that is used to receive the message sent to |wakeup_|.
+  mach_msg_empty_rcv_t wakeup_buffer_;
+
+  // A Mach port set used to watch ports from WatchMachReceivePort(). This is
+  // only used on macOS <10.12, where kqueues cannot watch ports directly.
+  mac::ScopedMachPortSet port_set_;
+
+  // Watch controllers for FDs. IDs are generated by the map and are stored in
+  // the kevent64_s::udata field.
+  IDMap<FdWatchController*> fd_controllers_;
+
+  // Watch controllers for Mach ports. IDs are the port being watched.
+  IDMap<MachPortWatchController*> port_controllers_;
+
+  // The kqueue that drives the pump.
+  ScopedFD kqueue_;
+
+  // Whether the pump has been Quit() or not.
+  bool keep_running_ = true;
+
+  // The number of events scheduled on the |kqueue_|. There is always at least
+  // 1, for the |wakeup_| port (or |port_set_|).
+  size_t event_count_ = 1;
+  // Buffer used by DoInternalWork() to be notified of triggered events. This
+  // is always at least |event_count_|-sized.
+  std::vector<kevent64_s> events_{event_count_};
+
+  WeakPtrFactory<MessagePumpKqueue> weak_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(MessagePumpKqueue);
+};
+
+}  // namespace base
+
+#endif  // BASE_MESSAGE_LOOP_MESSAGE_PUMP_KQUEUE_H_
diff --git a/base/message_loop/message_pump_kqueue_unittest.cc b/base/message_loop/message_pump_kqueue_unittest.cc
new file mode 100644
index 0000000..7eef541
--- /dev/null
+++ b/base/message_loop/message_pump_kqueue_unittest.cc
@@ -0,0 +1,210 @@
+// 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 "base/message_loop/message_pump_kqueue.h"
+
+#include <mach/mach.h>
+#include <mach/message.h>
+
+#include <utility>
+
+#include "base/bind.h"
+#include "base/memory/ptr_util.h"
+#include "base/message_loop/message_loop.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+namespace {
+
+class MessagePumpKqueueTest : public testing::Test {
+ public:
+  MessagePumpKqueueTest()
+      : pump_(new MessagePumpKqueue()), loop_(WrapUnique(pump_)) {}
+
+  MessagePumpKqueue* pump() { return pump_; }
+  MessageLoop* loop() { return &loop_; }
+
+  static void CreatePortPair(mac::ScopedMachReceiveRight* receive,
+                             mac::ScopedMachSendRight* send) {
+    mach_port_options_t options{};
+    options.flags = MPO_INSERT_SEND_RIGHT;
+    mac::ScopedMachReceiveRight port;
+    kern_return_t kr = mach_port_construct(
+        mach_task_self(), &options, 0,
+        mac::ScopedMachReceiveRight::Receiver(*receive).get());
+    ASSERT_EQ(kr, KERN_SUCCESS);
+    *send = mac::ScopedMachSendRight(receive->get());
+  }
+
+  static mach_msg_return_t SendEmptyMessage(mach_port_t remote_port,
+                                            mach_msg_id_t msgid) {
+    mach_msg_empty_send_t message{};
+    message.header.msgh_bits = MACH_MSGH_BITS_REMOTE(MACH_MSG_TYPE_COPY_SEND);
+    message.header.msgh_size = sizeof(message);
+    message.header.msgh_remote_port = remote_port;
+    message.header.msgh_id = msgid;
+    return mach_msg_send(&message.header);
+  }
+
+ private:
+  MessagePumpKqueue* pump_;  // Weak, owned by |loop_|.
+  MessageLoop loop_;
+};
+
+class PortWatcher : public MessagePumpKqueue::MachPortWatcher {
+ public:
+  PortWatcher(RepeatingClosure callback) : callback_(std::move(callback)) {}
+  ~PortWatcher() override {}
+
+  void OnMachMessageReceived(mach_port_t port) override {
+    mach_msg_empty_rcv_t message{};
+    kern_return_t kr = mach_msg(&message.header, MACH_RCV_MSG, 0,
+                                sizeof(message), port, 0, MACH_PORT_NULL);
+    ASSERT_EQ(kr, KERN_SUCCESS);
+
+    messages_.push_back(message.header);
+
+    callback_.Run();
+  }
+
+  std::vector<mach_msg_header_t> messages_;
+
+ private:
+  RepeatingClosure callback_;
+};
+
+TEST_F(MessagePumpKqueueTest, MachPortBasicWatch) {
+  mac::ScopedMachReceiveRight port;
+  mac::ScopedMachSendRight send_right;
+  CreatePortPair(&port, &send_right);
+
+  mach_msg_id_t msgid = 'helo';
+
+  RunLoop run_loop;
+  PortWatcher watcher(run_loop.QuitClosure());
+  MessagePumpKqueue::MachPortWatchController controller(FROM_HERE);
+
+  loop()->task_runner()->PostTask(
+      FROM_HERE, BindOnce(
+                     [](mach_port_t port, mach_msg_id_t msgid, RunLoop* loop) {
+                       mach_msg_return_t kr = SendEmptyMessage(port, msgid);
+                       EXPECT_EQ(kr, KERN_SUCCESS);
+                       if (kr != KERN_SUCCESS) {
+                         loop->Quit();
+                       }
+                     },
+                     port.get(), msgid, Unretained(&run_loop)));
+
+  pump()->WatchMachReceivePort(port.get(), &controller, &watcher);
+
+  run_loop.Run();
+
+  ASSERT_EQ(1u, watcher.messages_.size());
+  EXPECT_EQ(port.get(), watcher.messages_[0].msgh_local_port);
+  EXPECT_EQ(msgid, watcher.messages_[0].msgh_id);
+}
+
+TEST_F(MessagePumpKqueueTest, MachPortStopWatching) {
+  mac::ScopedMachReceiveRight port;
+  mac::ScopedMachSendRight send_right;
+  CreatePortPair(&port, &send_right);
+
+  RunLoop run_loop;
+  PortWatcher watcher(run_loop.QuitClosure());
+  MessagePumpKqueue::MachPortWatchController controller(FROM_HERE);
+
+  pump()->WatchMachReceivePort(port.get(), &controller, &watcher);
+
+  loop()->task_runner()->PostTask(
+      FROM_HERE,
+      BindOnce(
+          [](MessagePumpKqueue::MachPortWatchController* controller) {
+            controller->StopWatchingMachPort();
+          },
+          Unretained(&controller)));
+
+  loop()->task_runner()->PostTask(
+      FROM_HERE, BindOnce(
+                     [](mach_port_t port) {
+                       EXPECT_EQ(KERN_SUCCESS, SendEmptyMessage(port, 100));
+                     },
+                     port.get()));
+
+  run_loop.RunUntilIdle();
+
+  EXPECT_EQ(0u, watcher.messages_.size());
+}
+
+TEST_F(MessagePumpKqueueTest, MultipleMachWatchers) {
+  mac::ScopedMachReceiveRight port1, port2;
+  mac::ScopedMachSendRight send_right1, send_right2;
+  CreatePortPair(&port1, &send_right1);
+  CreatePortPair(&port2, &send_right2);
+
+  RunLoop run_loop;
+
+  int port1_count = 0, port2_count = 0;
+
+  // Whenever port1 receives a message, it will send to port2.
+  // Whenever port2 receives a message, it will send to port1.
+  // When port2 has sent 3 messages to port1, it will stop.
+
+  PortWatcher watcher1(BindRepeating(
+      [](mach_port_t port2, int* port2_count, RunLoop* loop) {
+        mach_msg_id_t id = (0x2 << 16) | ++(*port2_count);
+        mach_msg_return_t kr = SendEmptyMessage(port2, id);
+        EXPECT_EQ(kr, KERN_SUCCESS);
+        if (kr != KERN_SUCCESS) {
+          loop->Quit();
+        }
+      },
+      port2.get(), &port2_count, &run_loop));
+  MessagePumpKqueue::MachPortWatchController controller1(FROM_HERE);
+
+  PortWatcher watcher2(BindRepeating(
+      [](mach_port_t port1, int* port1_count, RunLoop* loop) {
+        if (*port1_count == 3) {
+          loop->Quit();
+          return;
+        }
+        mach_msg_id_t id = (0x1 << 16) | ++(*port1_count);
+        mach_msg_return_t kr = SendEmptyMessage(port1, id);
+        EXPECT_EQ(kr, KERN_SUCCESS);
+        if (kr != KERN_SUCCESS) {
+          loop->Quit();
+        }
+      },
+      port1.get(), &port1_count, &run_loop));
+  MessagePumpKqueue::MachPortWatchController controller2(FROM_HERE);
+
+  pump()->WatchMachReceivePort(port1.get(), &controller1, &watcher1);
+  pump()->WatchMachReceivePort(port2.get(), &controller2, &watcher2);
+
+  // Start ping-ponging with by sending the first message to port1.
+  loop()->task_runner()->PostTask(
+      FROM_HERE, BindOnce(
+                     [](mach_port_t port1) {
+                       ASSERT_EQ(KERN_SUCCESS,
+                                 SendEmptyMessage(port1, 0xf000f));
+                     },
+                     port1.get()));
+
+  run_loop.Run();
+
+  ASSERT_EQ(4u, watcher1.messages_.size());
+  ASSERT_EQ(4u, watcher2.messages_.size());
+
+  EXPECT_EQ(0xf000f, watcher1.messages_[0].msgh_id);
+  EXPECT_EQ(0x10001, watcher1.messages_[1].msgh_id);
+  EXPECT_EQ(0x10002, watcher1.messages_[2].msgh_id);
+  EXPECT_EQ(0x10003, watcher1.messages_[3].msgh_id);
+
+  EXPECT_EQ(0x20001, watcher2.messages_[0].msgh_id);
+  EXPECT_EQ(0x20002, watcher2.messages_[1].msgh_id);
+  EXPECT_EQ(0x20003, watcher2.messages_[2].msgh_id);
+  EXPECT_EQ(0x20004, watcher2.messages_[3].msgh_id);
+}
+
+}  // namespace
+}  // namespace base
diff --git a/base/message_loop/message_pump_unittest.cc b/base/message_loop/message_pump_unittest.cc
index b8fb39f..25796122 100644
--- a/base/message_loop/message_pump_unittest.cc
+++ b/base/message_loop/message_pump_unittest.cc
@@ -41,9 +41,13 @@
       return false;
 #endif
     case MessageLoopBase::Type::TYPE_IO:
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+      return true;
+#else
       // TODO(gab): Complete migration of all IO pumps to DoSomeWork() as part
       // of crbug.com/885371.
       return false;
+#endif
 
     case MessageLoopBase::Type::TYPE_CUSTOM:
 #if defined(OS_ANDROID)
diff --git a/base/test/scoped_task_environment.cc b/base/test/scoped_task_environment.cc
index d383bce..d601723 100644
--- a/base/test/scoped_task_environment.cc
+++ b/base/test/scoped_task_environment.cc
@@ -17,6 +17,7 @@
 #include "base/task/sequence_manager/time_domain.h"
 #include "base/task/task_scheduler/task_scheduler.h"
 #include "base/task/task_scheduler/task_scheduler_impl.h"
+#include "base/test/bind_test_util.h"
 #include "base/test/test_mock_time_task_runner.h"
 #include "base/test/test_timeouts.h"
 #include "base/threading/sequence_local_storage_map.h"
@@ -335,8 +336,7 @@
               ? nullptr
               : std::make_unique<RunLoop::ScopedRunTimeoutForTest>(
                     TestTimeouts::action_max_timeout(),
-                    BindRepeating(
-                        []() { LOG(FATAL) << "Run() timed out."; }))) {
+                    MakeExpectedNotRunClosure(FROM_HERE, "Run() timed out."))) {
   CHECK(now_source == NowSource::REAL_TIME || mock_time_domain_)
       << "NowSource must be REAL_TIME unless we're using mock time";
   CHECK(!TaskScheduler::GetInstance())
diff --git a/base/test/scoped_task_environment_unittest.cc b/base/test/scoped_task_environment_unittest.cc
index 56a21b8..1c6fa67 100644
--- a/base/test/scoped_task_environment_unittest.cc
+++ b/base/test/scoped_task_environment_unittest.cc
@@ -25,6 +25,7 @@
 #include "base/win/com_init_util.h"
 #include "build/build_config.h"
 #include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest-spi.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if defined(OS_POSIX)
@@ -363,13 +364,14 @@
   {
     ScopedTaskEnvironment scoped_task_environment;
 
-    // ScopedTaskEnvironment should set a default Run() timeout that CHECKs if
-    // reached.
+    // ScopedTaskEnvironment should set a default Run() timeout that fails the
+    // calling test.
     const RunLoop::ScopedRunTimeoutForTest* run_timeout =
         RunLoop::ScopedRunTimeoutForTest::Current();
     ASSERT_NE(run_timeout, old_run_timeout);
     EXPECT_EQ(run_timeout->timeout(), TestTimeouts::action_max_timeout());
-    EXPECT_DEATH_IF_SUPPORTED({ run_timeout->on_timeout().Run(); }, "");
+    EXPECT_NONFATAL_FAILURE({ run_timeout->on_timeout().Run(); },
+                            "Run() timed out");
   }
 
   EXPECT_EQ(RunLoop::ScopedRunTimeoutForTest::Current(), old_run_timeout);
diff --git a/base/test/test_support_android.cc b/base/test/test_support_android.cc
index d5b656a2..c7437de 100644
--- a/base/test/test_support_android.cc
+++ b/base/test/test_support_android.cc
@@ -162,7 +162,7 @@
 
 std::unique_ptr<base::MessagePump> CreateMessagePumpForUIStub() {
   return std::unique_ptr<base::MessagePump>(new MessagePumpForUIStub());
-};
+}
 
 // Provides the test path for DIR_SOURCE_ROOT and DIR_ANDROID_APP_DATA.
 bool GetTestProviderPath(int key, base::FilePath* result) {
diff --git a/base/win/event_trace_controller.cc b/base/win/event_trace_controller.cc
index ff392a3..115db20 100644
--- a/base/win/event_trace_controller.cc
+++ b/base/win/event_trace_controller.cc
@@ -144,7 +144,7 @@
   ULONG err = ::ControlTrace(NULL, session_name, properties->get(),
                              EVENT_TRACE_CONTROL_QUERY);
   return HRESULT_FROM_WIN32(err);
-};
+}
 
 HRESULT EtwTraceController::Update(const wchar_t* session_name,
     EtwTraceProperties* properties) {
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 4c0230ad..3cf7b86 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -9,6 +9,7 @@
 import("//build/config/clang/clang.gni")
 import("//build/config/compiler/compiler.gni")
 import("//build/config/coverage/coverage.gni")
+import("//build/config/dcheck_always_on.gni")
 import("//build/config/host_byteorder.gni")
 import("//build/config/sanitizers/sanitizers.gni")
 import("//build/config/ui.gni")
@@ -1586,6 +1587,13 @@
       # https://clang.llvm.org/docs/ThreadSafetyAnalysis.html
       "-Wthread-safety",
     ]
+
+    # TODO(thakis): Enable this for more platforms, https://crbug.com/926235
+    has_dchecks = is_debug || dcheck_always_on
+    if (has_dchecks && is_linux && target_os != "chromeos" && !is_chromecast &&
+        !use_libfuzzer && !is_debug) {
+      cflags += [ "-Wextra-semi" ]
+    }
   }
 
   configs = [ ":default_warnings" ]
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 43c6efe..49e638c 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-a2ea5f5d6d67ba13062c98cf312f0887aea91cb3
\ No newline at end of file
+d5a51eb15454dffbf0681c781110972adfc11828
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index d6437e4a..88a1eeff 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8f16de2e93bdcb2442be4935500102658c60a330
\ No newline at end of file
+593fe7d6266722a0c13e9b71ac68ea0ca34e2a59
diff --git a/build/get_landmines.py b/build/get_landmines.py
index 8a655e30..3c484e2 100755
--- a/build/get_landmines.py
+++ b/build/get_landmines.py
@@ -72,6 +72,8 @@
     print 'Clobber Windows to fix strange PCH-not-rebuilt errors.'
   print 'CLobber all to fix GN breakage (crbug.com/736215)'
   print 'The Great Blink mv for source files (crbug.com/768828)'
+  if host_os() == 'linux':
+    print 'Clobber to workaround buggy .ninja_deps cycle (crbug.com/934404)'
 
 def main():
   print_landmines()
diff --git a/cc/paint/oop_pixeltest.cc b/cc/paint/oop_pixeltest.cc
index d30f65e..af591e1 100644
--- a/cc/paint/oop_pixeltest.cc
+++ b/cc/paint/oop_pixeltest.cc
@@ -1492,7 +1492,7 @@
                                  public ::testing::WithParamInterface<bool> {
  public:
   bool UseLcdText() const { return GetParam(); }
-  void RunTest() {
+  void RunTest(const SkMatrix& mat) {
     ScopedEnableLCDText enable_lcd;
 
     RasterOptions options;
@@ -1514,7 +1514,7 @@
 
     auto display_item_list = base::MakeRefCounted<DisplayItemList>();
     display_item_list->StartPaint();
-    display_item_list->push<ScaleOp>(2.f, 2.f);
+    display_item_list->push<SetMatrixOp>(mat);
     PaintFlags shader_flags;
     shader_flags.setImageFilter(paint_record_filter);
     display_item_list->push<DrawRectOp>(SkRect::MakeWH(50, 50), shader_flags);
@@ -1528,7 +1528,14 @@
 };
 
 TEST_P(OopRecordFilterPixelTest, FilterWithTextScaled) {
-  RunTest();
+  SkMatrix mat = SkMatrix::MakeScale(2.f, 2.f);
+  RunTest(mat);
+}
+
+TEST_P(OopRecordFilterPixelTest, FilterWithTextAndComplexCTM) {
+  SkMatrix mat = SkMatrix::MakeScale(2.f, 2.f);
+  mat.preSkew(2.f, 2.f);
+  RunTest(mat);
 }
 
 void ClearFontCache(CompletionEvent* event) {
diff --git a/cc/paint/paint_cache.h b/cc/paint/paint_cache.h
index 10356ee..3413f43 100644
--- a/cc/paint/paint_cache.h
+++ b/cc/paint/paint_cache.h
@@ -37,6 +37,13 @@
 using PaintCacheId = uint32_t;
 using PaintCacheIds = std::vector<PaintCacheId>;
 enum class PaintCacheDataType : uint32_t { kTextBlob, kPath, kLast = kPath };
+enum class PaintCacheEntryState : uint32_t {
+  kEmpty,
+  kCached,
+  kInlined,
+  kLast = kInlined
+};
+
 constexpr size_t PaintCacheDataTypeCount =
     static_cast<uint32_t>(PaintCacheDataType::kLast) + 1u;
 
diff --git a/cc/paint/paint_op_buffer_serializer.cc b/cc/paint/paint_op_buffer_serializer.cc
index fe4028b..72ff184 100644
--- a/cc/paint/paint_op_buffer_serializer.cc
+++ b/cc/paint/paint_op_buffer_serializer.cc
@@ -340,6 +340,10 @@
   if (!valid_)
     return false;
 
+  // Playback on analysis canvas first to make sure the canvas transform is set
+  // correctly for analysis of records in filters.
+  PlaybackOnAnalysisCanvas(op, options, params);
+
   size_t bytes = serialize_cb_.Run(op, options);
   if (!bytes) {
     valid_ = false;
@@ -348,7 +352,13 @@
 
   DCHECK_GE(bytes, 4u);
   DCHECK_EQ(bytes % PaintOpBuffer::PaintOpAlign, 0u);
+  return true;
+}
 
+void PaintOpBufferSerializer::PlaybackOnAnalysisCanvas(
+    const PaintOp* op,
+    const PaintOp::SerializeOptions& options,
+    const PlaybackParams& params) {
   // Only 2 types of ops need to played on the analysis canvas.
   // 1) Non-draw ops which affect the transform/clip state on the canvas, since
   //    we need the correct ctm at which text and images will be rasterized, and
@@ -357,7 +367,7 @@
   // 2) DrawTextBlob ops since they need to be analyzed by the cache diff canvas
   //    to serialize/lock the requisite glyphs for this op.
   if (op->IsDrawOp() && op->GetType() != PaintOpType::DrawTextBlob)
-    return true;
+    return;
 
   if (op->IsPaintOpWithFlags() && options.flags_to_serialize) {
     static_cast<const PaintOpWithFlags*>(op)->RasterWithFlags(
@@ -365,7 +375,6 @@
   } else {
     op->Raster(canvas_, params);
   }
-  return true;
 }
 
 void PaintOpBufferSerializer::Save(const PaintOp::SerializeOptions& options,
diff --git a/cc/paint/paint_op_buffer_serializer.h b/cc/paint/paint_op_buffer_serializer.h
index 34176746..aa2bb07 100644
--- a/cc/paint/paint_op_buffer_serializer.h
+++ b/cc/paint/paint_op_buffer_serializer.h
@@ -101,6 +101,9 @@
   void ClearForOpaqueRaster(const Preamble& preamble,
                             const PaintOp::SerializeOptions& options,
                             const PlaybackParams& params);
+  void PlaybackOnAnalysisCanvas(const PaintOp* op,
+                                const PaintOp::SerializeOptions& options,
+                                const PlaybackParams& params);
 
   SerializeCallback serialize_cb_;
   ImageProvider* image_provider_;
diff --git a/cc/paint/paint_op_reader.cc b/cc/paint/paint_op_reader.cc
index e08e392..6e0b9a7 100644
--- a/cc/paint/paint_op_reader.cc
+++ b/cc/paint/paint_op_reader.cc
@@ -215,33 +215,45 @@
   if (!valid_)
     return;
 
-  size_t path_bytes = 0u;
-  ReadSize(&path_bytes);
-  if (path_bytes > remaining_bytes_)
-    SetInvalid();
-  if (!valid_)
+  uint32_t entry_state_int = 0u;
+  ReadSimple(&entry_state_int);
+  if (entry_state_int > static_cast<uint32_t>(PaintCacheEntryState::kLast)) {
+    valid_ = false;
     return;
+  }
 
-  if (path_bytes != 0u) {
-    auto* scratch = CopyScratchSpace(path_bytes);
-    size_t bytes_read = path->readFromMemory(scratch, path_bytes);
-    if (bytes_read == 0u) {
-      SetInvalid();
+  auto entry_state = static_cast<PaintCacheEntryState>(entry_state_int);
+  switch (entry_state) {
+    case PaintCacheEntryState::kEmpty:
+      return;
+    case PaintCacheEntryState::kCached: {
+      auto* cached_path = options_.paint_cache->GetPath(path_id);
+      if (!cached_path)
+        SetInvalid();
+      else
+        *path = *cached_path;
       return;
     }
+    case PaintCacheEntryState::kInlined: {
+      size_t path_bytes = 0u;
+      ReadSize(&path_bytes);
+      if (path_bytes > remaining_bytes_ || path_bytes == 0u)
+        SetInvalid();
+      if (!valid_)
+        return;
 
-    options_.paint_cache->PutPath(path_id, *path);
-    memory_ += path_bytes;
-    remaining_bytes_ -= path_bytes;
-    return;
+      auto* scratch = CopyScratchSpace(path_bytes);
+      size_t bytes_read = path->readFromMemory(scratch, path_bytes);
+      if (bytes_read == 0u) {
+        SetInvalid();
+        return;
+      }
+      options_.paint_cache->PutPath(path_id, *path);
+      memory_ += path_bytes;
+      remaining_bytes_ -= path_bytes;
+      return;
+    }
   }
-
-  auto* cached_path = options_.paint_cache->GetPath(path_id);
-  if (!cached_path) {
-    SetInvalid();
-    return;
-  }
-  *path = *cached_path;
 }
 
 void PaintOpReader::Read(PaintFlags* flags) {
diff --git a/cc/paint/paint_op_writer.cc b/cc/paint/paint_op_writer.cc
index bd40b6f..f178bc59 100644
--- a/cc/paint/paint_op_writer.cc
+++ b/cc/paint/paint_op_writer.cc
@@ -173,18 +173,27 @@
   auto id = path.getGenerationID();
   Write(id);
 
+  if (options_.paint_cache->Get(PaintCacheDataType::kPath, id)) {
+    Write(static_cast<uint32_t>(PaintCacheEntryState::kCached));
+    return;
+  }
+
+  // The SkPath may fail to serialize if the bytes required would overflow.
+  uint64_t bytes_required = path.writeToMemory(nullptr);
+  if (bytes_required == 0u) {
+    Write(static_cast<uint32_t>(PaintCacheEntryState::kEmpty));
+    return;
+  }
+
+  Write(static_cast<uint32_t>(PaintCacheEntryState::kInlined));
   uint64_t* bytes_to_skip = WriteSize(0u);
   if (!valid_)
     return;
 
-  if (options_.paint_cache->Get(PaintCacheDataType::kPath, id))
-    return;
-  uint64_t bytes_required = path.writeToMemory(nullptr);
   if (bytes_required > remaining_bytes_) {
     valid_ = false;
     return;
   }
-
   size_t bytes_written = path.writeToMemory(memory_);
   DCHECK_EQ(bytes_written, bytes_required);
   options_.paint_cache->Put(PaintCacheDataType::kPath, id, bytes_written);
@@ -671,8 +680,22 @@
 
 void PaintOpWriter::Write(const RecordPaintFilter& filter) {
   WriteSimple(filter.record_bounds());
-  Write(filter.record().get(), gfx::Rect(), gfx::SizeF(1.f, 1.f),
-        options_.canvas ? options_.canvas->getTotalMatrix() : SkMatrix::I());
+  if (!options_.canvas) {
+    Write(filter.record().get(), gfx::Rect(), gfx::SizeF(1.f, 1.f),
+          SkMatrix::I());
+    return;
+  }
+
+  // The logic here to only use the scale component of the matrix during
+  // analysis is for consistency with the rasterization of the filter later in
+  // pipeline in skia. For every draw with a filter, SkCanvas creates a layer
+  // for the draw and modifies the scale for these filters.
+  // See SkCanvas::internalSaveLayer.
+  SkMatrix mat = options_.canvas->getTotalMatrix();
+  SkSize scale;
+  if (!mat.isScaleTranslate() && mat.decomposeScale(&scale))
+    mat = SkMatrix::MakeScale(scale.width(), scale.height());
+  Write(filter.record().get(), gfx::Rect(), gfx::SizeF(1.f, 1.f), mat);
 }
 
 void PaintOpWriter::Write(const MergePaintFilter& filter) {
diff --git a/cc/trees/image_animation_controller.cc b/cc/trees/image_animation_controller.cc
index 62900fb0..94902afe 100644
--- a/cc/trees/image_animation_controller.cc
+++ b/cc/trees/image_animation_controller.cc
@@ -21,9 +21,9 @@
 
 ImageAnimationController::ImageAnimationController(
     base::SingleThreadTaskRunner* task_runner,
-    base::RepeatingClosure invalidation_callback,
+    Client* client,
     bool enable_image_animation_resync)
-    : notifier_(task_runner, invalidation_callback),
+    : scheduler_(task_runner, client),
       enable_image_animation_resync_(enable_image_animation_resync) {}
 
 ImageAnimationController::~ImageAnimationController() = default;
@@ -54,11 +54,11 @@
 }
 
 const PaintImageIdFlatSet& ImageAnimationController::AnimateForSyncTree(
-    base::TimeTicks now) {
+    const viz::BeginFrameArgs& args) {
   TRACE_EVENT0("cc", "ImageAnimationController::AnimateImagesForSyncTree");
   DCHECK(images_animated_on_sync_tree_.empty());
 
-  notifier_.WillAnimate();
+  scheduler_.WillAnimate();
   base::Optional<base::TimeTicks> next_invalidation_time;
 
   for (auto id : registered_animations_) {
@@ -73,7 +73,7 @@
 
     // If we were able to advance this animation, invalidate it on the sync
     // tree.
-    if (state.AdvanceFrame(now, enable_image_animation_resync_))
+    if (state.AdvanceFrame(args, enable_image_animation_resync_))
       images_animated_on_sync_tree_.insert(id);
 
     // Update the next invalidation time to the earliest time at which we need
@@ -84,7 +84,7 @@
     if (!state.ShouldAnimate())
       continue;
 
-    DCHECK_GT(state.next_desired_frame_time(), now);
+    DCHECK_GT(state.next_desired_frame_time(), args.frame_time);
     if (!next_invalidation_time.has_value()) {
       next_invalidation_time.emplace(state.next_desired_frame_time());
     } else {
@@ -94,14 +94,14 @@
   }
 
   if (next_invalidation_time.has_value())
-    notifier_.Schedule(now, next_invalidation_time.value());
+    scheduler_.Schedule(next_invalidation_time.value());
   else
-    notifier_.Cancel();
+    scheduler_.Cancel();
 
   return images_animated_on_sync_tree_;
 }
 
-void ImageAnimationController::UpdateStateFromDrivers(base::TimeTicks now) {
+void ImageAnimationController::UpdateStateFromDrivers() {
   TRACE_EVENT0("cc", "UpdateStateFromAnimationDrivers");
 
   base::Optional<base::TimeTicks> next_invalidation_time;
@@ -113,7 +113,7 @@
 
     // Note that by not updating the |next_invalidation_time| from this image
     // here, we will cancel any pending invalidation scheduled for this image
-    // when updating the |notifier_| at the end of this loop.
+    // when updating the |scheduler_| at the end of this loop.
     if (!state.ShouldAnimate())
       continue;
 
@@ -126,9 +126,9 @@
   }
 
   if (next_invalidation_time.has_value())
-    notifier_.Schedule(now, next_invalidation_time.value());
+    scheduler_.Schedule(next_invalidation_time.value());
   else
-    notifier_.Cancel();
+    scheduler_.Cancel();
 }
 
 void ImageAnimationController::DidActivate() {
@@ -165,6 +165,11 @@
                                          : it->second.active_index();
 }
 
+void ImageAnimationController::WillBeginImplFrame(
+    const viz::BeginFrameArgs& args) {
+  scheduler_.WillBeginImplFrame(args);
+}
+
 const base::flat_set<ImageAnimationController::AnimationDriver*>&
 ImageAnimationController::GetDriversForTesting(
     PaintImage::Id paint_image_id) const {
@@ -231,7 +236,41 @@
 }
 
 bool ImageAnimationController::AnimationState::AdvanceFrame(
-    base::TimeTicks now,
+    const viz::BeginFrameArgs& args,
+    bool enable_image_animation_resync) {
+  AdvanceFrameInternal(args, enable_image_animation_resync);
+  const bool needs_invalidation = pending_index_ != active_index_;
+
+  // If the animation will no longer continue, |next_desired_frame_time_| is
+  // not needed and will not be updated.
+  if (!ShouldAnimate())
+    return needs_invalidation;
+
+  DCHECK_GT(next_desired_frame_time_, args.frame_time);
+  auto snapped_next_desired_frame_time =
+      next_desired_frame_time_.SnappedToNextTick(args.frame_time,
+                                                 args.interval);
+  if (snapped_next_desired_frame_time != next_desired_frame_time_) {
+    // If the next desired frame time was past the next tick but did not lie
+    // exactly at the frame tick, then snapping it would have set it to the tick
+    // after we wanted to display it. So set it to the tick we want to target.
+    snapped_next_desired_frame_time -= args.interval;
+  }
+
+  // In the common case, |next_desired_frame_time_| should be >= to the
+  // |next_tick_time|, since the catch up loop skips frames until it reaches the
+  // first frame which should be drawn at or after the next tick.
+  // But in some cases we decode to skip the catch up and restart the regular
+  // animation from the next frame, in which case just snap it to the next tick.
+  auto next_tick_time = args.frame_time + args.interval;
+  next_desired_frame_time_ =
+      std::max(snapped_next_desired_frame_time, next_tick_time);
+
+  return needs_invalidation;
+}
+
+void ImageAnimationController::AnimationState::AdvanceFrameInternal(
+    const viz::BeginFrameArgs& args,
     bool enable_image_animation_resync) {
   DCHECK(ShouldAnimate());
 
@@ -243,24 +282,25 @@
   if (!animation_started_) {
     DCHECK_EQ(pending_index_, 0u);
 
-    next_desired_frame_time_ = now + frames_[0].duration;
+    next_desired_frame_time_ = args.frame_time + frames_[0].duration;
     animation_started_ = true;
-    return pending_index_ != active_index_;
+    return;
   }
 
   // Don't advance the animation if its not time yet to move to the next frame.
-  if (now < next_desired_frame_time_)
-    return false;
+  if (args.frame_time < next_desired_frame_time_)
+    return;
 
   // If the animation is more than 5 min out of date, we don't bother catching
   // up and start again from the current frame.
   // Note that we don't need to invalidate this image since the active tree
   // is already displaying the current frame.
   if (enable_image_animation_resync &&
-      now - next_desired_frame_time_ > kAnimationResyncCutoff) {
+      args.frame_time - next_desired_frame_time_ > kAnimationResyncCutoff) {
     DCHECK_EQ(pending_index_, active_index_);
-    next_desired_frame_time_ = now + frames_[pending_index_].duration;
-    return false;
+    next_desired_frame_time_ =
+        args.frame_time + frames_[pending_index_].duration;
+    return;
   }
 
   // Keep catching up the animation until we reach the frame we should be
@@ -269,7 +309,9 @@
   // in the animations.
   size_t last_frame_index = frames_.size() - 1;
   size_t num_of_frames_advanced = 0u;
-  while (next_desired_frame_time_ <= now && ShouldAnimate()) {
+
+  base::TimeTicks next_frame_time = args.frame_time + args.interval;
+  while (next_desired_frame_time_ < next_frame_time && ShouldAnimate()) {
     num_of_frames_advanced++;
     size_t next_frame_index = NextFrameIndex();
     base::TimeTicks next_desired_frame_time =
@@ -286,9 +328,10 @@
     // especially if users switch tabs (and thus stop drawing the animation,
     // which will pause it) during that initial loop, then switch back later.
     if (enable_image_animation_resync && next_frame_index == 0u &&
-        repetitions_completed_ == 1 && next_desired_frame_time <= now) {
+        repetitions_completed_ == 1 &&
+        next_desired_frame_time <= args.frame_time) {
       pending_index_ = 0u;
-      next_desired_frame_time_ = now + frames_[0].duration;
+      next_desired_frame_time_ = args.frame_time + frames_[0].duration;
       repetitions_completed_ = 0;
       break;
     }
@@ -309,8 +352,6 @@
   last_num_frames_skipped_ = num_of_frames_advanced - 1u;
   UMA_HISTOGRAM_COUNTS_100000("AnimatedImage.NumOfFramesSkipped.Compositor",
                               last_num_frames_skipped_);
-
-  return pending_index_ != active_index_;
 }
 
 void ImageAnimationController::AnimationState::UpdateMetadata(
@@ -384,65 +425,129 @@
   return (pending_index_ + 1) % frames_.size();
 }
 
-ImageAnimationController::DelayedNotifier::DelayedNotifier(
+ImageAnimationController::InvalidationScheduler::InvalidationScheduler(
     base::SingleThreadTaskRunner* task_runner,
-    base::RepeatingClosure closure)
-    : task_runner_(task_runner),
-      closure_(std::move(closure)),
-      weak_factory_(this) {
+    Client* client)
+    : task_runner_(task_runner), client_(client), weak_factory_(this) {
   DCHECK(task_runner_->BelongsToCurrentThread());
 }
 
-ImageAnimationController::DelayedNotifier::~DelayedNotifier() {
+ImageAnimationController::InvalidationScheduler::~InvalidationScheduler() {
   DCHECK(task_runner_->BelongsToCurrentThread());
 }
 
-void ImageAnimationController::DelayedNotifier::Schedule(
-    base::TimeTicks now,
-    base::TimeTicks notification_time) {
-  // If an animation is already pending, don't schedule another invalidation.
-  // We will schedule the next invalidation based on the latest animation state
-  // during AnimateForSyncTree.
-  if (animation_pending_)
+void ImageAnimationController::InvalidationScheduler::Schedule(
+    base::TimeTicks animation_time) {
+  auto now = now_callback_for_testing_.is_null()
+                 ? base::TimeTicks::Now()
+                 : now_callback_for_testing_.Run();
+
+  // If an animation or impl frame is already pending, don't schedule another
+  // notification. We will schedule the next notification based on the latest
+  // animation state during AnimateForSyncTree, or in WillBeginImplFrame if
+  // needed.
+  if (state_ == InvalidationState::kPendingInvalidation ||
+      state_ == InvalidationState::kPendingImplFrame) {
     return;
+  }
 
   // The requested notification time can be in the past. For instance, if an
   // animation was paused because the image became invisible.
-  if (notification_time < now)
-    notification_time = now;
+  if (animation_time < now)
+    animation_time = now;
 
   // If we already have a notification scheduled to run at this time, no need to
   // Cancel it.
-  if (pending_notification_time_.has_value() &&
-      notification_time == pending_notification_time_.value())
+  if (state_ == InvalidationState::kPendingRequestBeginFrame &&
+      animation_time == next_animation_time_)
     return;
 
   // Cancel the pending notification since we the requested notification time
   // has changed.
   Cancel();
 
-  TRACE_EVENT2("cc", "ScheduleInvalidationForImageAnimation",
-               "notification_time", notification_time, "now", now);
-  pending_notification_time_.emplace(notification_time);
+  base::TimeDelta delta = animation_time - now;
+  TRACE_EVENT1("cc", "ScheduleFrameForImageAnimation", "delta",
+               delta.InMillisecondsF());
+
+  state_ = InvalidationState::kPendingRequestBeginFrame;
+  next_animation_time_ = animation_time;
   task_runner_->PostDelayedTask(
       FROM_HERE,
-      base::BindOnce(&DelayedNotifier::Notify, weak_factory_.GetWeakPtr()),
-      notification_time - now);
+      base::BindOnce(&InvalidationScheduler::RequestBeginFrame,
+                     weak_factory_.GetWeakPtr()),
+      delta);
 }
 
-void ImageAnimationController::DelayedNotifier::Cancel() {
-  pending_notification_time_.reset();
+void ImageAnimationController::InvalidationScheduler::Cancel() {
+  state_ = InvalidationState::kIdle;
   weak_factory_.InvalidateWeakPtrs();
 }
 
-void ImageAnimationController::DelayedNotifier::Notify() {
-  pending_notification_time_.reset();
-  animation_pending_ = true;
-  closure_.Run();
+void ImageAnimationController::InvalidationScheduler::RequestBeginFrame() {
+  TRACE_EVENT0(
+      "cc",
+      "ImageAnimationController::InvalidationScheduler::RequestBeginFrame");
+  DCHECK_EQ(state_, InvalidationState::kPendingRequestBeginFrame);
+
+  state_ = InvalidationState::kPendingImplFrame;
+  client_->RequestBeginFrameForAnimatedImages();
 }
 
-void ImageAnimationController::DelayedNotifier::WillAnimate() {
-  animation_pending_ = false;
+void ImageAnimationController::InvalidationScheduler::WillAnimate() {
+  // Unless the sync tree came after we explicitly requested an invalidation,
+  // we can't proceed to idle state.
+  if (state_ != InvalidationState::kPendingInvalidation)
+    return;
+
+  state_ = InvalidationState::kIdle;
+  next_animation_time_ = base::TimeTicks();
+}
+
+void ImageAnimationController::InvalidationScheduler::WillBeginImplFrame(
+    const viz::BeginFrameArgs& args) {
+  switch (state_) {
+    case InvalidationState::kIdle:
+    case InvalidationState::kPendingInvalidation:
+      // We don't need an invalidation or one is already pending. In either
+      // case, no state change is needed.
+      break;
+    case InvalidationState::kPendingRequestBeginFrame:
+      if (args.frame_time >= next_animation_time_) {
+        // If we can make progress on the animation in this impl frame request
+        // an invalidation.
+        RequestInvalidation();
+      }
+      // Otherwise the pending notification will ensure we get another impl
+      // impl frame at the |next_animation_time_|.
+      break;
+    case InvalidationState::kPendingImplFrame:
+      if (args.frame_time >= next_animation_time_) {
+        // We received the impl frame needed for the animation, request an
+        // invalidation.
+        RequestInvalidation();
+      } else {
+        // Ideally this should be the impl frame we wanted, so we should always
+        // be able to animate at this frame. But that might not be the case if
+        // we get a missed BeginFrame. In that case, make a request for the next
+        // impl frame.
+        client_->RequestBeginFrameForAnimatedImages();
+      }
+      break;
+  }
+}
+
+void ImageAnimationController::InvalidationScheduler::RequestInvalidation() {
+  DCHECK_NE(state_, InvalidationState::kIdle);
+  DCHECK_NE(state_, InvalidationState::kPendingInvalidation);
+
+  // Any pending notification can/should be cancelled once an invalidation is
+  // requested because each time we animate a sync tree, we schedule a task for
+  // the next animation update if necessary.
+  Cancel();
+
+  state_ = InvalidationState::kPendingInvalidation;
+  client_->RequestInvalidationForAnimatedImages();
 }
 
 }  // namespace cc
diff --git a/cc/trees/image_animation_controller.h b/cc/trees/image_animation_controller.h
index a3efaee1..5ecdf78 100644
--- a/cc/trees/image_animation_controller.h
+++ b/cc/trees/image_animation_controller.h
@@ -17,6 +17,7 @@
 #include "cc/paint/paint_image.h"
 #include "cc/paint/paint_image_generator.h"
 #include "cc/tiles/tile_priority.h"
+#include "components/viz/common/frame_sinks/begin_frame_args.h"
 
 namespace cc {
 class PaintImage;
@@ -34,7 +35,7 @@
 //    registered drivers interested in animating it.
 //
 //  3) An animation is only advanced on the sync tree, which is requested to be
-//     created using the |invalidation_callback|. This effectively means that
+//     created using the |client| callbacks. This effectively means that
 //     the frame of the image used remains consistent throughout the lifetime of
 //     a tree, guaranteeing that the image update is atomic.
 class CC_EXPORT ImageAnimationController {
@@ -52,16 +53,25 @@
     virtual bool ShouldAnimate(PaintImage::Id paint_image_id) const = 0;
   };
 
-  // |invalidation_callback| is the callback to trigger an invalidation and
-  // create a sync tree for advancing an image animation. The controller is
-  // guaranteed to receive a call to AnimateForSyncTree when the sync tree is
-  // created.
-  // |task_runner| is the thread on which the controller is used. The
-  // invalidation_callback can only be run on this thread.
+  class CC_EXPORT Client {
+   public:
+    virtual ~Client() {}
+
+    // Notifies the client that an impl frame is needed to animate an image.
+    virtual void RequestBeginFrameForAnimatedImages() = 0;
+
+    // Notifies the client that a sync tree is needed to invalidate the animated
+    // images in this impl frame. This should only be called from within an impl
+    // frame.
+    virtual void RequestInvalidationForAnimatedImages() = 0;
+  };
+
+  // |task_runner| is the thread on which the controller is used. The |client|
+  // can only be called on this thread.
   // |enable_image_animation_resync| specifies whether the animation can be
   // reset to the beginning to avoid skipping many frames.
   ImageAnimationController(base::SingleThreadTaskRunner* task_runner,
-                           base::RepeatingClosure invalidation_callback,
+                           Client* client,
                            bool enable_image_animation_resync);
   ~ImageAnimationController();
 
@@ -83,13 +93,14 @@
   // a call to DidActivate when this tree is activated.
   // Returns the set of images that were animated and should be invalidated on
   // this sync tree.
-  const PaintImageIdFlatSet& AnimateForSyncTree(base::TimeTicks now);
+  const PaintImageIdFlatSet& AnimateForSyncTree(
+      const viz::BeginFrameArgs& args);
 
   // Called whenever the ShouldAnimate response for a driver could have changed.
   // For instance on a change in the visibility of the image, we would pause
   // off-screen animations.
   // This is called after every DrawProperties update and commit.
-  void UpdateStateFromDrivers(base::TimeTicks now);
+  void UpdateStateFromDrivers();
 
   // Called when the sync tree was activated and the animations' associated
   // state should be pushed to the active tree.
@@ -99,6 +110,9 @@
   size_t GetFrameIndexForImage(PaintImage::Id paint_image_id,
                                WhichTree tree) const;
 
+  // Notifies the beginning of an impl frame with the given |args|.
+  void WillBeginImplFrame(const viz::BeginFrameArgs& args);
+
   void set_did_navigate() { did_navigate_ = true; }
 
   const base::flat_set<AnimationDriver*>& GetDriversForTesting(
@@ -110,6 +124,11 @@
     return animation_state_map_.size();
   }
 
+  using NowCallback = base::RepeatingCallback<base::TimeTicks()>;
+  void set_now_callback_for_testing(NowCallback cb) {
+    scheduler_.set_now_callback_for_testing(cb);
+  }
+
  private:
   class AnimationState {
    public:
@@ -119,7 +138,8 @@
     ~AnimationState();
 
     bool ShouldAnimate() const;
-    bool AdvanceFrame(base::TimeTicks now, bool enable_image_animation_resync);
+    bool AdvanceFrame(const viz::BeginFrameArgs& args,
+                      bool enable_image_animation_resync);
     void UpdateMetadata(const DiscardableImageMap::AnimatedImageMetadata& data);
     void PushPendingToActive();
 
@@ -141,6 +161,8 @@
     }
 
    private:
+    void AdvanceFrameInternal(const viz::BeginFrameArgs& args,
+                              bool enable_image_animation_resync);
     void ResetAnimation();
     size_t NextFrameIndex() const;
     bool is_complete() const {
@@ -199,30 +221,45 @@
     DISALLOW_COPY_AND_ASSIGN(AnimationState);
   };
 
-  class DelayedNotifier {
+  class InvalidationScheduler {
    public:
-    DelayedNotifier(base::SingleThreadTaskRunner* task_runner,
-                    base::RepeatingClosure closure);
-    ~DelayedNotifier();
+    InvalidationScheduler(base::SingleThreadTaskRunner* task_runner,
+                          Client* client);
+    ~InvalidationScheduler();
 
-    void Schedule(base::TimeTicks now, base::TimeTicks notification_time);
+    void Schedule(base::TimeTicks animation_time);
     void Cancel();
     void WillAnimate();
+    void WillBeginImplFrame(const viz::BeginFrameArgs& args);
+    void set_now_callback_for_testing(NowCallback cb) {
+      now_callback_for_testing_ = cb;
+    }
 
    private:
-    void Notify();
+    enum InvalidationState {
+      // No notification pending.
+      kIdle,
+      // Task pending to request impl frame.
+      kPendingRequestBeginFrame,
+      // Impl frame request pending after request dispatched to client.
+      kPendingImplFrame,
+      // Sync tree for animation pending after request dispatched to client.
+      kPendingInvalidation,
+    };
+
+    void RequestBeginFrame();
+    void RequestInvalidation();
 
     base::SingleThreadTaskRunner* task_runner_;
-    base::RepeatingClosure closure_;
+    Client* const client_;
+    NowCallback now_callback_for_testing_;
 
-    // Set if a notification is currently pending.
-    base::Optional<base::TimeTicks> pending_notification_time_;
+    InvalidationState state_ = InvalidationState::kIdle;
 
-    // Set if the notification was dispatched and the resulting animation on the
-    // next sync tree is pending.
-    bool animation_pending_ = false;
+    // The time at which the next animation is expected to run.
+    base::TimeTicks next_animation_time_;
 
-    base::WeakPtrFactory<DelayedNotifier> weak_factory_;
+    base::WeakPtrFactory<InvalidationScheduler> weak_factory_;
   };
 
   // The AnimationState for images is persisted until they are cleared on
@@ -239,7 +276,7 @@
   // The set of images that were animated and invalidated on the last sync tree.
   PaintImageIdFlatSet images_animated_on_sync_tree_;
 
-  DelayedNotifier notifier_;
+  InvalidationScheduler scheduler_;
 
   const bool enable_image_animation_resync_;
 
diff --git a/cc/trees/image_animation_controller_unittest.cc b/cc/trees/image_animation_controller_unittest.cc
index e5fcb65..62cc545 100644
--- a/cc/trees/image_animation_controller_unittest.cc
+++ b/cc/trees/image_animation_controller_unittest.cc
@@ -70,17 +70,16 @@
   base::SingleThreadTaskRunner* task_runner_;
 };
 
-class ImageAnimationControllerTest : public testing::Test {
+class ImageAnimationControllerTest : public testing::Test,
+                                     public ImageAnimationController::Client {
  public:
   void SetUp() override {
     task_runner_ =
         new DelayTrackingTaskRunner(base::ThreadTaskRunnerHandle::Get().get());
-    auto invalidation_callback =
-        base::BindRepeating(&ImageAnimationControllerTest::RequestInvalidation,
-                            base::Unretained(this));
     controller_ = std::make_unique<ImageAnimationController>(
-        task_runner_.get(), std::move(invalidation_callback),
-        GetEnableImageAnimationResync());
+        task_runner_.get(), this, GetEnableImageAnimationResync());
+    controller_->set_now_callback_for_testing(base::BindRepeating(
+        &ImageAnimationControllerTest::Now, base::Unretained(this)));
     now_ += base::TimeDelta::FromSeconds(10);
   }
 
@@ -90,19 +89,25 @@
                        const std::vector<FrameMetadata>& frames,
                        size_t num_of_frames_to_loop,
                        int repetitions_completed,
+                       std::vector<base::TimeDelta> expected_delays = {},
                        bool restarting = false) {
     DCHECK_LE(num_of_frames_to_loop, frames.size());
 
+    if (expected_delays.empty()) {
+      expected_delays.resize(frames.size());
+      for (size_t i = 0; i < frames.size(); ++i)
+        expected_delays[i] = frames[i].duration;
+    }
+
     invalidation_count_ = 0;
     for (size_t i = 0; i < num_of_frames_to_loop; ++i) {
       SCOPED_TRACE(i);
 
       // Run the pending invalidation.
-      base::RunLoop().RunUntilIdle();
-      EXPECT_EQ(invalidation_count_, static_cast<int>(i + 1));
+      RunFrameRequestAndInvalidation();
 
       // Animate the image on the sync tree.
-      auto animated_images = controller_->AnimateForSyncTree(now_);
+      auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
 
       // No frames should have been skipped since we add no delay in advancing
       // the animation.
@@ -140,25 +145,58 @@
       // Animating should schedule an invalidation for the next frame, until we
       // reach the last frame.
       if (i != num_of_frames_to_loop - 1)
-        task_runner_->VerifyDelay(frames[i].duration);
+        task_runner_->VerifyDelay(expected_delays.at(i));
 
       // Activate and advance time to the next frame.
       controller_->DidActivate();
-      AdvanceNow(frames[i].duration);
+      AdvanceNow(expected_delays.at(i));
     }
   }
 
  protected:
-  void RequestInvalidation() { invalidation_count_++; }
+  // ImageAnimationController::Client implementation.
+  void RequestBeginFrameForAnimatedImages() override { begin_frame_count_++; }
+  void RequestInvalidationForAnimatedImages() override {
+    invalidation_count_++;
+  }
+
+  base::TimeTicks Now() { return now_; }
 
   void AdvanceNow(base::TimeDelta delta) { now_ += delta; }
+  viz::BeginFrameArgs BeginFrameArgs(base::TimeTicks now = base::TimeTicks()) {
+    if (now == base::TimeTicks())
+      now = now_;
+
+    return viz::BeginFrameArgs::Create(
+        BEGINFRAME_FROM_HERE, 1 /* source_id */, 1 /* sequence_number */,
+        now /* frame_time */, now + interval_ /* deadline */,
+        interval_ /* interval */,
+        viz::BeginFrameArgs::BeginFrameArgsType::NORMAL);
+  }
+
+  void RunFrameRequestAndInvalidation() {
+    // Frame request.
+    base::RunLoop().RunUntilIdle();
+    EXPECT_EQ(begin_frame_count_, 1);
+    EXPECT_EQ(invalidation_count_, 0);
+    begin_frame_count_ = 0;
+
+    // Invalidation request.
+    controller_->WillBeginImplFrame(BeginFrameArgs());
+    EXPECT_EQ(begin_frame_count_, 0);
+    EXPECT_EQ(invalidation_count_, 1);
+    invalidation_count_ = 0;
+  }
 
   virtual bool GetEnableImageAnimationResync() const { return true; }
 
   base::TimeTicks now_;
   int invalidation_count_ = 0;
+  int begin_frame_count_ = 0;
   std::unique_ptr<ImageAnimationController> controller_;
   scoped_refptr<DelayTrackingTaskRunner> task_runner_;
+
+  base::TimeDelta interval_ = base::TimeDelta::FromMilliseconds(1);
 };
 
 TEST_F(ImageAnimationControllerTest, AnimationWithDelays) {
@@ -174,7 +212,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Display 2 loops in the animation.
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0);
@@ -184,7 +222,7 @@
   // the third iteration. Add a delay that causes us to skip the first frame.
   base::TimeDelta additional_delay = base::TimeDelta::FromMilliseconds(1);
   AdvanceNow(data.frames[0].duration + additional_delay);
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
   EXPECT_EQ(animated_images.count(data.paint_image_id), 1u);
   EXPECT_EQ(
@@ -203,9 +241,6 @@
   // Invalidation delay is based on the duration of the second frame and the
   // delay in creating this sync tree.
   task_runner_->VerifyDelay(frames[1].duration - additional_delay);
-  invalidation_count_ = 0;
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
 
   // Activate and animate with a delay that causes us to skip another 2 frames.
   controller_->DidActivate();
@@ -214,7 +249,8 @@
             1u);
   AdvanceNow(data.frames[1].duration + data.frames[2].duration +
              data.frames[3].duration);
-  animated_images = controller_->AnimateForSyncTree(now_);
+  RunFrameRequestAndInvalidation();
+  animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
   EXPECT_EQ(animated_images.count(data.paint_image_id), 1u);
   EXPECT_EQ(
@@ -233,9 +269,6 @@
   // Invalidation delay is based on the duration of the first frame and the
   // initial additionaly delay.
   task_runner_->VerifyDelay(frames[0].duration - additional_delay);
-  invalidation_count_ = 0;
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
 
   controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
 }
@@ -266,20 +299,18 @@
   // Disable animating from all drivers, no invalidation request should be made.
   first_driver.set_should_animate(false);
   second_driver.set_should_animate(false);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
   base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 0);
+  EXPECT_EQ(begin_frame_count_, 0);
 
   // Enable animating from the first driver, which should schedule an
   // invalidation to advance this animation.
   first_driver.set_should_animate(true);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
   task_runner_->VerifyDelay(base::TimeDelta());
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
 
   // Start animating the first image.
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 0u);
 
   // Invalidation should be scheduled for this image.
@@ -287,7 +318,7 @@
 
   // Now enable animating the second image instead.
   second_driver.set_should_animate(true);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Invalidation is triggered to start with no delay since the second image has
   // not started animating yet.
@@ -296,11 +327,11 @@
   // Disable animating all images.
   first_driver.set_should_animate(false);
   second_driver.set_should_animate(false);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Any scheduled invalidation should be cancelled.
   base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
+  EXPECT_EQ(begin_frame_count_, 0);
 
   controller_->UnregisterAnimationDriver(first_data.paint_image_id,
                                          &first_driver);
@@ -320,7 +351,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Finish a single loop in the animation.
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0);
@@ -337,7 +368,7 @@
   data.repetition_count = 5;
   controller_->UpdateAnimatedImage(data);
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
   for (int i = 0; i < data.repetition_count; ++i) {
     LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), i);
 
@@ -361,7 +392,7 @@
   data.repetition_count = kAnimationLoopInfinite;
   controller_->UpdateAnimatedImage(data);
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
   for (int i = 0; i < 7; ++i) {
     LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), i);
 
@@ -375,9 +406,9 @@
 
   // We still have an invalidation scheduled since the image will keep looping
   // till the drivers keep the animation active.
-  invalidation_count_ = 0;
+  begin_frame_count_ = 0;
   base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
+  EXPECT_EQ(begin_frame_count_, 1);
   controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
 
   // Now try with a kAnimationNone image, which should result in a DCHECK
@@ -399,7 +430,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Advance until the second frame.
   LoopOnceNoDelay(data.paint_image_id, frames, 2, 0);
@@ -414,7 +445,7 @@
   // be advanced.
   data.completion_state = PaintImage::CompletionState::DONE;
   controller_->UpdateAnimatedImage(data);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // No invalidation is scheduled since the last frame is still incomplete.
   base::RunLoop().RunUntilIdle();
@@ -434,7 +465,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Finish the first loop.
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0);
@@ -453,14 +484,13 @@
   data.completion_state = PaintImage::CompletionState::DONE;
   data.frames = frames;
   controller_->UpdateAnimatedImage(data);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // The animation advances to the last frame. We don't have a delay since we
   // already advanced to the desired time in the loop above.
   task_runner_->VerifyDelay(base::TimeDelta());
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  RunFrameRequestAndInvalidation();
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
             2u);
@@ -476,9 +506,9 @@
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 1);
 
   // No invalidation should have been requested at the end of the second loop.
-  invalidation_count_ = 0;
+  begin_frame_count_ = 0;
   base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 0);
+  EXPECT_EQ(begin_frame_count_, 0);
 
   controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
 }
@@ -494,13 +524,12 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Advance the first frame.
   task_runner_->VerifyDelay(base::TimeDelta());
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  RunFrameRequestAndInvalidation();
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
             0u);
@@ -517,7 +546,7 @@
   // animation is not advanced.
   base::TimeDelta time_remaining = base::TimeDelta::FromMilliseconds(1);
   AdvanceNow(frames[0].duration - time_remaining);
-  animated_images = controller_->AnimateForSyncTree(now_);
+  animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
             0u);
@@ -533,7 +562,7 @@
 
   // We have a sync tree before the invalidation task could run.
   AdvanceNow(time_remaining);
-  animated_images = controller_->AnimateForSyncTree(now_);
+  animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
   EXPECT_EQ(animated_images.count(data.paint_image_id), 1u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
@@ -564,13 +593,12 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Advance the first frame.
   task_runner_->VerifyDelay(base::TimeDelta());
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  RunFrameRequestAndInvalidation();
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 0u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
@@ -586,9 +614,10 @@
   // Advance the time by 10 min.
   AdvanceNow(base::TimeDelta::FromMinutes(10));
 
-  // Animate again, it starts from the first frame. We don't see an
-  // invalidation, because that's the frame we are already displaying.
-  animated_images = controller_->AnimateForSyncTree(now_);
+  // Animate again, it starts from the first frame. We don't see a
+  // frame update, because that's the frame we are already displaying.
+  controller_->WillBeginImplFrame(BeginFrameArgs());
+  animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 0u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
@@ -600,9 +629,6 @@
 
   // New invalidation request since the desired invalidation time changed.
   task_runner_->VerifyDelay(frames[0].duration);
-  invalidation_count_ = 0;
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
 
   controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
 }
@@ -620,7 +646,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Perform the first loop while the image is partially loaded, until the third
   // frame.
@@ -637,13 +663,13 @@
   // Finish the image load.
   data.completion_state = PaintImage::CompletionState::DONE;
   controller_->UpdateAnimatedImage(data);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Invalidation is scheduled immediately because we are way past the desired
   // time. We should start from the first frame after the image is loaded
   // instead of skipping frames.
   task_runner_->VerifyDelay(base::TimeDelta());
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
   EXPECT_EQ(animated_images.count(data.paint_image_id), 1u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
@@ -667,7 +693,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Finish 2 loops.
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0);
@@ -679,10 +705,8 @@
 
   // Advance the animation, we should see the last frame since the desired
   // repetition count will be reached during catch up.
-  invalidation_count_ = 0;
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  RunFrameRequestAndInvalidation();
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   // No invalidation since the active tree is already at the last frame.
   EXPECT_EQ(animated_images.size(), 0u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
@@ -706,7 +730,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Go uptill the second frame during the second iteration.
   LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0);
@@ -715,12 +739,13 @@
   // Reset the animation.
   data.reset_animation_sequence_id++;
   controller_->UpdateAnimatedImage(data);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // It should start again from the first frame and do 3 loops.
   for (int i = 0; i < 3; ++i) {
     bool restarting = i == 0;
-    LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), i, restarting);
+    LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), i, {},
+                    restarting);
   }
 
   // No invalidation should be pending.
@@ -731,7 +756,7 @@
   // Same image used again in a recording. There shouldn't be an invalidation
   // since the reset sequence has already been synchronized.
   controller_->UpdateAnimatedImage(data);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(invalidation_count_, 0);
 
@@ -761,7 +786,7 @@
   controller_->RegisterAnimationDriver(second_data.paint_image_id,
                                        &second_driver);
 
-  controller_->AnimateForSyncTree(now_);
+  controller_->AnimateForSyncTree(BeginFrameArgs());
 
   controller_->UnregisterAnimationDriver(first_data.paint_image_id,
                                          &first_driver);
@@ -780,6 +805,145 @@
   EXPECT_EQ(controller_->animation_state_map_size_for_testing(), 1u);
 }
 
+TEST_F(ImageAnimationControllerTest, ImageWithNonVsyncAlignedDurations) {
+  interval_ = base::TimeDelta::FromMilliseconds(1);
+  std::vector<FrameMetadata> frames = {
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(2.5)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(3.76)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(4.27))};
+  DiscardableImageMap::AnimatedImageMetadata data(
+      PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
+      0u);
+  controller_->UpdateAnimatedImage(data);
+  FakeAnimationDriver driver;
+  controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
+  controller_->UpdateStateFromDrivers();
+
+  std::vector<base::TimeDelta> expected_delays = {
+      base::TimeDelta::FromMilliseconds(2),
+      base::TimeDelta::FromMilliseconds(3),
+      base::TimeDelta::FromMilliseconds(4)};
+  LoopOnceNoDelay(data.paint_image_id, frames, frames.size(), 0,
+                  expected_delays);
+
+  controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
+}
+
+TEST_F(ImageAnimationControllerTest, ImageWithLessThanIntervalDurations) {
+  interval_ = base::TimeDelta::FromMilliseconds(1);
+  std::vector<FrameMetadata> frames = {
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.5)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.43)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.76)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(0.74)),
+  };
+  frames.push_back(FrameMetadata(true, interval_ - frames.back().duration));
+  DiscardableImageMap::AnimatedImageMetadata data(
+      PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames,
+      kAnimationLoopOnce, 0u);
+  controller_->UpdateAnimatedImage(data);
+  FakeAnimationDriver driver;
+  controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
+  controller_->UpdateStateFromDrivers();
+
+  // Since the animation hasn't started yet, it wants to advance immediately.
+  task_runner_->VerifyDelay(base::TimeDelta());
+  // The first pending tree is what starts the animation and will just snap to
+  // the next vsync.
+  auto invalidated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
+  EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
+                                               WhichTree::PENDING_TREE),
+            0u);
+  controller_->DidActivate();
+  AdvanceNow(interval_);
+
+  // For the next frame, the catch up loop forces us to skip the second frame
+  // and jump directly to the third frame.
+  task_runner_->VerifyDelay(interval_);
+  invalidated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
+  ASSERT_EQ(invalidated_images.size(), 1u);
+  EXPECT_EQ(invalidated_images.count(data.paint_image_id), 1u);
+  EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
+                                               WhichTree::PENDING_TREE),
+            2u);
+  EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
+                                               WhichTree::ACTIVE_TREE),
+            0u);
+  controller_->DidActivate();
+  AdvanceNow(interval_);
+
+  // The 4th and 5th frame add up to the duration of the |interval_|, so the
+  // catch up look jumps us to the 5th frame.
+  task_runner_->VerifyDelay(interval_);
+  invalidated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
+  ASSERT_EQ(invalidated_images.size(), 1u);
+  EXPECT_EQ(invalidated_images.count(data.paint_image_id), 1u);
+  EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
+                                               WhichTree::PENDING_TREE),
+            4u);
+  EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
+                                               WhichTree::ACTIVE_TREE),
+            2u);
+  controller_->DidActivate();
+
+  controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
+}
+
+TEST_F(ImageAnimationControllerTest, ImplFramesWhileInvalidationPending) {
+  std::vector<FrameMetadata> frames = {
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(2.5)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(3.76)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(4.27))};
+  DiscardableImageMap::AnimatedImageMetadata data(
+      PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
+      0u);
+  controller_->UpdateAnimatedImage(data);
+  FakeAnimationDriver driver;
+  controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
+  controller_->UpdateStateFromDrivers();
+
+  // Send the impl frame for invalidating the current image such that an
+  // invalidation request is pending.
+  task_runner_->VerifyDelay(base::TimeDelta());
+  RunFrameRequestAndInvalidation();
+
+  // No new task since an invalidation is expected.
+  controller_->WillBeginImplFrame(BeginFrameArgs());
+  EXPECT_FALSE(task_runner_->has_delay());
+
+  controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
+}
+
+TEST_F(ImageAnimationControllerTest, MissedBeginFrameAfterRequest) {
+  std::vector<FrameMetadata> frames = {
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(2.5)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(3.76)),
+      FrameMetadata(true, base::TimeDelta::FromMillisecondsD(4.27))};
+  DiscardableImageMap::AnimatedImageMetadata data(
+      PaintImage::GetNextId(), PaintImage::CompletionState::DONE, frames, 3,
+      0u);
+  controller_->UpdateAnimatedImage(data);
+  FakeAnimationDriver driver;
+  controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
+  controller_->UpdateStateFromDrivers();
+
+  // There should be a frame request with no delay to start the animation.
+  task_runner_->VerifyDelay(base::TimeDelta());
+
+  // Run the pending frame request.
+  begin_frame_count_ = 0;
+  base::RunLoop().RunUntilIdle();
+  EXPECT_EQ(begin_frame_count_, 1);
+
+  // Pretend that we got an impl frame for the previous vsync.
+  controller_->WillBeginImplFrame(BeginFrameArgs(now_ - interval_));
+
+  // We should get another request for an impl frame.
+  EXPECT_EQ(begin_frame_count_, 2);
+
+  controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
+}
+
 class ImageAnimationControllerNoResyncTest
     : public ImageAnimationControllerTest {
  protected:
@@ -797,13 +961,12 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Advance the first frame.
   task_runner_->VerifyDelay(base::TimeDelta());
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  RunFrameRequestAndInvalidation();
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 0u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
@@ -822,7 +985,8 @@
 
   // Animate again, it should not restart from the start. Should display second
   // animation frame.
-  animated_images = controller_->AnimateForSyncTree(now_);
+  controller_->WillBeginImplFrame(BeginFrameArgs());
+  animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
                                                WhichTree::PENDING_TREE),
@@ -834,9 +998,6 @@
 
   // New invalidation request since the desired invalidation time changed.
   task_runner_->VerifyDelay(frames[1].duration);
-  invalidation_count_ = 0;
-  base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(invalidation_count_, 1);
 
   controller_->UnregisterAnimationDriver(data.paint_image_id, &driver);
 }
@@ -854,7 +1015,7 @@
   controller_->UpdateAnimatedImage(data);
   FakeAnimationDriver driver;
   controller_->RegisterAnimationDriver(data.paint_image_id, &driver);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Perform the first loop while the image is partially loaded, until the third
   // frame.
@@ -871,12 +1032,12 @@
   // Finish the image load.
   data.completion_state = PaintImage::CompletionState::DONE;
   controller_->UpdateAnimatedImage(data);
-  controller_->UpdateStateFromDrivers(now_);
+  controller_->UpdateStateFromDrivers();
 
   // Invalidation is scheduled immediately because we are way past the desired
   // time. We skip frames even after the image is loaded.
   task_runner_->VerifyDelay(base::TimeDelta());
-  auto animated_images = controller_->AnimateForSyncTree(now_);
+  auto animated_images = controller_->AnimateForSyncTree(BeginFrameArgs());
   EXPECT_EQ(animated_images.size(), 1u);
   EXPECT_EQ(animated_images.count(data.paint_image_id), 1u);
   EXPECT_EQ(controller_->GetFrameIndexForImage(data.paint_image_id,
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index c86480bf4..c1d49e1a 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -322,12 +322,9 @@
       scroll_animating_latched_element_id_(kInvalidElementId),
       // It is safe to use base::Unretained here since we will outlive the
       // ImageAnimationController.
-      image_animation_controller_(
-          GetTaskRunner(),
-          base::BindRepeating(
-              &LayerTreeHostImpl::RequestInvalidationForAnimatedImages,
-              base::Unretained(this)),
-          settings_.enable_image_animation_resync),
+      image_animation_controller_(GetTaskRunner(),
+                                  this,
+                                  settings_.enable_image_animation_resync),
       frame_metrics_(LTHI_FrameMetricsSettings(settings_)),
       skipped_frame_tracker_(&frame_metrics_),
       is_animating_for_snap_(false),
@@ -485,8 +482,8 @@
   if (ukm_manager_)
     ukm_manager_->AddCheckerboardedImages(images_to_invalidate.size());
 
-  const auto& animated_images = image_animation_controller_.AnimateForSyncTree(
-      CurrentBeginFrameArgs().frame_time);
+  const auto& animated_images =
+      image_animation_controller_.AnimateForSyncTree(CurrentBeginFrameArgs());
   images_to_invalidate.insert(animated_images.begin(), animated_images.end());
   sync_tree()->InvalidateRegionForImages(images_to_invalidate);
 
@@ -2426,6 +2423,8 @@
 
   Animate();
 
+  image_animation_controller_.WillBeginImplFrame(args);
+
   for (auto* it : video_frame_controllers_)
     it->OnBeginFrame(args);
 
@@ -5683,13 +5682,6 @@
     animation_controller->DidScrollUpdate();
 }
 
-void LayerTreeHostImpl::RequestInvalidationForAnimatedImages() {
-  // If we are animating an image, we want at least one draw of the active tree
-  // before a new tree is activated.
-  bool needs_first_draw_on_activation = true;
-  client_->NeedsImplSideInvalidation(needs_first_draw_on_activation);
-}
-
 void LayerTreeHostImpl::InitializeUkm(
     std::unique_ptr<ukm::UkmRecorder> recorder) {
   DCHECK(!ukm_manager_);
@@ -5744,4 +5736,17 @@
       child_local_surface_id_allocator_.GetCurrentLocalSurfaceIdAllocation());
 }
 
+void LayerTreeHostImpl::RequestBeginFrameForAnimatedImages() {
+  SetNeedsOneBeginImplFrame();
+}
+
+void LayerTreeHostImpl::RequestInvalidationForAnimatedImages() {
+  DCHECK_EQ(impl_thread_phase_, ImplThreadPhase::INSIDE_IMPL_FRAME);
+
+  // If we are animating an image, we want at least one draw of the active tree
+  // before a new tree is activated.
+  bool needs_first_draw_on_activation = true;
+  client_->NeedsImplSideInvalidation(needs_first_draw_on_activation);
+}
+
 }  // namespace cc
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index 1cc6b645..d755a503 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -171,6 +171,7 @@
       public ScrollbarAnimationControllerClient,
       public VideoFrameControllerClient,
       public MutatorHostClient,
+      public ImageAnimationController::Client,
       public base::SupportsWeakPtr<LayerTreeHostImpl> {
  public:
   // This structure is used to build all the state required for producing a
@@ -296,6 +297,10 @@
   bool HaveRootScrollNode() const override;
   void SetNeedsCommit() override;
 
+  // ImageAnimationController::Client implementation.
+  void RequestBeginFrameForAnimatedImages() override;
+  void RequestInvalidationForAnimatedImages() override;
+
   void UpdateViewportContainerSizes();
 
   void set_resourceless_software_draw_for_testing() {
@@ -874,9 +879,6 @@
   // tree, because the active tree value always takes precedence for scrollbars.
   void PushScrollbarOpacitiesFromActiveToPending();
 
-  // Request an impl-side invalidation to animate an image.
-  void RequestInvalidationForAnimatedImages();
-
   // Pushes state for image animations and checkerboarded images from the
   // pending to active tree. This is called during activation when a pending
   // tree exists, and during the commit if we are committing directly to the
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index b3fa34ce..2731ba97 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -1366,8 +1366,7 @@
   }
 
   if (update_image_animation_controller && image_animation_controller()) {
-    image_animation_controller()->UpdateStateFromDrivers(
-        CurrentBeginFrameArgs().frame_time);
+    image_animation_controller()->UpdateStateFromDrivers();
   }
 
   DCHECK(!needs_update_draw_properties_)
diff --git a/chrome/VERSION b/chrome/VERSION
index dcd66d4..5904f2f 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=74
 MINOR=0
-BUILD=3715
+BUILD=3718
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 9e3ea74..26acb17 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -1115,7 +1115,7 @@
 
       generate_resource_whitelist(_resource_whitelist_target) {
         _fat_lib_toolchain = ""
-        if (_is_monochrome) {
+        if (_is_monochrome || _is_trichrome) {
           # Always use the 32-bit library's whitelist since the 64-bit one is
           # webview-only.
           if (!android_64bit_target_cpu) {
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
index 664afbce..56cd8db 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
@@ -48,9 +48,8 @@
 import org.chromium.chrome.browser.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.util.ViewUtils;
-import org.chromium.chrome.browser.widget.displaystyle.HorizontalDisplayStyle;
-import org.chromium.chrome.browser.widget.displaystyle.MarginResizer;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
+import org.chromium.chrome.browser.widget.displaystyle.ViewResizer;
 import org.chromium.ui.UiUtils;
 import org.chromium.ui.base.DeviceFormFactor;
 
@@ -73,12 +72,12 @@
     private @Nullable FeedImageLoader mImageLoader;
     private @Nullable StreamLifecycleManager mStreamLifecycleManager;
     private @Nullable SectionHeaderView mSectionHeaderView;
-    private @Nullable MarginResizer mSectionHeaderViewMarginResizer;
     private @Nullable PersonalizedSigninPromoView mSigninPromoView;
-    private @Nullable MarginResizer mSignInPromoViewMarginResizer;
+    private @Nullable ViewResizer mStreamViewResizer;
 
     // Used when Feed is disabled by policy.
     private @Nullable ScrollView mScrollViewForPolicy;
+    private @Nullable ViewResizer mScrollViewResizer;
 
     private static class BasicSnackbarApi implements SnackbarApi {
         private final SnackbarManager mManager;
@@ -157,16 +156,12 @@
 
         @Override
         public int getCardStartMargin() {
-            return mUiConfig.getCurrentDisplayStyle().horizontal == HorizontalDisplayStyle.WIDE
-                    ? mCardWideMargin
-                    : mCardMargin;
+            return 0;
         }
 
         @Override
         public int getCardEndMargin() {
-            return mUiConfig.getCurrentDisplayStyle().horizontal == HorizontalDisplayStyle.WIDE
-                    ? mCardWideMargin
-                    : mCardMargin;
+            return 0;
         }
     }
 
@@ -223,6 +218,21 @@
     }
 
     /**
+     * Provides the additional capabilities needed for the {@link ScrollView}.
+     */
+    private class PolicyScrollView extends ScrollView {
+        public PolicyScrollView(Context context) {
+            super(context);
+        }
+
+        @Override
+        protected void onConfigurationChanged(Configuration newConfig) {
+            super.onConfigurationChanged(newConfig);
+            mUiConfig.updateDisplayStyle();
+        }
+    }
+
+    /**
      * Constructs a new FeedNewTabPage.
      *
      * @param activity The containing {@link ChromeActivity}.
@@ -319,6 +329,8 @@
         if (mScrollViewForPolicy != null) {
             mRootView.removeView(mScrollViewForPolicy);
             mScrollViewForPolicy = null;
+            mScrollViewResizer.detach();
+            mScrollViewResizer = null;
         }
 
         FeedProcessScope feedProcessScope = FeedProcessScopeFactory.getFeedProcessScope();
@@ -360,12 +372,12 @@
         LayoutInflater inflater = LayoutInflater.from(chromeActivity);
         mSectionHeaderView = (SectionHeaderView) inflater.inflate(
                 R.layout.new_tab_page_snippets_expandable_header, mRootView, false);
-        mSectionHeaderViewMarginResizer = MarginResizer.createAndAttach(
-                mSectionHeaderView, mUiConfig, mDefaultMargin, mWideMargin);
 
         View view = mStream.getView();
         view.setBackgroundResource(R.color.modern_primary_color);
         mRootView.addView(view);
+        mStreamViewResizer =
+                ViewResizer.createAndAttach(view, mUiConfig, mDefaultMargin, mWideMargin);
 
         UiUtils.removeViewFromParent(mNewTabPageLayout);
         UiUtils.removeViewFromParent(mSectionHeaderView);
@@ -391,6 +403,8 @@
      */
     void createScrollViewForPolicy() {
         if (mStream != null) {
+            mStreamViewResizer.detach();
+            mStreamViewResizer = null;
             mRootView.removeView(mStream.getView());
             assert mStreamLifecycleManager
                     != null
@@ -400,20 +414,14 @@
             // Do not call mStream.onDestroy(), the mStreamLifecycleManager has done that for us.
             mStream = null;
             mSectionHeaderView = null;
-            mSectionHeaderViewMarginResizer.detach();
-            mSectionHeaderViewMarginResizer = null;
             mSigninPromoView = null;
-            if (mSignInPromoViewMarginResizer != null) {
-                mSignInPromoViewMarginResizer.detach();
-                mSignInPromoViewMarginResizer = null;
-            }
             if (mImageLoader != null) {
                 mImageLoader.destroy();
                 mImageLoader = null;
             }
         }
 
-        mScrollViewForPolicy = new ScrollView(mTab.getActivity());
+        mScrollViewForPolicy = new PolicyScrollView(mTab.getActivity());
         mScrollViewForPolicy.setBackgroundColor(Color.WHITE);
 
         // Make scroll view focusable so that it is the next focusable view when the url bar clears
@@ -426,6 +434,8 @@
         UiUtils.removeViewFromParent(mNewTabPageLayout);
         mScrollViewForPolicy.addView(mNewTabPageLayout);
         mRootView.addView(mScrollViewForPolicy);
+        mScrollViewResizer = ViewResizer.createAndAttach(
+                mScrollViewForPolicy, mUiConfig, mDefaultMargin, mWideMargin);
         mScrollViewForPolicy.requestFocus();
     }
 
@@ -441,8 +451,6 @@
             mSigninPromoView = (PersonalizedSigninPromoView) inflater.inflate(
                     R.layout.personalized_signin_promo_view_modern_content_suggestions, mRootView,
                     false);
-            mSignInPromoViewMarginResizer = MarginResizer.createAndAttach(
-                    mSigninPromoView, mUiConfig, mDefaultMargin, mWideMargin);
         }
         return mSigninPromoView;
     }
diff --git a/chrome/android/java/res_autofill_assistant/layout/autofill_assistant_payment_request.xml b/chrome/android/java/res_autofill_assistant/layout/autofill_assistant_payment_request.xml
index b94d0af..5fcba66 100644
--- a/chrome/android/java/res_autofill_assistant/layout/autofill_assistant_payment_request.xml
+++ b/chrome/android/java/res_autofill_assistant/layout/autofill_assistant_payment_request.xml
@@ -34,25 +34,19 @@
 
     </org.chromium.chrome.browser.widget.FadingEdgeScrollView>
 
-    <!-- 3rd party terms & conditions.
-         Set margins to align the background box with the other payment request sections. -->
+    <!-- 3rd party terms & conditions. -->
     <RadioGroup
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:layout_marginTop="18dp"
-        android:background="@drawable/autofill_assistant_lightblue_rect_bg">
+        android:orientation="vertical">
 
-        <!-- Set paddingStart to add padding between radio-button and text.
-             Set margins to add some padding between text and start/end of background box. -->
+        <!-- Set paddingStart to add padding between radio-button and text. -->
         <Space android:layout_width="0dp" android:layout_height="9dp"/>
         <android.support.v7.widget.AppCompatRadioButton
             android:id="@+id/terms_checkbox_agree"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingStart="9dp"
-            android:layout_marginStart="5dp"
-            android:layout_marginEnd="5dp"
             android:text="@string/autofill_assistant_3rd_party_terms_accept"
             android:textAppearance="@style/TextAppearance.BlackCaption"/>
         <Space android:layout_width="0dp" android:layout_height="5dp"/>
@@ -61,12 +55,18 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingStart="9dp"
-            android:layout_marginStart="5dp"
-            android:layout_marginEnd="5dp"
             android:text="@string/autofill_assistant_3rd_party_terms_review"
             android:textAppearance="@style/TextAppearance.BlackCaption"/>
-        <Space android:layout_width="0dp" android:layout_height="9dp"/>
     </RadioGroup>
+    <Space android:layout_width="0dp" android:layout_height="12dp"/>
+    <TextView
+        android:id="@+id/payment_request_3rd_party_privacy_notice"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="6dp"
+        android:text="@string/autofill_assistant_3rd_party_privacy_notice"
+        android:textAppearance="@style/TextAppearance.AssistantBlackCaption"
+        android:background="@drawable/autofill_assistant_lightblue_rect_bg"/>
 
     <include layout="@layout/autofill_assistant_payment_request_bottom_bar" />
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BitmapCache.java b/chrome/android/java/src/org/chromium/chrome/browser/BitmapCache.java
index b1be3966..b65ae5c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/BitmapCache.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BitmapCache.java
@@ -104,6 +104,8 @@
 
     public Bitmap getBitmap(String key) {
         ThreadUtils.assertOnUiThread();
+        if (mBitmapCache == null) return null;
+
         Bitmap cachedBitmap = getBitmapCache().get(key);
         assert cachedBitmap == null || !cachedBitmap.isRecycled();
         maybeScheduleDeduplicationCache();
@@ -112,7 +114,8 @@
 
     public void putBitmap(@NonNull String key, @Nullable Bitmap bitmap) {
         ThreadUtils.assertOnUiThread();
-        if (bitmap == null) return;
+        if (bitmap == null || mBitmapCache == null) return;
+
         if (!SysUtils.isLowEndDevice()) getBitmapCache().put(key, bitmap);
         maybeScheduleDeduplicationCache();
         sDeduplicationCache.put(key, new WeakReference<>(bitmap));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index d13a30c..3303c1c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -459,7 +459,10 @@
                     Context.ACCESSIBILITY_SERVICE);
             manager.addAccessibilityStateChangeListener(this);
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-                mTouchExplorationStateChangeListener = enabled -> checkAccessibility();
+                mTouchExplorationStateChangeListener = enabled -> {
+                    AccessibilityUtil.resetAccessibilityEnabled();
+                    checkAccessibility();
+                };
                 manager.addTouchExplorationStateChangeListener(
                         mTouchExplorationStateChangeListener);
             }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/payment/PaymentRequestUI.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/payment/PaymentRequestUI.java
index dffee23..9ddc53c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/payment/PaymentRequestUI.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/payment/PaymentRequestUI.java
@@ -319,6 +319,13 @@
         mAcceptThirdPartyConditions.setOnClickListener(this);
         mReviewThirdPartyConditions.setOnClickListener(this);
 
+        // Set 3rd party privacy notice text.
+        TextView thirdPartyPrivacyNotice =
+                mRequestView.findViewById(R.id.payment_request_3rd_party_privacy_notice);
+        thirdPartyPrivacyNotice.setText(SpanApplier.applySpans(
+                context.getString(R.string.autofill_assistant_3rd_party_privacy_notice, origin),
+                new SpanApplier.SpanInfo("<b>", "</b>", boldSpan)));
+
         // Create all the possible sections.
         mSectionSeparators = new ArrayList<>();
         mPaymentContainer = (FadingEdgeScrollView) mRequestView.findViewById(R.id.option_container);
@@ -354,7 +361,7 @@
 
         // Always show separator at the top.
         mPaymentContainer.setEdgeVisibility(
-                FadingEdgeScrollView.EdgeType.HARD, FadingEdgeScrollView.EdgeType.FADING);
+                FadingEdgeScrollView.EdgeType.HARD, FadingEdgeScrollView.EdgeType.HARD);
 
         if (mRequestContactDetails) {
             mPaymentContainerLayout.addView(mContactDetailsSection,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
index e29d25a..42e7f8c38 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
@@ -30,6 +30,7 @@
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.util.ViewUtils;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
+import org.chromium.chrome.browser.widget.displaystyle.ViewResizer;
 
 /**
  * The native new tab page, represented by some basic data such as title and url, and an Android
@@ -46,6 +47,7 @@
     private Tab mTab;
     private SnapScrollHelper mSnapScrollHelper;
     private UiConfig mUiConfig;
+    private ViewResizer mRecyclerViewResizer;
 
     private boolean mNewTabPageRecyclerViewChanged;
     private int mSnapshotWidth;
@@ -186,6 +188,12 @@
         mRecyclerView.setAdapter(newTabPageAdapter);
         mRecyclerView.getLinearLayoutManager().scrollToPosition(scrollPosition);
 
+        mRecyclerViewResizer = ViewResizer.createAndAttach(mRecyclerView, mUiConfig,
+                mRecyclerView.getResources().getDimensionPixelSize(
+                        R.dimen.content_suggestions_card_modern_margin),
+                mRecyclerView.getResources().getDimensionPixelSize(
+                        R.dimen.ntp_wide_card_lateral_margins));
+
         setupScrollHandling();
 
         // When the NewTabPageAdapter's data changes we need to invalidate any previous
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java
index df292ff8..5e59a72 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java
@@ -12,12 +12,10 @@
 import android.view.View.OnAttachStateChangeListener;
 import android.view.ViewGroup;
 
-import org.chromium.chrome.R;
 import org.chromium.chrome.browser.native_page.ContextMenuManager;
 import org.chromium.chrome.browser.native_page.ContextMenuManager.ContextMenuItemId;
 import org.chromium.chrome.browser.suggestions.SuggestionsRecyclerView;
 import org.chromium.chrome.browser.widget.displaystyle.HorizontalDisplayStyle;
-import org.chromium.chrome.browser.widget.displaystyle.MarginResizer;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
 
 /**
@@ -38,7 +36,6 @@
     protected final SuggestionsRecyclerView mRecyclerView;
 
     protected final UiConfig mUiConfig;
-    private final MarginResizer mMarginResizer;
 
     /**
      * @param layoutId resource id of the layout to inflate and to use as card.
@@ -62,14 +59,6 @@
                                 menu, itemView, CardViewHolder.this));
 
         mUiConfig = uiConfig;
-
-        final int defaultLateralMargin =
-                resources.getDimensionPixelSize(R.dimen.content_suggestions_card_modern_margin);
-        int wideLateralMargin =
-                resources.getDimensionPixelSize(R.dimen.ntp_wide_card_lateral_margins);
-
-        mMarginResizer =
-                new MarginResizer(itemView, uiConfig, defaultLateralMargin, wideLateralMargin);
     }
 
     @Override
@@ -130,14 +119,6 @@
 
         // Make sure we use the right background.
         updateLayoutParams();
-
-        mMarginResizer.attach();
-    }
-
-    @Override
-    public void recycle() {
-        mMarginResizer.detach();
-        super.recycle();
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewHolder.java
index 13b3171c..8dd2814 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewHolder.java
@@ -10,7 +10,6 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder;
 import org.chromium.chrome.browser.suggestions.SuggestionsRecyclerView;
-import org.chromium.chrome.browser.widget.displaystyle.MarginResizer;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
 
 /**
@@ -18,7 +17,6 @@
  */
 public class SectionHeaderViewHolder extends NewTabPageViewHolder {
     private final SectionHeaderView mSectionHeaderView;
-    private final MarginResizer mMarginResizer;
 
     public SectionHeaderViewHolder(final SuggestionsRecyclerView recyclerView, UiConfig config) {
         super(LayoutInflater.from(recyclerView.getContext())
@@ -31,18 +29,14 @@
                 resources.getDimensionPixelSize(R.dimen.content_suggestions_card_modern_margin);
         int wideLateralMargin =
                 resources.getDimensionPixelSize(R.dimen.ntp_wide_card_lateral_margins);
-        mMarginResizer =
-                new MarginResizer(itemView, config, defaultLateralMargin, wideLateralMargin);
     }
 
     public void onBindViewHolder(SectionHeader header) {
         mSectionHeaderView.setHeader(header);
-        mMarginResizer.attach();
     }
 
     @Override
     public void recycle() {
-        mMarginResizer.detach();
         mSectionHeaderView.setHeader(null);
         super.recycle();
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileGridViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileGridViewHolder.java
index 095a4643d..38ec806b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileGridViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileGridViewHolder.java
@@ -8,7 +8,6 @@
 import android.view.ViewGroup;
 
 import org.chromium.chrome.R;
-import org.chromium.chrome.browser.widget.displaystyle.MarginResizer;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
 
 import java.util.List;
@@ -19,7 +18,6 @@
  */
 public class TileGridViewHolder extends SiteSectionViewHolder {
     private final TileGridLayout mSectionView;
-    private final MarginResizer mMarginResizer;
 
     public TileGridViewHolder(ViewGroup view, int maxRows, int maxColumns, UiConfig uiConfig) {
         super(view);
@@ -32,8 +30,6 @@
         int defaultLateralMargin =
                 res.getDimensionPixelSize(R.dimen.tile_grid_layout_padding_start);
         int wideLateralMargin = res.getDimensionPixelSize(R.dimen.ntp_wide_card_lateral_margins);
-        mMarginResizer =
-                new MarginResizer(itemView, uiConfig, defaultLateralMargin, wideLateralMargin);
     }
 
     @Override
@@ -54,12 +50,10 @@
     @Override
     public void bindDataSource(TileGroup tileGroup, TileRenderer tileRenderer) {
         super.bindDataSource(tileGroup, tileRenderer);
-        if (mMarginResizer != null) mMarginResizer.attach();
     }
 
     @Override
     public void recycle() {
         super.recycle();
-        if (mMarginResizer != null) mMarginResizer.detach();
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorage.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorage.java
index 63a1e487..8277eae 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorage.java
@@ -83,6 +83,9 @@
     @VisibleForTesting
     long mSizeBytes;
 
+    // Whether or not this class has been destroyed and should not be used.
+    private boolean mDestroyed;
+
     private class InitTask extends AsyncTask<Void> {
         @Override
         protected Void doInBackground() {
@@ -201,6 +204,7 @@
      */
     public void destroy() {
         mThumbnailGenerator.destroy();
+        mDestroyed = true;
     }
 
     /**
@@ -217,7 +221,7 @@
      */
     public void retrieveThumbnail(ThumbnailProvider.ThumbnailRequest request) {
         ThreadUtils.assertOnUiThread();
-        if (TextUtils.isEmpty(request.getContentId())) return;
+        if (mDestroyed || TextUtils.isEmpty(request.getContentId())) return;
 
         new GetThumbnailTask(request).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
     }
@@ -233,6 +237,9 @@
     @Override
     public void onThumbnailRetrieved(
             @NonNull String contentId, @Nullable Bitmap bitmap, int iconSizePx) {
+        // If we've been destroyed, drop any responses coming back from retrieval tasks.
+        if (mDestroyed) return;
+
         ThreadUtils.assertOnUiThread();
         if (bitmap != null && !TextUtils.isEmpty(contentId)) {
             new CacheThumbnailTask(contentId, bitmap, iconSizePx)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailProviderImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailProviderImpl.java
index f00c98c6..c2c7de73 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailProviderImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/ThumbnailProviderImpl.java
@@ -84,6 +84,10 @@
 
     @Override
     public void destroy() {
+        // Drop any references to any current requests.
+        mCurrentRequest = null;
+        mRequestQueue.clear();
+
         ThreadUtils.assertOnUiThread();
         mStorage.destroy();
         mBitmapCache.destroy();
@@ -195,6 +199,9 @@
      */
     @Override
     public void onThumbnailRetrieved(@NonNull String contentId, @Nullable Bitmap bitmap) {
+        // Early-out if we have no actual current request.
+        if (mCurrentRequest == null) return;
+
         if (bitmap != null) {
             // The bitmap returned here is retrieved from the native side. The image decoder there
             // scales down the image (if it is too big) so that one of its sides is smaller than or
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java
index ce8c6aeb..343bf3db 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java
@@ -69,7 +69,6 @@
         mCurrentDisplayStyle = newDisplayStyle;
 
         if (!mIsViewAttached) return;
-        if (mCurrentDisplayStyle.equals(mNotifiedDisplayStyle)) return;
 
         mNotifiedDisplayStyle = mCurrentDisplayStyle;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java
deleted file mode 100644
index 7ad5fa4..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java
+++ /dev/null
@@ -1,99 +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.
-
-package org.chromium.chrome.browser.widget.displaystyle;
-
-import android.view.View;
-import android.view.ViewGroup.MarginLayoutParams;
-
-/**
- * Changes a view's margins when switching between {@link UiConfig} display styles.
- */
-public class MarginResizer implements DisplayStyleObserver {
-    /** The default value for the lateral margins. */
-    private int mDefaultMarginSizePixels;
-    /** The wide display value for the lateral margins. */
-    private int mWideMarginSizePixels;
-    private final View mView;
-    private final DisplayStyleObserverAdapter mDisplayStyleObserver;
-
-    @HorizontalDisplayStyle
-    private int mCurrentDisplayStyle;
-
-    /**
-     * @param view The view that will have its margins resized.
-     * @param config The UiConfig object to subscribe to.
-     * @param defaultMarginPixels Margin size to use in {@link HorizontalDisplayStyle#REGULAR}.
-     * @param wideMarginPixels Margin size to use in {@link HorizontalDisplayStyle#WIDE}.
-     */
-    public MarginResizer(
-            View view, UiConfig config, int defaultMarginPixels, int wideMarginPixels) {
-        mView = view;
-        mDefaultMarginSizePixels = defaultMarginPixels;
-        mWideMarginSizePixels = wideMarginPixels;
-        mDisplayStyleObserver = new DisplayStyleObserverAdapter(view, config, this);
-    }
-
-    /**
-     * Convenience method to create a new MarginResizer and immediately attach it to a {@link
-     * UiConfig}. If the {@link UiConfig} can outlive the view, the regular constructor should be
-     * used, so it can be detached to avoid memory leaks.
-     * @param view The view that will have its margins resized.
-     * @param config The UiConfig object to subscribe to.
-     * @param defaultMarginPixels Margin size to use in {@link HorizontalDisplayStyle#REGULAR}.
-     * @param wideMarginPixels Margin size to use in {@link HorizontalDisplayStyle#WIDE}.
-     * @return The {@link MarginResizer} that is created and attached.
-     */
-    public static MarginResizer createAndAttach(
-            View view, UiConfig config, int defaultMarginPixels, int wideMarginPixels) {
-        MarginResizer marginResizer =
-                new MarginResizer(view, config, defaultMarginPixels, wideMarginPixels);
-        marginResizer.attach();
-        return marginResizer;
-    }
-
-    /**
-     * Attaches to the {@link UiConfig}.
-     */
-    public void attach() {
-        mDisplayStyleObserver.attach();
-    }
-
-    /**
-     * Detaches from the {@link UiConfig}.
-     */
-    public void detach() {
-        mDisplayStyleObserver.detach();
-    }
-
-    @Override
-    public void onDisplayStyleChanged(UiConfig.DisplayStyle newDisplayStyle) {
-        mCurrentDisplayStyle = newDisplayStyle.horizontal;
-        updateMargins();
-    }
-
-    /**
-     * Sets the lateral margins on the associated view, using the appropriate value depending on
-     * the current display style.
-     * @param defaultMarginPixels Margin size to use in {@link HorizontalDisplayStyle#REGULAR}.
-     * @param wideMarginPixels Margin size to use in {@link HorizontalDisplayStyle#WIDE}.
-     */
-    public void setMargins(int defaultMarginPixels, int wideMarginPixels) {
-        mDefaultMarginSizePixels = defaultMarginPixels;
-        mWideMarginSizePixels = wideMarginPixels;
-        updateMargins();
-    }
-
-    private void updateMargins() {
-        MarginLayoutParams layoutParams = (MarginLayoutParams) mView.getLayoutParams();
-        if (mCurrentDisplayStyle == HorizontalDisplayStyle.WIDE) {
-            layoutParams.setMargins(mWideMarginSizePixels, layoutParams.topMargin,
-                    mWideMarginSizePixels, layoutParams.bottomMargin);
-        } else {
-            layoutParams.setMargins(mDefaultMarginSizePixels, layoutParams.topMargin,
-                    mDefaultMarginSizePixels, layoutParams.bottomMargin);
-        }
-        mView.setLayoutParams(layoutParams);
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java
index 590b6dee..834e485 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java
@@ -69,6 +69,13 @@
     }
 
     /**
+     * @return The context for the view associated with this UiConfig.
+     */
+    public Context getContext() {
+        return mContext;
+    }
+
+    /**
      * Refresh the display style, notify observers of changes.
      */
     public void updateDisplayStyle() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/ViewResizer.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/ViewResizer.java
new file mode 100644
index 0000000..749d3e44
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/displaystyle/ViewResizer.java
@@ -0,0 +1,122 @@
+// 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.
+
+package org.chromium.chrome.browser.widget.displaystyle;
+
+import android.content.res.Resources;
+import android.support.v4.view.ViewCompat;
+import android.view.View;
+
+/**
+ * Changes a view's padding when switching between {@link UiConfig} display styles. If the display
+ * style is {@link HorizontalDisplayStyle#REGULAR}, a predetermined value will be used to set the
+ * lateral padding. If the display style is {@link HorizontalDisplayStyle#WIDE}, the lateral padding
+ * will be calculated using the available screen width to keep the view constrained to
+ * {@link UiConfig#WIDE_DISPLAY_STYLE_MIN_WIDTH_DP}
+ */
+public class ViewResizer implements DisplayStyleObserver {
+    /** The default value for the lateral padding. */
+    private int mDefaultPaddingPixels;
+    /** The minimum wide display value used for the lateral padding. */
+    private int mMinWidePaddingPixels;
+    private final View mView;
+    private final DisplayStyleObserverAdapter mDisplayStyleObserver;
+    private final UiConfig mUiConfig;
+
+    @HorizontalDisplayStyle
+    private int mCurrentDisplayStyle;
+
+    /**
+     * @param view The view that will have its padding resized.
+     * @param config The UiConfig object to subscribe to.
+     * @param defaultPaddingPixels Padding to use in {@link HorizontalDisplayStyle#REGULAR}.
+     * @param minWidePaddingPixels Minimum lateral padding to use in {@link
+     *         HorizontalDisplayStyle#WIDE}.
+     */
+    public ViewResizer(
+            View view, UiConfig config, int defaultPaddingPixels, int minWidePaddingPixels) {
+        mView = view;
+        mDefaultPaddingPixels = defaultPaddingPixels;
+        mMinWidePaddingPixels = minWidePaddingPixels;
+        mUiConfig = config;
+        mDisplayStyleObserver = new DisplayStyleObserverAdapter(view, config, this);
+    }
+
+    /**
+     * Convenience method to create a new ViewResizer and immediately attach it to a {@link
+     * UiConfig}. If the {@link UiConfig} can outlive the view, the regular constructor should be
+     * used, so it can be detached to avoid memory leaks.
+     * @param view The view that will have its padding resized.
+     * @param config The UiConfig object to subscribe to.
+     * @param defaultPaddingPixels Padding to use in {@link HorizontalDisplayStyle#REGULAR}.
+     * @param minWidePaddingPixels Minimum lateral padding to use in {@link
+     *         HorizontalDisplayStyle#WIDE}.
+     * @return The {@link ViewResizer} that is created and attached.
+     */
+    public static ViewResizer createAndAttach(
+            View view, UiConfig config, int defaultPaddingPixels, int minWidePaddingPixels) {
+        ViewResizer viewResizer =
+                new ViewResizer(view, config, defaultPaddingPixels, minWidePaddingPixels);
+        viewResizer.attach();
+        return viewResizer;
+    }
+
+    /**
+     * Attaches to the {@link UiConfig}.
+     */
+    public void attach() {
+        mDisplayStyleObserver.attach();
+    }
+
+    /**
+     * Detaches from the {@link UiConfig}.
+     */
+    public void detach() {
+        mDisplayStyleObserver.detach();
+    }
+
+    @Override
+    public void onDisplayStyleChanged(UiConfig.DisplayStyle newDisplayStyle) {
+        mCurrentDisplayStyle = newDisplayStyle.horizontal;
+        updatePadding();
+    }
+
+    /**
+     * Sets the lateral padding on the associated view, using the appropriate value depending on
+     * the current display style.
+     * @param defaultPaddingPixels Padding to use in {@link HorizontalDisplayStyle#REGULAR}.
+     * @param minWidePaddingPixels Minimum lateral padding to use in {@link
+     *         HorizontalDisplayStyle#WIDE}.
+     */
+    public void setPadding(int defaultPaddingPixels, int minWidePaddingPixels) {
+        mDefaultPaddingPixels = defaultPaddingPixels;
+        mMinWidePaddingPixels = minWidePaddingPixels;
+        updatePadding();
+    }
+
+    private void updatePadding() {
+        int padding;
+        if (mCurrentDisplayStyle == HorizontalDisplayStyle.WIDE) {
+            padding = computePadding();
+        } else {
+            padding = mDefaultPaddingPixels;
+        }
+        ViewCompat.setPaddingRelative(
+                mView, padding, mView.getPaddingTop(), padding, mView.getPaddingBottom());
+    }
+
+    private int computePadding() {
+        // mUiConfig.getContext().getResources() is used here instead of mView.getResources()
+        // because lemon compression, somehow, causes the resources to return a different
+        // configuration.
+        Resources resources = mUiConfig.getContext().getResources();
+        int screenWidthDp = resources.getConfiguration().screenWidthDp;
+        float dpToPx = resources.getDisplayMetrics().density;
+        int padding =
+                (int) (((screenWidthDp - UiConfig.WIDE_DISPLAY_STYLE_MIN_WIDTH_DP) / 2.f) * dpToPx);
+        padding = Math.max(mMinWidePaddingPixels, padding);
+
+        return padding;
+    }
+}
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
index 0f6068c4..9af551e 100644
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -4036,6 +4036,9 @@
       <message name="IDS_USAGE_STATS_SETTING_TITLE" desc="Title for setting toggling Digital Wellbeing to access Chrome usage data">
         Connect to Digital Wellbeing
       </message>
+      <message name="IDS_AUTOFILL_ASSISTANT_3RD_PARTY_PRIVACY_NOTICE" desc="Privacy notice telling users that autofill assistant will send personal data to a third party’s website.">
+        Chrome will send personal data you selected to <ph name="BEGIN_BOLD">&lt;b&gt;</ph><ph name="DOMAIN">%1$s<ex>google.com</ex></ph><ph name="END_BOLD">&lt;/b&gt;</ph>
+      </message>
 
       <!-- Bottom Tab Grid strings -->
       <message name="IDS_BOTTOM_TAB_GRID_DESCRIPTION" desc="The content description of the 'opened tabs' bottom sheet.">
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index dbbeaeb5..a3e20cc 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -1854,9 +1854,9 @@
   "java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserver.java",
   "java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java",
   "java/src/org/chromium/chrome/browser/widget/displaystyle/HorizontalDisplayStyle.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java",
   "java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java",
   "java/src/org/chromium/chrome/browser/widget/displaystyle/VerticalDisplayStyle.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/ViewResizer.java",
   "java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java",
   "java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewWrapper.java",
   "java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java",
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 718184d0..236662e 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -4972,6 +4972,9 @@
       <message name="IDS_NTP_DOODLE_SHARE_DIALOG_LINK_LABEL" desc="The text label for the share link text area on the doodle sharing dialog.">
         Doodle Link
       </message>
+      <message name="IDS_NTP_CUSTOMIZE_BUTTON_LABEL" desc="The label for customize button on the New Tab Page.">
+        Customize
+      </message>
 
       <!--Tooltip strings-->
       <message name="IDS_TOOLTIP_BACK" desc="The tooltip for back button">
@@ -9201,7 +9204,7 @@
       <message name="IDS_WEBAUTHN_TRANSPORT_SELECTION_DESCRIPTION" desc="Description in the dialog instructing the user to choose how they want to connect their security key with their computer, e.g. USB or Bluetooth.">
         Pick an option
       </message>
-      <message name="IDS_WEBAUTHN_TRANSPORT_BLE" desc="Menu item text. The user selects this to use a security key (an external physcial device for user authentication) connected to the computer over Bluetooth Low Energy.">
+      <message name="IDS_WEBAUTHN_TRANSPORT_BLE" desc="Menu item text. The user selects this to use a security key (an external physical device for user authentication) connected to the computer over Bluetooth Low Energy.">
         Bluetooth security key
       </message>
       <message name="IDS_WEBAUTHN_TRANSPORT_USB" desc="Menu item text. The user selects this to use a security key (an external physical device for user authentication) plugged in to the USB port of the computer.">
@@ -9219,7 +9222,7 @@
       <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_DIFFERENT_AUTHENTICATOR_WIN" desc="Menu item text. The user selects this to use a security key (an external physical device for user authentication) connected to the computer, or a hardware-based authentication mechanism that is built in to the computer, such as a fingerprint reader.">
         External security key or built-in sensor
       </message>
-      <message name="IDS_WEBAUTHN_USB_ACTIVATE_DESCRIPTION" desc="Description in the dialog instructing the user to plug in and activate (e.g. press a button on) their USB security key (an external physcial device for user authentication).">
+      <message name="IDS_WEBAUTHN_USB_ACTIVATE_DESCRIPTION" desc="Description in the dialog instructing the user to plug in and activate (e.g. press a button on) their USB security key (an external physical device for user authentication).">
         Plug in your security key and activate it
       </message>
       <message name="IDS_WEBAUTHN_USB_SUCCESS_TITLE" desc="Title of the dialog informing the user that Chrome detected that they activated (e.g. pressed a button on) an external physical device used for authentication.">
@@ -9318,16 +9321,16 @@
       <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_LABEL" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a different hardware-based authentication mechanism from what they have selected previously.">
         Choose another option
       </message>
-      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_USB" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a security key (an external physcial device for user authentication) plugged in to the USB port of the computer.">
+      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_USB" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a security key (an external physical device for user authentication) plugged in to the USB port of the computer.">
         Verify via USB
       </message>
-      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_BLE" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a security key (an external physcial device for user authentication) connected to the user's computer over Bluetooth Low Energy.">
+      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_BLE" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a security key (an external physical device for user authentication) connected to the user's computer over Bluetooth Low Energy.">
         Verify via Bluetooth
       </message>
-      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_ANOTHER_BLE" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a Bluetooth security key (an external physcial device for user authentication connected over Bluetooth Low Energy) that they haven't used on this computer before.">
+      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_ANOTHER_BLE" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a Bluetooth security key (an external physical device for user authentication connected over Bluetooth Low Energy) that they haven't used on this computer before.">
         Add another Bluetooth security key
       </message>
-      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_NFC" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a security key (an external physcial device for user authentication) connected to the computer over Near-Field Communication.">
+      <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_NFC" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a security key (an external physical device for user authentication) connected to the computer over Near-Field Communication.">
         Verify via NFC
       </message>
       <message name="IDS_WEBAUTHN_TRANSPORT_POPUP_INTERNAL" desc="Menu item text. The user selects this to verify their identity on a web site (i.e. sign in) using a hardware-based authentication mechanism that is built in to the computer, such as a fingerprint reader.">
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_BUTTON_LABEL.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_BUTTON_LABEL.png.sha1
new file mode 100644
index 0000000..01a5c61
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOMIZE_BUTTON_LABEL.png.sha1
@@ -0,0 +1 @@
+157e78d4bcc0861f0e72dafbbb4ed64eb312f070
\ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 04265cab..951f0ee1 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3815,10 +3815,6 @@
      flag_descriptions::kEnableZeroStateSuggestionsName,
      flag_descriptions::kEnableZeroStateSuggestionsDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(app_list_features::kEnableZeroStateSuggestions)},
-    {"enable-zero-state-app-reinstall-suggestions",
-     flag_descriptions::kEnableAppReinstallZeroStateName,
-     flag_descriptions::kEnableAppReinstallZeroStateDescription, kOsCrOS,
-     FEATURE_VALUE_TYPE(app_list_features::kEnableAppReinstallZeroState)},
 #endif  // OS_CHROMEOS
 
     {"enable-bloated-renderer-detection",
diff --git a/chrome/browser/android/autofill_assistant/client_android.cc b/chrome/browser/android/autofill_assistant/client_android.cc
index 066fe347..a79a74e 100644
--- a/chrome/browser/android/autofill_assistant/client_android.cc
+++ b/chrome/browser/android/autofill_assistant/client_android.cc
@@ -289,6 +289,6 @@
   ui_controller_android_->Attach(web_contents_, this, controller_.get());
 }
 
-WEB_CONTENTS_USER_DATA_KEY_IMPL(ClientAndroid);
+WEB_CONTENTS_USER_DATA_KEY_IMPL(ClientAndroid)
 
 }  // namespace autofill_assistant.
diff --git a/chrome/browser/android/explore_sites/explore_sites_store_unittest.cc b/chrome/browser/android/explore_sites/explore_sites_store_unittest.cc
index fc23fa2..49494ccb 100644
--- a/chrome/browser/android/explore_sites/explore_sites_store_unittest.cc
+++ b/chrome/browser/android/explore_sites/explore_sites_store_unittest.cc
@@ -32,7 +32,7 @@
         task_runner_handle_(task_runner_) {
     EXPECT_TRUE(temp_directory_.CreateUniqueTempDir());
   }
-  ~ExploreSitesStoreTest() override{};
+  ~ExploreSitesStoreTest() override {}
 
  protected:
   void TearDown() override {
diff --git a/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc b/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc
index 0a47609..a8a4ee8 100644
--- a/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc
+++ b/chrome/browser/android/explore_sites/history_statistics_reporter_unittest.cc
@@ -32,7 +32,7 @@
   HistoryStatisticsReporterTest()
       : task_runner_(new base::TestMockTimeTaskRunner(
             base::TestMockTimeTaskRunner::Type::kBoundToThread)) {}
-  ~HistoryStatisticsReporterTest() override{};
+  ~HistoryStatisticsReporterTest() override {}
 
   void SetUp() override {
     HistoryStatisticsReporter::RegisterPrefs(pref_service_.registry());
diff --git a/chrome/browser/android/explore_sites/image_helper_unittest.cc b/chrome/browser/android/explore_sites/image_helper_unittest.cc
index 76458f291..6b10caa 100644
--- a/chrome/browser/android/explore_sites/image_helper_unittest.cc
+++ b/chrome/browser/android/explore_sites/image_helper_unittest.cc
@@ -51,7 +51,7 @@
       : data_decoder_(connector_factory_.RegisterInstance(
             data_decoder::mojom::kServiceName)) {}
 
-  ~ExploreSitesImageHelperTest() override{};
+  ~ExploreSitesImageHelperTest() override {}
 
   EncodedImageList GetEncodedImageList(int num_icons);
   BitmapCallback StoreBitmap() {
diff --git a/chrome/browser/android/metrics/launch_metrics.cc b/chrome/browser/android/metrics/launch_metrics.cc
index 4bb3c09..9a9f0b18 100644
--- a/chrome/browser/android/metrics/launch_metrics.cc
+++ b/chrome/browser/android/metrics/launch_metrics.cc
@@ -129,4 +129,4 @@
       homepage_url);
 }
 
-};  // namespace metrics
+}  // namespace metrics
diff --git a/chrome/browser/android/signin/signin_manager_android_unittest.cc b/chrome/browser/android/signin/signin_manager_android_unittest.cc
index a0d9ff4..c4c31ee 100644
--- a/chrome/browser/android/signin/signin_manager_android_unittest.cc
+++ b/chrome/browser/android/signin/signin_manager_android_unittest.cc
@@ -54,7 +54,7 @@
  public:
   SigninManagerAndroidTest()
       : profile_manager_(TestingBrowserProcess::GetGlobal()) {}
-  ~SigninManagerAndroidTest() override{};
+  ~SigninManagerAndroidTest() override {}
 
   void SetUp() override {
     ASSERT_TRUE(profile_manager_.SetUp());
diff --git a/chrome/browser/android/tab_state.cc b/chrome/browser/android/tab_state.cc
index 2ed8db2..2f3df18f 100644
--- a/chrome/browser/android/tab_state.cc
+++ b/chrome/browser/android/tab_state.cc
@@ -374,7 +374,7 @@
   return web_contents.release();
 }
 
-};  // anonymous namespace
+}  // anonymous namespace
 
 ScopedJavaLocalRef<jobject> WebContentsState::GetContentsStateAsByteBuffer(
     JNIEnv* env,
diff --git a/chrome/browser/android/vr/arcore_device/arcore_device_unittest.cc b/chrome/browser/android/vr/arcore_device/arcore_device_unittest.cc
index 9e105ed..fe94ede 100644
--- a/chrome/browser/android/vr/arcore_device/arcore_device_unittest.cc
+++ b/chrome/browser/android/vr/arcore_device/arcore_device_unittest.cc
@@ -33,7 +33,7 @@
 
   // TODO(lincolnfrog): verify this gets called on GL thread.
   // TODO(lincolnfrog): test what happens if this returns false.
-  bool Initialize() override { return true; };
+  bool Initialize() override { return true; }
 
   // TODO(lincolnfrog): test verify this somehow.
   GLuint GetCameraTextureId() override { return CAMERA_TEXTURE_ID; }
@@ -75,7 +75,7 @@
 
   uint32_t CreateMailboxTexture(gpu::Mailbox* mailbox) override {
     return TEXTURE_ID;
-  };
+  }
 
   bool IsConnected() override { return true; }
 
@@ -91,16 +91,16 @@
  public:
   StubArCoreInstallUtils() = default;
 
-  bool CanRequestInstallArModule() override { return false; };
-  bool ShouldRequestInstallArModule() override { return false; };
+  bool CanRequestInstallArModule() override { return false; }
+  bool ShouldRequestInstallArModule() override { return false; }
 
   void RequestInstallArModule(int render_process_id,
-                              int render_frame_id) override{};
-  bool ShouldRequestInstallSupportedArCore() override { return false; };
+                              int render_frame_id) override {}
+  bool ShouldRequestInstallSupportedArCore() override { return false; }
   void RequestInstallSupportedArCore(int render_process_id,
-                                     int render_frame_id) override{};
+                                     int render_frame_id) override {}
 
-  bool EnsureLoaded() override { return true; };
+  bool EnsureLoaded() override { return true; }
 
   base::android::ScopedJavaLocalRef<jobject> GetApplicationContext() override {
     JNIEnv* env = base::android::AttachCurrentThread();
diff --git a/chrome/browser/android/webapk/webapk_metrics.h b/chrome/browser/android/webapk/webapk_metrics.h
index 2af4276..3c0fe12 100644
--- a/chrome/browser/android/webapk/webapk_metrics.h
+++ b/chrome/browser/android/webapk/webapk_metrics.h
@@ -32,6 +32,6 @@
 void TrackInstallDuration(base::TimeDelta delta);
 void TrackInstallEvent(InstallEvent event);
 
-};  // namespace webapk
+}  // namespace webapk
 
 #endif  // CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_METRICS_H_
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 8fb31a5..a353a0c 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -5125,11 +5125,12 @@
   return true;
 }
 
-void ChromeContentBrowserClient::RegisterRendererPreferenceWatcherForWorkers(
+void ChromeContentBrowserClient::RegisterRendererPreferenceWatcher(
     content::BrowserContext* browser_context,
     blink::mojom::RendererPreferenceWatcherPtr watcher) {
   Profile* profile = Profile::FromBrowserContext(browser_context);
-  PrefWatcher::Get(profile)->RegisterWatcherForWorkers(std::move(watcher));
+  PrefWatcher::Get(profile)->RegisterRendererPreferenceWatcher(
+      std::move(watcher));
 }
 
 // Static; handles rewriting Web UI URLs.
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index 7d9f4f7..a2d701f 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -534,7 +534,7 @@
       content::PictureInPictureWindowController* controller) override;
   bool IsSafeRedirectTarget(const GURL& url,
                             content::ResourceContext* context) override;
-  void RegisterRendererPreferenceWatcherForWorkers(
+  void RegisterRendererPreferenceWatcher(
       content::BrowserContext* browser_context,
       blink::mojom::RendererPreferenceWatcherPtr watcher) override;
   base::Optional<std::string> GetOriginPolicyErrorPage(
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.h b/chrome/browser/chromeos/crostini/crostini_manager.h
index d319fca..29ab73c 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.h
+++ b/chrome/browser/chromeos/crostini/crostini_manager.h
@@ -33,6 +33,11 @@
 namespace crostini {
 
 // Result types for CrostiniManager::StartTerminaVmCallback etc.
+
+// WARNING: Do not remove or re-order these values, as they are used in user
+// visible error messages and logs. New entries should only be added to the end.
+// This message was added during development of M74, error codes from prior
+// versions may differ from the numbering here.
 enum class CrostiniResult {
   SUCCESS,
   DBUS_ERROR,
diff --git a/chrome/browser/chromeos/extensions/file_manager/event_router.cc b/chrome/browser/chromeos/extensions/file_manager/event_router.cc
index 3caf8e2..8a339bda 100644
--- a/chrome/browser/chromeos/extensions/file_manager/event_router.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/event_router.cc
@@ -1092,6 +1092,7 @@
     file_manager_private::CrostiniSharedPathsChangedEvent& event,
     const std::string& extension_id,
     const std::string& mount_name,
+    const std::string& file_system_name,
     const std::string& full_path) {
   event.event_type =
       file_manager_private::CROSTINI_SHARED_PATHS_CHANGED_EVENT_TYPE_UNSHARE;
@@ -1101,7 +1102,7 @@
       storage::GetExternalFileSystemRootURIString(
           extensions::Extension::GetBaseURLFromExtensionId(extension_id),
           mount_name));
-  entry.additional_properties.SetString("fileSystemName", mount_name);
+  entry.additional_properties.SetString("fileSystemName", file_system_name);
   entry.additional_properties.SetString("fileFullPath", full_path);
   entry.additional_properties.SetBoolean("fileIsDirectory", true);
   event.entries.emplace_back(std::move(entry));
@@ -1109,8 +1110,10 @@
 
 void EventRouter::OnUnshare(const base::FilePath& path) {
   std::string mount_name;
+  std::string file_system_name;
   std::string full_path;
-  if (!util::ExtractMountNameAndFullPath(path, &mount_name, &full_path))
+  if (!util::ExtractMountNameFileSystemNameFullPath(
+          path, &mount_name, &file_system_name, &full_path))
     return;
 
   for (const auto& extension_id : GetEventListenerExtensionIds(
@@ -1118,7 +1121,7 @@
            file_manager_private::OnCrostiniSharedPathsChanged::kEventName)) {
     file_manager_private::CrostiniSharedPathsChangedEvent event;
     PopulateCrostiniSharedPathsChangedEvent(event, extension_id, mount_name,
-                                            full_path);
+                                            file_system_name, full_path);
     DispatchEventToExtension(
         profile_, extension_id,
         extensions::events::
diff --git a/chrome/browser/chromeos/extensions/file_manager/event_router.h b/chrome/browser/chromeos/extensions/file_manager/event_router.h
index debc45c..bb78822 100644
--- a/chrome/browser/chromeos/extensions/file_manager/event_router.h
+++ b/chrome/browser/chromeos/extensions/file_manager/event_router.h
@@ -209,6 +209,7 @@
           event,
       const std::string& extension_id,
       const std::string& mount_name,
+      const std::string& file_system_name,
       const std::string& full_path);
 
   base::Time last_copy_progress_event_;
diff --git a/chrome/browser/chromeos/extensions/file_manager/event_router_unittest.cc b/chrome/browser/chromeos/extensions/file_manager/event_router_unittest.cc
index 72b285f..2e3b5f67 100644
--- a/chrome/browser/chromeos/extensions/file_manager/event_router_unittest.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/event_router_unittest.cc
@@ -11,7 +11,7 @@
 TEST(EventRouterTest, PopulateCrostiniSharedPathsChangedEvent) {
   extensions::api::file_manager_private::CrostiniSharedPathsChangedEvent event;
   EventRouter::PopulateCrostiniSharedPathsChangedEvent(
-      event, "extensionid", "mountname", "/full/path");
+      event, "extensionid", "mountname", "filesystemname", "/full/path");
 
   EXPECT_EQ(event.event_type,
             extensions::api::file_manager_private::
@@ -21,7 +21,7 @@
   props.SetString(
       "fileSystemRoot",
       "filesystem:chrome-extension://extensionid/external/mountname/");
-  props.SetString("fileSystemName", "mountname");
+  props.SetString("fileSystemName", "filesystemname");
   props.SetString("fileFullPath", "/full/path");
   props.SetBoolean("fileIsDirectory", true);
   EXPECT_EQ(event.entries[0].additional_properties, props);
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
index 685b1e3..00a5cfc 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
@@ -747,9 +747,10 @@
   auto entries = std::make_unique<base::ListValue>();
   for (const base::FilePath& path : shared_paths) {
     std::string mount_name;
+    std::string file_system_name;
     std::string full_path;
-    if (!file_manager::util::ExtractMountNameAndFullPath(path, &mount_name,
-                                                         &full_path)) {
+    if (!file_manager::util::ExtractMountNameFileSystemNameFullPath(
+            path, &mount_name, &file_system_name, &full_path)) {
       LOG(ERROR) << "Error extracting mount name and path from "
                  << path.value();
       continue;
@@ -760,7 +761,7 @@
         storage::GetExternalFileSystemRootURIString(
             extensions::Extension::GetBaseURLFromExtensionId(extension_id()),
             mount_name));
-    entry->SetString("fileSystemName", mount_name);
+    entry->SetString("fileSystemName", file_system_name);
     entry->SetString("fileFullPath", full_path);
     // All shared paths should be directories.  Even if this is not true,
     // it is fine for foreground/js/crostini.js class to think so. We
diff --git a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
index bb7b6c9..dd46548 100644
--- a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
+++ b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
@@ -18,6 +18,7 @@
 #include "chrome/browser/chromeos/file_system_provider/request_manager.h"
 #include "chrome/browser/chromeos/file_system_provider/request_value.h"
 #include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h"
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "ui/message_center/public/cpp/notification.h"
@@ -136,11 +137,15 @@
 
     display_service_ = std::make_unique<NotificationDisplayServiceTester>(
         browser()->profile());
+
+    user_manager_.AddUser(AccountId::FromUserEmailGaiaId(
+        browser()->profile()->GetProfileUserName(), "12345"));
   }
 
   std::unique_ptr<NotificationDisplayServiceTester> display_service_;
 
  private:
+  chromeos::FakeChromeUserManager user_manager_;
   DISALLOW_COPY_AND_ASSIGN(FileSystemProviderApiTest);
 };
 
diff --git a/chrome/browser/chromeos/file_manager/file_browser_handlers.cc b/chrome/browser/chromeos/file_manager/file_browser_handlers.cc
index a58eeb24a..5735a7e0 100644
--- a/chrome/browser/chromeos/file_manager/file_browser_handlers.cc
+++ b/chrome/browser/chromeos/file_manager/file_browser_handlers.cc
@@ -416,35 +416,6 @@
   }
 }
 
-// Returns true if |extension_id| and |action_id| indicate that the file
-// currently being handled should be opened with the browser. This function
-// is used to handle certain action IDs of the file manager.
-bool ShouldBeOpenedWithBrowser(const std::string& extension_id,
-                               const std::string& action_id) {
-  return (extension_id == kFileManagerAppId &&
-          (action_id == "view-pdf" ||
-           action_id == "view-swf" ||
-           action_id == "view-in-browser" ||
-           action_id == "open-hosted-generic" ||
-           action_id == "open-hosted-gdoc" ||
-           action_id == "open-hosted-gsheet" ||
-           action_id == "open-hosted-gslides"));
-}
-
-// Opens the files specified by |file_urls| with the browser for |profile|.
-// Returns true on success. It's a failure if no files are opened.
-bool OpenFilesWithBrowser(Profile* profile,
-                          const std::vector<FileSystemURL>& file_urls) {
-  int num_opened = 0;
-  for (size_t i = 0; i < file_urls.size(); ++i) {
-    const FileSystemURL& file_url = file_urls[i];
-    if (chromeos::FileSystemBackend::CanHandleURL(file_url)) {
-      num_opened += util::OpenFileWithBrowser(profile, file_url) ? 1 : 0;
-    }
-  }
-  return num_opened > 0;
-}
-
 }  // namespace
 
 bool ExecuteFileBrowserHandler(Profile* profile,
@@ -456,16 +427,6 @@
   if (!FindFileBrowserHandlerForActionId(extension, action_id))
     return false;
 
-  // Some action IDs of the file manager's file browser handlers require the
-  // files to be directly opened with the browser.
-  if (ShouldBeOpenedWithBrowser(extension->id(), action_id)) {
-    const bool result = OpenFilesWithBrowser(profile, file_urls);
-    if (result && !done.is_null())
-      std::move(done).Run(
-          extensions::api::file_manager_private::TASK_RESULT_OPENED);
-    return result;
-  }
-
   // The executor object will be self deleted on completion.
   (new FileBrowserHandlerExecutor(profile, extension, action_id))
       ->Execute(file_urls, std::move(done));
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
index 2d554ba..90af1b0 100644
--- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
+++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -60,6 +60,16 @@
     return *this;
   }
 
+  TestCase& EnableDocumentsProvider() {
+    enable_documents_provider.emplace(true);
+    return *this;
+  }
+
+  TestCase& DisableDocumentsProvider() {
+    enable_documents_provider.emplace(false);
+    return *this;
+  }
+
   TestCase& Offline() {
     offline = true;
     return *this;
@@ -108,6 +118,9 @@
     if (test.enable_myfiles_volume.value_or(false))
       name.append("_MyFilesVolume");
 
+    if (test.enable_documents_provider.value_or(false))
+      name.append("_DocumentsProvider");
+
     return name;
   }
 
@@ -116,6 +129,7 @@
   bool tablet_mode = false;
   base::Optional<bool> enable_drivefs;
   base::Optional<bool> enable_myfiles_volume;
+  base::Optional<bool> enable_documents_provider;
   bool with_browser = false;
   bool needs_zip = false;
   bool offline = false;
@@ -171,6 +185,11 @@
         FileManagerBrowserTestBase::GetEnableDriveFs());
   }
 
+  bool GetEnableDocumentsProvider() const override {
+    return GetParam().enable_documents_provider.value_or(
+        FileManagerBrowserTestBase::GetEnableDocumentsProvider());
+  }
+
   bool GetRequiresStartupBrowser() const override {
     return GetParam().with_browser;
   }
@@ -481,32 +500,34 @@
 WRAPPED_INSTANTIATE_TEST_SUITE_P(
     QuickView, /* quick_view.js */
     FilesAppBrowserTest,
-    ::testing::Values(TestCase("openQuickView"),
-                      TestCase("openQuickView").InGuestMode(),
-                      TestCase("openQuickView").TabletMode(),
-                      TestCase("openQuickViewAudio"),
-                      TestCase("openQuickViewImage"),
-                      TestCase("openQuickViewVideo"),
+    ::testing::Values(
+        TestCase("openQuickView"),
+        TestCase("openQuickView").InGuestMode(),
+        TestCase("openQuickView").TabletMode(),
+        TestCase("openQuickViewAudio"),
+        TestCase("openQuickViewImage"),
+        TestCase("openQuickViewVideo"),
 // QuickView PDF test fails on MSAN, crbug.com/768070
 #if !defined(MEMORY_SANITIZER)
-                      TestCase("openQuickViewPdf"),
+        TestCase("openQuickViewPdf"),
 #endif
-                      TestCase("openQuickViewKeyboardUpDownChangesView"),
-                      TestCase("openQuickViewKeyboardLeftRightChangesView"),
-                      TestCase("openQuickViewScrollText"),
-                      TestCase("openQuickViewScrollHtml"),
-                      TestCase("openQuickViewBackgroundColorText"),
-                      TestCase("openQuickViewBackgroundColorHtml"),
-                      TestCase("openQuickViewDrive").DisableDriveFs(),
-                      TestCase("openQuickViewDrive").EnableDriveFs(),
-                      TestCase("openQuickViewAndroid"),
-                      TestCase("openQuickViewCrostini"),
-                      TestCase("openQuickViewUsb"),
-                      TestCase("openQuickViewRemovablePartitions"),
-                      TestCase("openQuickViewMtp"),
-                      TestCase("pressEnterOnInfoBoxToOpenClose"),
-                      TestCase("closeQuickView"),
-                      TestCase("cantOpenQuickViewWithMultipleFiles")));
+        TestCase("openQuickViewKeyboardUpDownChangesView"),
+        TestCase("openQuickViewKeyboardLeftRightChangesView"),
+        TestCase("openQuickViewScrollText"),
+        TestCase("openQuickViewScrollHtml"),
+        TestCase("openQuickViewBackgroundColorText"),
+        TestCase("openQuickViewBackgroundColorHtml"),
+        TestCase("openQuickViewDrive").DisableDriveFs(),
+        TestCase("openQuickViewDrive").EnableDriveFs(),
+        TestCase("openQuickViewAndroid"),
+        TestCase("openQuickViewDocumentsProvider").EnableDocumentsProvider(),
+        TestCase("openQuickViewCrostini"),
+        TestCase("openQuickViewUsb"),
+        TestCase("openQuickViewRemovablePartitions"),
+        TestCase("openQuickViewMtp"),
+        TestCase("pressEnterOnInfoBoxToOpenClose"),
+        TestCase("closeQuickView"),
+        TestCase("cantOpenQuickViewWithMultipleFiles")));
 
 WRAPPED_INSTANTIATE_TEST_SUITE_P(
     DirectoryTreeContextMenu, /* directory_tree_context_menu.js */
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc
index 1b79531..c826348 100644
--- a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc
+++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.cc
@@ -28,6 +28,7 @@
 #include "base/threading/thread_restrictions.h"
 #include "base/time/time.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h"
 #include "chrome/browser/chromeos/crostini/crostini_manager.h"
 #include "chrome/browser/chromeos/crostini/crostini_pref_names.h"
 #include "chrome/browser/chromeos/crostini/crostini_util.h"
@@ -55,6 +56,12 @@
 #include "chromeos/dbus/concierge/service.pb.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_cros_disks_client.h"
+#include "components/arc/arc_bridge_service.h"
+#include "components/arc/arc_features.h"
+#include "components/arc/arc_service_manager.h"
+#include "components/arc/arc_util.h"
+#include "components/arc/test/connection_holder_util.h"
+#include "components/arc/test/fake_file_system_instance.h"
 #include "components/drive/chromeos/file_system_interface.h"
 #include "components/drive/drive_pref_names.h"
 #include "components/drive/service/fake_drive_service.h"
@@ -153,7 +160,8 @@
     DRIVE_VOLUME,
     CROSTINI_VOLUME,
     USB_VOLUME,
-    ANDROID_FILES_VOLUME
+    ANDROID_FILES_VOLUME,
+    DOCUMENTS_PROVIDER_VOLUME
   };
 
   // Represents the different types of entries (e.g. file, folder).
@@ -199,6 +207,8 @@
       *volume = USB_VOLUME;
     else if (value == "android_files")
       *volume = ANDROID_FILES_VOLUME;
+    else if (value == "documents_provider")
+      *volume = DOCUMENTS_PROVIDER_VOLUME;
     else
       return false;
     return true;
@@ -1263,6 +1273,64 @@
   DISALLOW_COPY_AND_ASSIGN(DriveFsTestVolume);
 };
 
+// DocumentsProviderTestVolume: test volume for Android DocumentsProvider.
+class DocumentsProviderTestVolume : public TestVolume {
+ public:
+  DocumentsProviderTestVolume(
+      arc::FakeFileSystemInstance* const file_system_instance,
+      const std::string& authority,
+      const std::string& root_document_id)
+      : TestVolume("DocumentsProvider"),
+        file_system_instance_(file_system_instance),
+        authority_(authority),
+        root_document_id_(root_document_id) {}
+  ~DocumentsProviderTestVolume() override = default;
+
+  virtual void CreateEntry(const AddEntriesMessage::TestEntryInfo& entry) {
+    // Register a document to the fake FileSystemInstance.
+    arc::FakeFileSystemInstance::Document document(
+        authority_, entry.name_text, root_document_id_, entry.name_text,
+        GetMimeType(entry), GetFileSize(entry),
+        entry.last_modified_time.ToJavaTime());
+    file_system_instance_->AddDocument(document);
+  }
+
+  bool Mount(Profile* profile) {
+    // Register a root document of this volume.
+    arc::FakeFileSystemInstance::Document document(
+        authority_, root_document_id_, "", "", arc::kAndroidDirectoryMimeType,
+        0, 0);
+    file_system_instance_->AddDocument(document);
+
+    // Tell VolumeManager that a new DocumentsProvider volume is added.
+    VolumeManager::Get(profile)->OnDocumentsProviderRootAdded(
+        authority_, root_document_id_, root_document_id_, name(), "", GURL());
+    return true;
+  }
+
+ private:
+  arc::FakeFileSystemInstance* const file_system_instance_;
+  std::string authority_;
+  std::string root_document_id_;
+
+  int64_t GetFileSize(const AddEntriesMessage::TestEntryInfo& entry) {
+    if (entry.type != AddEntriesMessage::FILE)
+      return 0;
+
+    int64_t file_size = 0;
+    const base::FilePath source_path =
+        TestVolume::GetTestDataFilePath(entry.source_file_name);
+    bool success = base::GetFileSize(source_path, &file_size);
+    return success ? file_size : 0;
+  }
+
+  std::string GetMimeType(const AddEntriesMessage::TestEntryInfo& entry) {
+    return entry.type == AddEntriesMessage::FILE
+               ? entry.mime_type
+               : arc::kAndroidDirectoryMimeType;
+  }
+};
+
 FileManagerBrowserTestBase::FileManagerBrowserTestBase() = default;
 
 FileManagerBrowserTestBase::~FileManagerBrowserTestBase() = default;
@@ -1329,6 +1397,15 @@
     disabled_features.emplace_back(chromeos::features::kMyFilesVolume);
   }
 
+  if (IsDocumentsProviderTest()) {
+    arc::SetArcAvailableCommandLineForTesting(command_line);
+    enabled_features.emplace_back(
+        arc::kEnableDocumentsProviderInFilesAppFeature);
+  } else {
+    disabled_features.emplace_back(
+        arc::kEnableDocumentsProviderInFilesAppFeature);
+  }
+
   feature_list_.InitWithFeatures(enabled_features, disabled_features);
 
   extensions::ExtensionApiTest::SetUpCommandLine(command_line);
@@ -1406,9 +1483,35 @@
             base::BindRepeating(&FileManagerBrowserTestBase::MaybeMountCrostini,
                                 base::Unretained(this)));
 
-    android_files_volume_ = std::make_unique<AndroidFilesTestVolume>();
-    if (!DoesTestStartWithNoVolumesMounted()) {
-      android_files_volume_->Mount(profile());
+    if (arc::IsArcAvailable()) {
+      // When ARC is marked as available, we create fake FileSystemInstance and
+      // register it so that ARC-related services can work without real ARC
+      // container.
+      arc_file_system_instance_ =
+          std::make_unique<arc::FakeFileSystemInstance>();
+      arc::ArcServiceManager::Get()
+          ->arc_bridge_service()
+          ->file_system()
+          ->SetInstance(arc_file_system_instance_.get());
+      arc::WaitForInstanceReady(
+          arc::ArcServiceManager::Get()->arc_bridge_service()->file_system());
+      ASSERT_TRUE(arc_file_system_instance_->InitCalled());
+
+      // Though we can have multiple DocumentsProvider volumes, only one volume
+      // is created and mounted for now.
+      documents_provider_volume_ =
+          std::make_unique<DocumentsProviderTestVolume>(
+              arc_file_system_instance_.get(), "com.example.documents", "root");
+      if (!DoesTestStartWithNoVolumesMounted()) {
+        documents_provider_volume_->Mount(profile());
+      }
+    } else {
+      // When ARC is not available, "Android Files" will not be mounted.
+      // We need to mount testing volume here.
+      android_files_volume_ = std::make_unique<AndroidFilesTestVolume>();
+      if (!DoesTestStartWithNoVolumesMounted()) {
+        android_files_volume_->Mount(profile());
+      }
     }
   }
 
@@ -1456,6 +1559,10 @@
   return true;
 }
 
+bool FileManagerBrowserTestBase::GetEnableDocumentsProvider() const {
+  return false;
+}
+
 bool FileManagerBrowserTestBase::GetRequiresStartupBrowser() const {
   return false;
 }
@@ -1662,6 +1769,13 @@
             LOG(FATAL) << "Add entry: but no Android files volume.";
           }
           break;
+        case AddEntriesMessage::DOCUMENTS_PROVIDER_VOLUME:
+          if (documents_provider_volume_) {
+            documents_provider_volume_->CreateEntry(*message.entries[i]);
+          } else {
+            LOG(FATAL) << "Add entry: but no DocumentsProvider volume.";
+          }
+          break;
       }
     }
 
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h
index 78a0cf8..4e3523b2 100644
--- a/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h
+++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h
@@ -19,6 +19,10 @@
 class NotificationDisplayServiceTester;
 class SelectFileDialogExtensionTestFactory;
 
+namespace arc {
+class FakeFileSystemInstance;
+}  // namespace arc
+
 namespace file_manager {
 
 enum GuestMode { NOT_IN_GUEST_MODE, IN_GUEST_MODE, IN_INCOGNITO };
@@ -29,6 +33,7 @@
 class CrostiniTestVolume;
 class AndroidFilesTestVolume;
 class RemovableTestVolume;
+class DocumentsProviderTestVolume;
 
 class FileManagerBrowserTestBase : public extensions::ExtensionApiTest {
  protected:
@@ -53,6 +58,7 @@
   virtual bool GetTabletMode() const;
   virtual bool GetEnableDriveFs() const;
   virtual bool GetEnableMyFilesVolume() const;
+  virtual bool GetEnableDocumentsProvider() const;
   virtual bool GetRequiresStartupBrowser() const;
   virtual bool GetNeedsZipSupport() const;
   virtual bool GetIsOffline() const;
@@ -77,6 +83,9 @@
   // Returns true if the test requires DriveFS.
   bool IsDriveFsTest() const { return GetEnableDriveFs(); }
 
+  // Returns true if the test requires Android documents providers.
+  bool IsDocumentsProviderTest() const { return GetEnableDocumentsProvider(); }
+
   // Returns true if the test MyFilesVolume feature is enabled.
   bool IsMyFilesVolume() const { return GetEnableMyFilesVolume(); }
 
@@ -138,6 +147,7 @@
   std::unique_ptr<FakeTestVolume> mtp_volume_;
   std::unique_ptr<RemovableTestVolume> partition_1_;
   std::unique_ptr<RemovableTestVolume> partition_2_;
+  std::unique_ptr<DocumentsProviderTestVolume> documents_provider_volume_;
 
   drive::DriveIntegrationServiceFactory::FactoryCallback
       create_drive_integration_service_;
@@ -145,6 +155,7 @@
       service_factory_for_test_;
 
   std::unique_ptr<NotificationDisplayServiceTester> display_service_;
+  std::unique_ptr<arc::FakeFileSystemInstance> arc_file_system_instance_;
 
   // Not owned.
   SelectFileDialogExtensionTestFactory* select_factory_;
diff --git a/chrome/browser/chromeos/file_manager/file_tasks.cc b/chrome/browser/chromeos/file_manager/file_tasks.cc
index e27076e4..3f2bd6b9 100644
--- a/chrome/browser/chromeos/file_manager/file_tasks.cc
+++ b/chrome/browser/chromeos/file_manager/file_tasks.cc
@@ -23,6 +23,8 @@
 #include "chrome/browser/chromeos/file_manager/file_browser_handlers.h"
 #include "chrome/browser/chromeos/file_manager/fileapi_util.h"
 #include "chrome/browser/chromeos/file_manager/open_util.h"
+#include "chrome/browser/chromeos/file_manager/open_with_browser.h"
+#include "chrome/browser/chromeos/fileapi/file_system_backend.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/extensions/application_launch.h"
@@ -117,10 +119,14 @@
 
 // Returns true if the given task is a handler by built-in apps like the Files
 // app itself or QuickOffice etc. They are used as the initial default app.
-bool IsFallbackFileHandler(const file_tasks::TaskDescriptor& task) {
-  if (task.task_type != file_tasks::TASK_TYPE_FILE_BROWSER_HANDLER &&
-      task.task_type != file_tasks::TASK_TYPE_FILE_HANDLER)
+bool IsFallbackFileHandler(const FullTaskDescriptor& task) {
+  if ((task.task_descriptor().task_type !=
+           file_tasks::TASK_TYPE_FILE_BROWSER_HANDLER &&
+       task.task_descriptor().task_type !=
+           file_tasks::TASK_TYPE_FILE_HANDLER) ||
+      task.is_generic_file_handler()) {
     return false;
+  }
 
   const char* const kBuiltInApps[] = {
       kFileManagerAppId,
@@ -133,8 +139,9 @@
       extension_misc::kQuickOfficeExtensionId};
 
   for (size_t i = 0; i < base::size(kBuiltInApps); ++i) {
-    if (task.app_id == kBuiltInApps[i])
+    if (task.task_descriptor().app_id == kBuiltInApps[i]) {
       return true;
+    }
   }
   return false;
 }
@@ -179,6 +186,34 @@
   std::move(callback).Run(std::move(result_list));
 }
 
+// Returns true if |extension_id| and |action_id| indicate that the file
+// currently being handled should be opened with the browser. This function
+// is used to handle certain action IDs of the file manager.
+bool ShouldBeOpenedWithBrowser(const std::string& extension_id,
+                               const std::string& action_id) {
+  return extension_id == kFileManagerAppId &&
+         (action_id == "view-pdf" || action_id == "view-swf" ||
+          action_id == "view-in-browser" ||
+          action_id == "open-hosted-generic" ||
+          action_id == "open-hosted-gdoc" ||
+          action_id == "open-hosted-gsheet" ||
+          action_id == "open-hosted-gslides");
+}
+
+// Opens the files specified by |file_urls| with the browser for |profile|.
+// Returns true on success. It's a failure if no files are opened.
+bool OpenFilesWithBrowser(Profile* profile,
+                          const std::vector<FileSystemURL>& file_urls) {
+  int num_opened = 0;
+  for (size_t i = 0; i < file_urls.size(); ++i) {
+    const FileSystemURL& file_url = file_urls[i];
+    if (chromeos::FileSystemBackend::CanHandleURL(file_url)) {
+      num_opened += util::OpenFileWithBrowser(profile, file_url) ? 1 : 0;
+    }
+  }
+  return num_opened > 0;
+}
+
 }  // namespace
 
 FullTaskDescriptor::FullTaskDescriptor(const TaskDescriptor& task_descriptor,
@@ -336,6 +371,17 @@
     return true;
   }
 
+  // Some action IDs of the file manager's file browser handlers require the
+  // files to be directly opened with the browser.
+  if (ShouldBeOpenedWithBrowser(task.app_id, task.action_id)) {
+    const bool result = OpenFilesWithBrowser(profile, file_urls);
+    if (result && done) {
+      std::move(done).Run(
+          extensions::api::file_manager_private::TASK_RESULT_OPENED);
+    }
+    return result;
+  }
+
   // Get the extension.
   const Extension* extension = extensions::ExtensionRegistry::Get(
       profile)->enabled_extensions().GetByID(task.app_id);
@@ -581,10 +627,10 @@
   // No default tasks found. If there is any fallback file browser handler,
   // make it as default task, so it's selected by default.
   for (size_t i = 0; i < tasks->size(); ++i) {
-    FullTaskDescriptor* task = &tasks->at(i);
-    DCHECK(!task->is_default());
-    if (IsFallbackFileHandler(task->task_descriptor())) {
-      task->set_is_default(true);
+    FullTaskDescriptor& task = (*tasks)[i];
+    DCHECK(!task.is_default());
+    if (IsFallbackFileHandler(task)) {
+      task.set_is_default(true);
       return;
     }
   }
diff --git a/chrome/browser/chromeos/file_manager/file_tasks_browsertest.cc b/chrome/browser/chromeos/file_manager/file_tasks_browsertest.cc
index 19bc591..441fc38c 100644
--- a/chrome/browser/chromeos/file_manager/file_tasks_browsertest.cc
+++ b/chrome/browser/chromeos/file_manager/file_tasks_browsertest.cc
@@ -90,17 +90,20 @@
          std::unique_ptr<std::vector<FullTaskDescriptor>> result) {
         ASSERT_TRUE(result) << file_extension;
 
-        // There can be multiple handlers. The one at index 0 will be picked by
-        // ChooseAndSetDefaultTask() since prefs should be empty in the test.
-        ASSERT_LE(1u, result->size()) << file_extension;
+        auto default_task =
+            std::find_if(result->begin(), result->end(),
+                         [](const auto& task) { return task.is_default(); });
 
-        EXPECT_EQ(expected_app_id, result->at(0).task_descriptor().app_id)
+        ASSERT_TRUE(default_task != result->end()) << file_extension;
+
+        EXPECT_EQ(expected_app_id, default_task->task_descriptor().app_id)
             << " for extension: " << file_extension;
 
-        // Verify expected behavior of ChooseAndSetDefaultTask().
-        EXPECT_TRUE(result->at(0).is_default()) << file_extension;
-        for (size_t i = 1; i < result->size(); ++i)
-          EXPECT_FALSE(result->at(i).is_default()) << file_extension;
+        // Verify no other task is set as default.
+        EXPECT_EQ(1u, std::count_if(
+                          result->begin(), result->end(),
+                          [](const auto& task) { return task.is_default(); }))
+            << file_extension;
 
         if (--*remaining == 0)
           quit.Run();
diff --git a/chrome/browser/chromeos/file_manager/open_util.cc b/chrome/browser/chromeos/file_manager/open_util.cc
index 2860467..5853c0d2 100644
--- a/chrome/browser/chromeos/file_manager/open_util.cc
+++ b/chrome/browser/chromeos/file_manager/open_util.cc
@@ -73,9 +73,8 @@
     return;
   base::RecordAction(base::UserMetricsAction("ShowFileBrowserFullTab"));
 
-  file_tasks::TaskDescriptor task(kFileManagerAppId,
-                                  file_tasks::TASK_TYPE_FILE_BROWSER_HANDLER,
-                                  action_id);
+  file_tasks::TaskDescriptor task(
+      kFileManagerAppId, file_tasks::TASK_TYPE_FILE_HANDLER, action_id);
   ExecuteFileTaskForUrl(profile, task, url);
 }
 
diff --git a/chrome/browser/chromeos/file_manager/path_util.cc b/chrome/browser/chromeos/file_manager/path_util.cc
index 575bca4..c87ae88 100644
--- a/chrome/browser/chromeos/file_manager/path_util.cc
+++ b/chrome/browser/chromeos/file_manager/path_util.cc
@@ -400,10 +400,25 @@
     return true;
   }
 
-  // Convert paths under /special.
-  GURL external_file_url =
-      chromeos::CreateExternalFileURLFromPath(primary_profile, path,
-                                              /* allow_drivefs = */ true);
+  bool force_external = false;
+  // Force external URL for DriveFS and Crostini.
+  drive::DriveIntegrationService* integration_service = nullptr;
+  if (base::FeatureList::IsEnabled(chromeos::features::kDriveFs)) {
+    integration_service =
+        drive::DriveIntegrationServiceFactory::GetForProfile(primary_profile);
+  }
+  if ((integration_service &&
+       integration_service->GetMountPointPath().AppendRelativePath(
+           path, &relative_path)) ||
+      GetCrostiniMountDirectory(primary_profile)
+          .AppendRelativePath(path, &relative_path)) {
+    force_external = true;
+  }
+
+  // Convert paths under /special or other paths forced to use external URL.
+  GURL external_file_url = chromeos::CreateExternalFileURLFromPath(
+      primary_profile, path, force_external);
+
   if (!external_file_url.is_empty()) {
     *arc_url_out = arc::EncodeToChromeContentProviderUrl(external_file_url);
     return true;
@@ -572,9 +587,10 @@
   return result;
 }
 
-bool ExtractMountNameAndFullPath(const base::FilePath& absolute_path,
-                                 std::string* mount_name,
-                                 std::string* full_path) {
+bool ExtractMountNameFileSystemNameFullPath(const base::FilePath& absolute_path,
+                                            std::string* mount_name,
+                                            std::string* file_system_name,
+                                            std::string* full_path) {
   DCHECK(absolute_path.IsAbsolute());
   DCHECK(mount_name);
   DCHECK(full_path);
@@ -583,14 +599,30 @@
   base::FilePath virtual_path;
   if (!mount_points->GetVirtualPath(absolute_path, &virtual_path))
     return false;
+  // |virtual_path| format is: <mount_name>/<full_path>, and
+  // |file_system_name| == |mount_name|, except for 'removable' and 'archive',
+  // |mount_name| is the first two segments, |file_system_name| is the second.
   const std::string& value = virtual_path.value();
-  size_t pos = value.find(base::FilePath::kSeparators[0]);
-  *mount_name = value.substr(0, pos);
+  size_t fs_start = 0;
+  size_t slash_pos = value.find(base::FilePath::kSeparators[0]);
+  *mount_name = *file_system_name = value.substr(0, slash_pos);
+  if (*mount_name == chromeos::kSystemMountNameRemovable ||
+      *mount_name == chromeos::kSystemMountNameArchive) {
+    if (slash_pos == std::string::npos) {
+      return false;
+    }
+    fs_start = slash_pos + 1;
+    slash_pos = value.find(base::FilePath::kSeparators[0], fs_start);
+    *mount_name = value.substr(0, slash_pos);
+  }
+
   // Set full_path to '/' if |absolute_path| is a root.
-  if (pos == std::string::npos) {
+  if (slash_pos == std::string::npos) {
+    *file_system_name = value.substr(fs_start);
     *full_path = "/";
   } else {
-    *full_path = value.substr(pos);
+    *file_system_name = value.substr(fs_start, slash_pos - fs_start);
+    *full_path = value.substr(slash_pos);
   }
   return true;
 }
diff --git a/chrome/browser/chromeos/file_manager/path_util.h b/chrome/browser/chromeos/file_manager/path_util.h
index 89067af6..c57865b 100644
--- a/chrome/browser/chromeos/file_manager/path_util.h
+++ b/chrome/browser/chromeos/file_manager/path_util.h
@@ -123,10 +123,12 @@
 std::string GetPathDisplayTextForSettings(Profile* profile,
                                           const std::string& path);
 
-// Extracts |mount_name| and |full_path| from given |absolute_path|.
-bool ExtractMountNameAndFullPath(const base::FilePath& absolute_path,
-                                 std::string* mount_name,
-                                 std::string* full_path);
+// Extracts |mount_name|, |file_system_name|, and |full_path| from given
+// |absolute_path|.
+bool ExtractMountNameFileSystemNameFullPath(const base::FilePath& absolute_path,
+                                            std::string* mount_name,
+                                            std::string* file_system_name,
+                                            std::string* full_path);
 }  // namespace util
 }  // namespace file_manager
 
diff --git a/chrome/browser/chromeos/file_manager/path_util_unittest.cc b/chrome/browser/chromeos/file_manager/path_util_unittest.cc
index d2863bce..bd9595c 100644
--- a/chrome/browser/chromeos/file_manager/path_util_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/path_util_unittest.cc
@@ -586,31 +586,72 @@
   }
 }
 
-TEST_F(FileManagerPathUtilTest, ExtractMountNameAndFullPath) {
+TEST_F(FileManagerPathUtilTest, ExtractMountNameFileSystemNameFullPath) {
   content::TestServiceManagerContext service_manager_context;
   storage::ExternalMountPoints* mount_points =
       storage::ExternalMountPoints::GetSystemInstance();
   std::string downloads_mount_name = GetDownloadsMountPointName(profile_.get());
-  base::FilePath downloads_path = GetDownloadsFolderForProfile(profile_.get());
+  base::FilePath downloads = GetDownloadsFolderForProfile(profile_.get());
+  mount_points->RegisterFileSystem(downloads_mount_name,
+                                   storage::kFileSystemTypeNativeLocal,
+                                   storage::FileSystemMountOption(), downloads);
+  base::FilePath removable = base::FilePath(kRemovableMediaPath);
   mount_points->RegisterFileSystem(
-      downloads_mount_name, storage::kFileSystemTypeNativeLocal,
-      storage::FileSystemMountOption(), downloads_path);
-  std::string relative_path = "folder/in/downloads";
+      chromeos::kSystemMountNameRemovable, storage::kFileSystemTypeNativeLocal,
+      storage::FileSystemMountOption(), base::FilePath(kRemovableMediaPath));
+  std::string relative_path_1 = "foo";
+  std::string relative_path_2 = "foo/bar";
   std::string mount_name;
+  std::string file_system_name;
   std::string full_path;
 
-  EXPECT_TRUE(ExtractMountNameAndFullPath(downloads_path.Append(relative_path),
-                                          &mount_name, &full_path));
+  // <Downloads>/
+  EXPECT_TRUE(ExtractMountNameFileSystemNameFullPath(
+      downloads, &mount_name, &file_system_name, &full_path));
   EXPECT_EQ(mount_name, downloads_mount_name);
-  EXPECT_EQ(full_path, "/" + relative_path);
-
-  EXPECT_TRUE(
-      ExtractMountNameAndFullPath(downloads_path, &mount_name, &full_path));
-  EXPECT_EQ(mount_name, downloads_mount_name);
+  EXPECT_EQ(file_system_name, downloads_mount_name);
   EXPECT_EQ(full_path, "/");
 
-  EXPECT_FALSE(ExtractMountNameAndFullPath(base::FilePath("/unknown/path"),
-                                           &mount_name, &full_path));
+  // <Downloads>/foo
+  EXPECT_TRUE(ExtractMountNameFileSystemNameFullPath(
+      downloads.Append(relative_path_1), &mount_name, &file_system_name,
+      &full_path));
+  EXPECT_EQ(mount_name, downloads_mount_name);
+  EXPECT_EQ(file_system_name, downloads_mount_name);
+  EXPECT_EQ(full_path, "/foo");
+
+  // <Downloads>/foo/bar
+  EXPECT_TRUE(ExtractMountNameFileSystemNameFullPath(
+      downloads.Append(relative_path_2), &mount_name, &file_system_name,
+      &full_path));
+  EXPECT_EQ(mount_name, downloads_mount_name);
+  EXPECT_EQ(file_system_name, downloads_mount_name);
+  EXPECT_EQ(full_path, "/foo/bar");
+
+  // <removable>/
+  EXPECT_FALSE(ExtractMountNameFileSystemNameFullPath(
+      removable, &mount_name, &file_system_name, &full_path));
+
+  // <removable>/foo/
+  EXPECT_TRUE(ExtractMountNameFileSystemNameFullPath(
+      removable.Append(relative_path_1), &mount_name, &file_system_name,
+      &full_path));
+  EXPECT_EQ(mount_name, "removable/foo");
+  EXPECT_EQ(file_system_name, "foo");
+  EXPECT_EQ(full_path, "/");
+
+  // <removable>/foo/bar
+  EXPECT_TRUE(ExtractMountNameFileSystemNameFullPath(
+      removable.Append(relative_path_2), &mount_name, &file_system_name,
+      &full_path));
+  EXPECT_EQ(mount_name, "removable/foo");
+  EXPECT_EQ(file_system_name, "foo");
+  EXPECT_EQ(full_path, "/bar");
+
+  // Unknown.
+  EXPECT_FALSE(ExtractMountNameFileSystemNameFullPath(
+      base::FilePath("/unknown/path"), &mount_name, &file_system_name,
+      &full_path));
 }
 
 std::unique_ptr<KeyedService> CreateFileSystemOperationRunnerForTesting(
@@ -661,11 +702,20 @@
     ASSERT_TRUE(fake_file_system_.InitCalled());
 
     // Add a drive mount point for the primary profile.
+    storage::ExternalMountPoints* mount_points =
+        storage::ExternalMountPoints::GetSystemInstance();
     drive_mount_point_ = drive::util::GetDriveMountPointPath(primary_profile);
-    const std::string mount_name = drive_mount_point_.BaseName().AsUTF8Unsafe();
-    storage::ExternalMountPoints::GetSystemInstance()->RegisterFileSystem(
-        mount_name, storage::kFileSystemTypeDrive,
-        storage::FileSystemMountOption(), drive_mount_point_);
+    mount_points->RegisterFileSystem(
+        drive_mount_point_.BaseName().AsUTF8Unsafe(),
+        storage::kFileSystemTypeDrive, storage::FileSystemMountOption(),
+        drive_mount_point_);
+
+    // Add a crostini mount point for the primary profile.
+    crostini_mount_point_ = GetCrostiniMountDirectory(primary_profile);
+    mount_points->RegisterFileSystem(GetCrostiniMountPointName(primary_profile),
+                                     storage::kFileSystemTypeNativeLocal,
+                                     storage::FileSystemMountOption(),
+                                     crostini_mount_point_);
   }
 
   void TearDown() override {
@@ -685,6 +735,7 @@
   std::unique_ptr<user_manager::ScopedUserManager> user_manager_enabler_;
   std::unique_ptr<arc::ArcServiceManager> arc_service_manager_;
   base::FilePath drive_mount_point_;
+  base::FilePath crostini_mount_point_;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(FileManagerPathUtilConvertUrlTest);
@@ -746,6 +797,16 @@
   EXPECT_FALSE(ConvertPathToArcUrl(downloads2.AppendASCII("a/b/c"), &url));
 }
 
+TEST_F(FileManagerPathUtilConvertUrlTest, ConvertPathToArcUrl_Crostini) {
+  GURL url;
+  EXPECT_TRUE(
+      ConvertPathToArcUrl(crostini_mount_point_.AppendASCII("a/b/c"), &url));
+  EXPECT_EQ(GURL("content://org.chromium.arc.chromecontentprovider/"
+                 "externalfile%3A"
+                 "crostini_user%40gmail.com-hash_termina_penguin%2Fa%2Fb%2Fc"),
+            url);
+}
+
 TEST_F(FileManagerPathUtilConvertUrlTest, ConvertPathToArcUrl_Special) {
   GURL url;
   EXPECT_TRUE(
diff --git a/chrome/browser/chromeos/fileapi/external_file_url_util.cc b/chrome/browser/chromeos/fileapi/external_file_url_util.cc
index c71ee94..d2354cd 100644
--- a/chrome/browser/chromeos/fileapi/external_file_url_util.cc
+++ b/chrome/browser/chromeos/fileapi/external_file_url_util.cc
@@ -24,19 +24,18 @@
 
 namespace chromeos {
 
-bool IsExternalFileURLType(storage::FileSystemType type, bool allow_drivefs) {
+bool IsExternalFileURLType(storage::FileSystemType type, bool force) {
   return type == storage::kFileSystemTypeDrive ||
          type == storage::kFileSystemTypeDeviceMediaAsFileStorage ||
          type == storage::kFileSystemTypeProvided ||
-         type == storage::kFileSystemTypeArcContent ||
-         (allow_drivefs && type == storage::kFileSystemTypeDriveFs);
+         type == storage::kFileSystemTypeArcContent || force;
 }
 
 GURL FileSystemURLToExternalFileURL(
     const storage::FileSystemURL& file_system_url,
-    bool allow_drivefs) {
+    bool force) {
   if (file_system_url.mount_type() != storage::kFileSystemTypeExternal ||
-      !IsExternalFileURLType(file_system_url.type(), allow_drivefs)) {
+      !IsExternalFileURLType(file_system_url.type(), force)) {
     return GURL();
   }
 
@@ -59,7 +58,7 @@
 
 GURL CreateExternalFileURLFromPath(Profile* profile,
                                    const base::FilePath& path,
-                                   bool allow_drivefs) {
+                                   bool force) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   GURL raw_file_system_url;
@@ -78,7 +77,7 @@
   if (!file_system_url.is_valid())
     return GURL();
 
-  return FileSystemURLToExternalFileURL(file_system_url, allow_drivefs);
+  return FileSystemURLToExternalFileURL(file_system_url, force);
 }
 
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/fileapi/external_file_url_util.h b/chrome/browser/chromeos/fileapi/external_file_url_util.h
index 9bb60608..dc2ab20 100644
--- a/chrome/browser/chromeos/fileapi/external_file_url_util.h
+++ b/chrome/browser/chromeos/fileapi/external_file_url_util.h
@@ -22,17 +22,16 @@
 namespace chromeos {
 
 // Returns whether the external file URL is provided for the |type| or not.
-// TODO(b/119597913): Remove |allow_drivefs| from all functions in this file
+// TODO(b/119597913): Remove |force| from all functions in this file
 // once ARC++ can access FUSE-mounted filesystems directly.
-bool IsExternalFileURLType(storage::FileSystemType type,
-                           bool allow_drivefs = false);
+bool IsExternalFileURLType(storage::FileSystemType type, bool force = false);
 
 // Obtains the external file url formatted as "externalfile:<path>" from file
 // path. Returns empty URL if the file system does not provide the external file
 // URL.
 GURL FileSystemURLToExternalFileURL(
     const storage::FileSystemURL& file_system_url,
-    bool allow_drivefs = false);
+    bool force = false);
 
 // Converts a externalfile: URL back to a virtual path of FileSystemURL.
 base::FilePath ExternalFileURLToVirtualPath(const GURL& url);
@@ -45,7 +44,7 @@
 // external location (drive, MTP, or FSP). Otherwise, it returns empty URL.
 GURL CreateExternalFileURLFromPath(Profile* profile,
                                    const base::FilePath& path,
-                                   bool allow_drivefs = false);
+                                   bool force = false);
 
 }  // namespace chromeos
 
diff --git a/chrome/browser/chromeos/policy/power_policy_browsertest.cc b/chrome/browser/chromeos/policy/power_policy_browsertest.cc
index 6a9ac319..a8f298c 100644
--- a/chrome/browser/chromeos/policy/power_policy_browsertest.cc
+++ b/chrome/browser/chromeos/policy/power_policy_browsertest.cc
@@ -335,11 +335,14 @@
       pm::PowerManagementPolicy::DO_NOTHING);
   power_management_policy.set_lid_closed_action(
       pm::PowerManagementPolicy::DO_NOTHING);
-  power_management_policy.set_user_activity_screen_dim_delay_factor(3.0);
+  // Screen-dim scaling factors are disabled by PowerPolicyController when
+  // smart-dimming is enabled. Smart-dim is enabled when PowerSmartDimEnabled is
+  // set to true.
+  power_management_policy.set_user_activity_screen_dim_delay_factor(1.0);
 
   em::ChromeDeviceSettingsProto& proto(device_policy()->payload());
-  proto.mutable_login_screen_power_management()->
-      set_login_screen_power_management(kLoginScreenPowerManagementPolicy);
+  proto.mutable_login_screen_power_management()
+      ->set_login_screen_power_management(kLoginScreenPowerManagementPolicy);
   StoreAndReloadDevicePolicyAndWaitForLoginProfileChange();
   // Spin the run loop to ensure ash sees pref change.
   base::RunLoop().RunUntilIdle();
@@ -382,6 +385,69 @@
       pm::PowerManagementPolicy::STOP_SESSION);
   power_management_policy.set_lid_closed_action(
       pm::PowerManagementPolicy::STOP_SESSION);
+  // Screen-dim scaling factors are disabled by PowerPolicyController when
+  // smart-dimming is enabled. Smart-dim is enabled when PowerSmartDimEnabled is
+  // set to true.
+  power_management_policy.set_presentation_screen_dim_delay_factor(1.0);
+  power_management_policy.set_user_activity_screen_dim_delay_factor(1.0);
+  power_management_policy.set_wait_for_initial_user_activity(true);
+
+  user_policy_.payload().mutable_screendimdelayac()->set_value(5000);
+  user_policy_.payload().mutable_screenlockdelayac()->set_value(6000);
+  user_policy_.payload().mutable_screenoffdelayac()->set_value(7000);
+  user_policy_.payload().mutable_idlewarningdelayac()->set_value(8000);
+  user_policy_.payload().mutable_idledelayac()->set_value(9000);
+  user_policy_.payload().mutable_screendimdelaybattery()->set_value(1000);
+  user_policy_.payload().mutable_screenlockdelaybattery()->set_value(2000);
+  user_policy_.payload().mutable_screenoffdelaybattery()->set_value(3000);
+  user_policy_.payload().mutable_idlewarningdelaybattery()->set_value(4000);
+  user_policy_.payload().mutable_idledelaybattery()->set_value(5000);
+  user_policy_.payload().mutable_powermanagementusesaudioactivity()->set_value(
+      false);
+  user_policy_.payload().mutable_powermanagementusesvideoactivity()->set_value(
+      false);
+  user_policy_.payload().mutable_idleactionac()->set_value(
+      chromeos::PowerPolicyController::ACTION_STOP_SESSION);
+  user_policy_.payload().mutable_idleactionbattery()->set_value(
+      chromeos::PowerPolicyController::ACTION_STOP_SESSION);
+  user_policy_.payload().mutable_lidcloseaction()->set_value(
+      chromeos::PowerPolicyController::ACTION_STOP_SESSION);
+  user_policy_.payload().mutable_presentationscreendimdelayscale()->set_value(
+      300);
+  user_policy_.payload().mutable_useractivityscreendimdelayscale()->set_value(
+      300);
+  user_policy_.payload().mutable_waitforinitialuseractivity()->set_value(true);
+  StoreAndReloadUserPolicy();
+  // Spin the run loop to ensure ash sees pref change.
+  base::RunLoop().RunUntilIdle();
+  EXPECT_EQ(GetDebugString(power_management_policy),
+            GetDebugString(power_manager_client_->policy()));
+}
+
+// Verifies that legacy user policy is applied during a session.
+// Same as SetLegacyUserPolicy above, except that smart-dim is disabled.
+IN_PROC_BROWSER_TEST_F(PowerPolicyInSessionBrowserTest,
+                       SetLegacyUserPolicySmartDimDisabled) {
+  pm::PowerManagementPolicy power_management_policy =
+      power_manager_client_->policy();
+  power_management_policy.mutable_ac_delays()->set_screen_dim_ms(5000);
+  power_management_policy.mutable_ac_delays()->set_screen_lock_ms(6000);
+  power_management_policy.mutable_ac_delays()->set_screen_off_ms(7000);
+  power_management_policy.mutable_ac_delays()->set_idle_warning_ms(8000);
+  power_management_policy.mutable_ac_delays()->set_idle_ms(9000);
+  power_management_policy.mutable_battery_delays()->set_screen_dim_ms(1000);
+  power_management_policy.mutable_battery_delays()->set_screen_lock_ms(2000);
+  power_management_policy.mutable_battery_delays()->set_screen_off_ms(3000);
+  power_management_policy.mutable_battery_delays()->set_idle_warning_ms(4000);
+  power_management_policy.mutable_battery_delays()->set_idle_ms(5000);
+  power_management_policy.set_use_audio_activity(false);
+  power_management_policy.set_use_video_activity(false);
+  power_management_policy.set_ac_idle_action(
+      pm::PowerManagementPolicy::STOP_SESSION);
+  power_management_policy.set_battery_idle_action(
+      pm::PowerManagementPolicy::STOP_SESSION);
+  power_management_policy.set_lid_closed_action(
+      pm::PowerManagementPolicy::STOP_SESSION);
   power_management_policy.set_presentation_screen_dim_delay_factor(3.0);
   power_management_policy.set_user_activity_screen_dim_delay_factor(3.0);
   power_management_policy.set_wait_for_initial_user_activity(true);
@@ -411,6 +477,8 @@
   user_policy_.payload().mutable_useractivityscreendimdelayscale()->set_value(
       300);
   user_policy_.payload().mutable_waitforinitialuseractivity()->set_value(true);
+  // Disable smart-dim.
+  user_policy_.payload().mutable_powersmartdimenabled()->set_value(false);
   StoreAndReloadUserPolicy();
   // Spin the run loop to ensure ash sees pref change.
   base::RunLoop().RunUntilIdle();
@@ -440,8 +508,11 @@
       pm::PowerManagementPolicy::STOP_SESSION);
   power_management_policy.set_lid_closed_action(
       pm::PowerManagementPolicy::STOP_SESSION);
-  power_management_policy.set_presentation_screen_dim_delay_factor(3.0);
-  power_management_policy.set_user_activity_screen_dim_delay_factor(3.0);
+  // Screen-dim scaling factors are disabled by PowerPolicyController when
+  // smart-dimming is enabled. Smart-dim is enabled when PowerSmartDimEnabled is
+  // set to true.
+  power_management_policy.set_presentation_screen_dim_delay_factor(1.0);
+  power_management_policy.set_user_activity_screen_dim_delay_factor(1.0);
   power_management_policy.set_wait_for_initial_user_activity(true);
 
   // Set legacy policies which are expected to be ignored.
diff --git a/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.cc b/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.cc
index 7a28fd9..d574126 100644
--- a/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.cc
+++ b/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.cc
@@ -5,10 +5,15 @@
 #include "chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.h"
 
 #include "base/bind.h"
+#include "base/memory/weak_ptr.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/threading/thread.h"
 #include "base/time/time.h"
 #include "chrome/browser/chromeos/power/ml/smart_dim/model_impl.h"
+#include "chromeos/services/machine_learning/public/cpp/service_connection.h"
+#include "chromeos/services/machine_learning/public/mojom/graph_executor.mojom.h"
+#include "chromeos/services/machine_learning/public/mojom/model.mojom.h"
+#include "chromeos/services/machine_learning/public/mojom/tensor.mojom.h"
 #include "mojo/public/cpp/bindings/map.h"
 
 using ::chromeos::machine_learning::mojom::CreateGraphExecutorResult;
@@ -35,20 +40,64 @@
   UMA_HISTOGRAM_ENUMERATION("PowerML.SmartDimModel.Result", result);
 }
 
-}  // namespace
+// Real impl of MlServiceClient.
+class MlServiceClientImpl : public MlServiceClient {
+ public:
+  MlServiceClientImpl();
+  ~MlServiceClientImpl() override {}
 
-MlServiceClient::MlServiceClient() : weak_factory_(this) {}
+  // MlServiceClient:
+  void DoInference(
+      const std::vector<float>& features,
+      base::RepeatingCallback<UserActivityEvent::ModelPrediction(float)>
+          get_prediction_callback,
+      SmartDimModel::DimDecisionCallback decision_callback) override;
 
-MlServiceClient::~MlServiceClient() {}
+ private:
+  // Various callbacks that get invoked by the Mojo framework.
+  void LoadModelCallback(
+      ::chromeos::machine_learning::mojom::LoadModelResult result);
+  void CreateGraphExecutorCallback(
+      ::chromeos::machine_learning::mojom::CreateGraphExecutorResult result);
 
-void MlServiceClient::LoadModelCallback(LoadModelResult result) {
+  // Callback executed by ML Service when an Execute call is complete.
+  //
+  // The |get_prediction_callback| and the |decision_callback| are bound
+  // to the ExecuteCallback during while calling the Execute() function
+  // on the Mojo API.
+  void ExecuteCallback(
+      base::RepeatingCallback<UserActivityEvent::ModelPrediction(float)>
+          get_prediction_callback,
+      SmartDimModel::DimDecisionCallback decision_callback,
+      ::chromeos::machine_learning::mojom::ExecuteResult result,
+      base::Optional<
+          std::vector<::chromeos::machine_learning::mojom::TensorPtr>> outputs);
+  // Initializes the various handles to the ML service if they're not already
+  // available.
+  void InitMlServiceHandlesIfNeeded();
+
+  void OnConnectionError();
+
+  // Pointers used to execute functions in the ML service server end.
+  ::chromeos::machine_learning::mojom::ModelPtr model_;
+  ::chromeos::machine_learning::mojom::GraphExecutorPtr executor_;
+
+  base::WeakPtrFactory<MlServiceClientImpl> weak_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(MlServiceClientImpl);
+};
+
+MlServiceClientImpl::MlServiceClientImpl()
+    : MlServiceClient(), weak_factory_(this) {}
+
+void MlServiceClientImpl::LoadModelCallback(LoadModelResult result) {
   if (result != LoadModelResult::OK) {
     // TODO(crbug.com/893425): Log to UMA.
     LOG(ERROR) << "Failed to load Smart Dim model.";
   }
 }
 
-void MlServiceClient::CreateGraphExecutorCallback(
+void MlServiceClientImpl::CreateGraphExecutorCallback(
     CreateGraphExecutorResult result) {
   if (result != CreateGraphExecutorResult::OK) {
     // TODO(crbug.com/893425): Log to UMA.
@@ -56,7 +105,7 @@
   }
 }
 
-void MlServiceClient::ExecuteCallback(
+void MlServiceClientImpl::ExecuteCallback(
     base::Callback<UserActivityEvent::ModelPrediction(float)>
         get_prediction_callback,
     SmartDimModel::DimDecisionCallback decision_callback,
@@ -78,13 +127,13 @@
   std::move(decision_callback).Run(prediction);
 }
 
-void MlServiceClient::InitMlServiceHandlesIfNeeded() {
+void MlServiceClientImpl::InitMlServiceHandlesIfNeeded() {
   if (!model_) {
     // Load the model.
     ModelSpecPtr spec = ModelSpec::New(ModelId::SMART_DIM);
     chromeos::machine_learning::ServiceConnection::GetInstance()->LoadModel(
         std::move(spec), mojo::MakeRequest(&model_),
-        base::BindOnce(&MlServiceClient::LoadModelCallback,
+        base::BindOnce(&MlServiceClientImpl::LoadModelCallback,
                        weak_factory_.GetWeakPtr()));
   }
 
@@ -92,21 +141,21 @@
     // Get the graph executor.
     model_->CreateGraphExecutor(
         mojo::MakeRequest(&executor_),
-        base::BindOnce(&MlServiceClient::CreateGraphExecutorCallback,
+        base::BindOnce(&MlServiceClientImpl::CreateGraphExecutorCallback,
                        weak_factory_.GetWeakPtr()));
     executor_.set_connection_error_handler(base::BindOnce(
-        &MlServiceClient::OnConnectionError, weak_factory_.GetWeakPtr()));
+        &MlServiceClientImpl::OnConnectionError, weak_factory_.GetWeakPtr()));
   }
 }
 
-void MlServiceClient::OnConnectionError() {
+void MlServiceClientImpl::OnConnectionError() {
   // TODO(crbug.com/893425): Log to UMA.
   LOG(WARNING) << "Mojo connection for ML service closed.";
   executor_.reset();
   model_.reset();
 }
 
-void MlServiceClient::DoInference(
+void MlServiceClientImpl::DoInference(
     const std::vector<float>& features,
     base::Callback<UserActivityEvent::ModelPrediction(float)>
         get_prediction_callback,
@@ -128,11 +177,17 @@
 
   executor_->Execute(
       mojo::MapToFlatMap(std::move(inputs)), std::move(outputs),
-      base::BindOnce(&MlServiceClient::ExecuteCallback,
+      base::BindOnce(&MlServiceClientImpl::ExecuteCallback,
                      weak_factory_.GetWeakPtr(), get_prediction_callback,
                      std::move(decision_callback)));
 }
 
+}  // namespace
+
+std::unique_ptr<MlServiceClient> CreateMlServiceClient() {
+  return std::make_unique<MlServiceClientImpl>();
+}
+
 }  // namespace ml
 }  // namespace power
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.h b/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.h
index af0cfba..31fff3f 100644
--- a/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.h
+++ b/chrome/browser/chromeos/power/ml/smart_dim/ml_service_client.h
@@ -10,12 +10,7 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
-#include "base/memory/weak_ptr.h"
 #include "chrome/browser/chromeos/power/ml/smart_dim/model.h"
-#include "chromeos/services/machine_learning/public/cpp/service_connection.h"
-#include "chromeos/services/machine_learning/public/mojom/graph_executor.mojom.h"
-#include "chromeos/services/machine_learning/public/mojom/model.mojom.h"
-#include "chromeos/services/machine_learning/public/mojom/tensor.mojom.h"
 
 namespace chromeos {
 namespace power {
@@ -25,8 +20,8 @@
 // inference on inputs provided by the caller.
 class MlServiceClient {
  public:
-  MlServiceClient();
-  ~MlServiceClient();
+  MlServiceClient() = default;
+  virtual ~MlServiceClient() {}
 
   // Sends an input vector to the ML service to run inference on. It also
   // provides a |decision_callback| to the Mojo service which will be run
@@ -39,45 +34,15 @@
   // NOTE: A successful Mojo call *does not* guarantee a successful inference
   // call. The ExecuteCallback can be run with failure result, in case the
   // inference call failed.
-  void DoInference(const std::vector<float>& features,
-                   base::Callback<UserActivityEvent::ModelPrediction(float)>
-                       get_prediction_callback,
-                   SmartDimModel::DimDecisionCallback decision_callback);
-
- private:
-  // Various callbacks that get invoked by the Mojo framework.
-  void LoadModelCallback(
-      ::chromeos::machine_learning::mojom::LoadModelResult result);
-  void CreateGraphExecutorCallback(
-      ::chromeos::machine_learning::mojom::CreateGraphExecutorResult result);
-
-  // Callback executed by ML Service when an Execute call is complete.
-  //
-  // The |get_prediction_callback| and the |decision_callback| are bound
-  // to the ExecuteCallback during while calling the Execute() function
-  // on the Mojo API.
-  void ExecuteCallback(
-      base::Callback<UserActivityEvent::ModelPrediction(float)>
+  virtual void DoInference(
+      const std::vector<float>& features,
+      base::RepeatingCallback<UserActivityEvent::ModelPrediction(float)>
           get_prediction_callback,
-      SmartDimModel::DimDecisionCallback decision_callback,
-      ::chromeos::machine_learning::mojom::ExecuteResult result,
-      base::Optional<
-          std::vector<::chromeos::machine_learning::mojom::TensorPtr>> outputs);
-  // Initializes the various handles to the ML service if they're not already
-  // available.
-  void InitMlServiceHandlesIfNeeded();
-
-  void OnConnectionError();
-
-  // Pointers used to execute functions in the ML service server end.
-  ::chromeos::machine_learning::mojom::ModelPtr model_;
-  ::chromeos::machine_learning::mojom::GraphExecutorPtr executor_;
-
-  base::WeakPtrFactory<MlServiceClient> weak_factory_;
-
-  DISALLOW_COPY_AND_ASSIGN(MlServiceClient);
+      SmartDimModel::DimDecisionCallback decision_callback) = 0;
 };
 
+std::unique_ptr<MlServiceClient> CreateMlServiceClient();
+
 }  // namespace ml
 }  // namespace power
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/power/ml/smart_dim/model_impl.cc b/chrome/browser/chromeos/power/ml/smart_dim/model_impl.cc
index 07f732a..7615f75e 100644
--- a/chrome/browser/chromeos/power/ml/smart_dim/model_impl.cc
+++ b/chrome/browser/chromeos/power/ml/smart_dim/model_impl.cc
@@ -222,25 +222,18 @@
   UMA_HISTOGRAM_ENUMERATION("PowerML.SmartDimParameter.Result", result);
 }
 
-// Returns "dim_threshold" from experiment parameter. Also logs status to UMA
-// (i.e. whether the parameter is undefined or cannot be parsed, or can be
-// parsed successfully.
-base::Optional<float> GetDimThreshold() {
-  const std::string dim_threshold_str = base::GetFieldTrialParamValueByFeature(
-      features::kUserActivityPrediction, "dim_threshold");
-  if (dim_threshold_str.empty()) {
-    LogPowerMLSmartDimParameterResult(SmartDimParameterResult::kUndefinedError);
-    return base::nullopt;
+// Returns "dim_threshold" from experiment parameter. Also logs status to UMA.
+float GetDimThreshold() {
+  const double default_threshold = -0.18;
+  const double dim_threshold = base::GetFieldTrialParamByFeatureAsDouble(
+      features::kUserActivityPrediction, "dim_threshold", default_threshold);
+  if (std::abs(dim_threshold - default_threshold) < 1e-10) {
+    LogPowerMLSmartDimParameterResult(
+        SmartDimParameterResult::kUseDefaultValue);
+  } else {
+    LogPowerMLSmartDimParameterResult(SmartDimParameterResult::kSuccess);
   }
-
-  double dim_threshold_double;
-  if (!base::StringToDouble(dim_threshold_str, &dim_threshold_double)) {
-    LogPowerMLSmartDimParameterResult(SmartDimParameterResult::kParsingError);
-    return base::nullopt;
-  }
-
-  LogPowerMLSmartDimParameterResult(SmartDimParameterResult::kSuccess);
-  return base::Optional<float>(dim_threshold_double);
+  return dim_threshold;
 }
 
 }  // namespace
@@ -322,12 +315,12 @@
 UserActivityEvent::ModelPrediction
 SmartDimModelImpl::CreatePredictionFromInactivityScore(float inactivity_score) {
   UserActivityEvent::ModelPrediction prediction;
-  const base::Optional<float> dim_threshold = GetDimThreshold();
+  const float dim_threshold = GetDimThreshold();
 
-  prediction.set_decision_threshold(ScoreToProbability(dim_threshold.value()));
+  prediction.set_decision_threshold(ScoreToProbability(dim_threshold));
   prediction.set_inactivity_score(ScoreToProbability(inactivity_score));
 
-  if (inactivity_score >= dim_threshold.value()) {
+  if (inactivity_score >= dim_threshold) {
     prediction.set_response(UserActivityEvent::ModelPrediction::DIM);
   } else {
     prediction.set_response(UserActivityEvent::ModelPrediction::NO_DIM);
@@ -342,11 +335,6 @@
   UserActivityEvent::ModelPrediction prediction;
   prediction.set_response(UserActivityEvent::ModelPrediction::MODEL_ERROR);
 
-  const base::Optional<float> dim_threshold = GetDimThreshold();
-  if (!dim_threshold) {
-    return prediction;
-  }
-
   float inactivity_score = 0;
   const SmartDimModelResult result =
       CalculateInactivityScoreTfNative(input_features, &inactivity_score);
@@ -368,12 +356,6 @@
   UserActivityEvent::ModelPrediction prediction;
   prediction.set_response(UserActivityEvent::ModelPrediction::MODEL_ERROR);
 
-  const base::Optional<float> dim_threshold = GetDimThreshold();
-  if (!dim_threshold) {
-    std::move(callback).Run(prediction);
-    return;
-  }
-
   std::vector<float> vectorized_features;
   auto preprocess_result =
       PreprocessInput(input_features, &vectorized_features);
@@ -433,7 +415,7 @@
   // completely.
   if (use_ml_service_) {
     if (!ml_service_client_) {
-      ml_service_client_ = std::make_unique<MlServiceClient>();
+      ml_service_client_ = CreateMlServiceClient();
     }
   }
 
diff --git a/chrome/browser/chromeos/power/ml/smart_dim/model_impl.h b/chrome/browser/chromeos/power/ml/smart_dim/model_impl.h
index 571cb77..f56b629e 100644
--- a/chrome/browser/chromeos/power/ml/smart_dim/model_impl.h
+++ b/chrome/browser/chromeos/power/ml/smart_dim/model_impl.h
@@ -44,7 +44,8 @@
   kSuccess = 0,
   kUndefinedError = 1,
   kParsingError = 2,
-  kMaxValue = kParsingError
+  kUseDefaultValue = 3,
+  kMaxValue = kUseDefaultValue
 };
 
 // Real implementation of SmartDimModel that predicts whether an upcoming screen
diff --git a/chrome/browser/chromeos/power/ml/smart_dim/model_unittest.cc b/chrome/browser/chromeos/power/ml/smart_dim/model_unittest.cc
index 624f69b8..6a87103 100644
--- a/chrome/browser/chromeos/power/ml/smart_dim/model_unittest.cc
+++ b/chrome/browser/chromeos/power/ml/smart_dim/model_unittest.cc
@@ -146,25 +146,6 @@
   EXPECT_TRUE(callback_done);
 }
 
-TEST_F(SmartDimModelImplTest, ModelError) {
-  // Model parameter is undefined, which would trigger a model error.
-  bool callback_done = false;
-  smart_dim_model_.RequestDimDecision(
-      features_, base::BindOnce(
-                     [](bool* callback_done,
-                        UserActivityEvent::ModelPrediction prediction) {
-                       EXPECT_EQ(
-                           UserActivityEvent::ModelPrediction::MODEL_ERROR,
-                           prediction.response());
-                       EXPECT_FALSE(prediction.has_decision_threshold());
-                       EXPECT_FALSE(prediction.has_inactivity_score());
-                       *callback_done = true;
-                     },
-                     &callback_done));
-  scoped_task_environment_.RunUntilIdle();
-  EXPECT_TRUE(callback_done);
-}
-
 // Check that CancelableCallback ensures a callback doesn't execute twice, in
 // case two RequestDimDecision() calls were made before any callback ran.
 TEST_F(SmartDimModelImplTest, CheckCancelableCallback) {
diff --git a/chrome/browser/chromeos/power/ml/user_activity_manager_unittest.cc b/chrome/browser/chromeos/power/ml/user_activity_manager_unittest.cc
index 16c2d0b..c4606f8 100644
--- a/chrome/browser/chromeos/power/ml/user_activity_manager_unittest.cc
+++ b/chrome/browser/chromeos/power/ml/user_activity_manager_unittest.cc
@@ -335,6 +335,9 @@
 // After an idle event, we have a ui::Event, we should expect one
 // UserActivityEvent.
 TEST_F(UserActivityManagerTest, LogAfterIdleEvent) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -359,6 +362,9 @@
 
 // Get a user event before an idle event, we should not log it.
 TEST_F(UserActivityManagerTest, LogBeforeIdleEvent) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportUserActivity(nullptr);
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
@@ -370,6 +376,9 @@
 // Get a user event, then an idle event, then another user event,
 // we should log the last one.
 TEST_F(UserActivityManagerTest, LogSecondEvent) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportUserActivity(nullptr);
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
@@ -395,6 +404,9 @@
 
 // Log multiple events.
 TEST_F(UserActivityManagerTest, LogMultipleEvents) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger the 1st idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -477,6 +489,9 @@
 }
 
 TEST_F(UserActivityManagerTest, UserCloseLid) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportLidEvent(chromeos::PowerManagerClient::LidState::OPEN);
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
@@ -489,6 +504,9 @@
 }
 
 TEST_F(UserActivityManagerTest, PowerChangeActivity) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportPowerChangeEvent(power_manager::PowerSupplyProperties::AC, 23.0f);
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
@@ -512,6 +530,9 @@
 }
 
 TEST_F(UserActivityManagerTest, VideoActivity) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -533,6 +554,9 @@
 // System remains idle, screen is dimmed then turned off, and system is finally
 // suspended.
 TEST_F(UserActivityManagerTest, SystemIdleSuspend) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -559,6 +583,9 @@
 // System remains idle, screen is dimmed then turned off, but system is not
 // suspended.
 TEST_F(UserActivityManagerTest, SystemIdleNotSuspend) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -575,6 +602,9 @@
 // Test system idle interrupt by user activity.
 // We should only observe user activity.
 TEST_F(UserActivityManagerTest, SystemIdleInterrupted) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -602,6 +632,9 @@
 }
 
 TEST_F(UserActivityManagerTest, ScreenLockNoSuspend) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -612,6 +645,9 @@
 }
 
 TEST_F(UserActivityManagerTest, ScreenLockWithSuspend) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -636,6 +672,9 @@
 // As we log when SuspendImminent is received, sleep duration from SuspendDone
 // doesn't make any difference.
 TEST_F(UserActivityManagerTest, SuspendIdleShortSleepDuration) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -657,6 +696,9 @@
 }
 
 TEST_F(UserActivityManagerTest, SuspendLidClosed) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -677,6 +719,9 @@
 }
 
 TEST_F(UserActivityManagerTest, SuspendOther) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Trigger an idle event.
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
@@ -698,6 +743,9 @@
 
 // Test feature extraction.
 TEST_F(UserActivityManagerTest, FeatureExtraction) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportLidEvent(chromeos::PowerManagerClient::LidState::OPEN);
   ReportTabletModeEvent(chromeos::PowerManagerClient::TabletMode::UNSUPPORTED);
   ReportPowerChangeEvent(power_manager::PowerSupplyProperties::AC, 23.0f);
@@ -745,6 +793,9 @@
 }
 
 TEST_F(UserActivityManagerTest, ManagedDevice) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   fake_user_manager_.set_is_enterprise_managed(true);
 
   const IdleEventNotifier::ActivityData data;
@@ -759,6 +810,9 @@
 }
 
 TEST_F(UserActivityManagerTest, DimAndOffDelays) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportInactivityDelays(
       base::TimeDelta::FromMilliseconds(2000) /* screen_dim_delay */,
       base::TimeDelta::FromMilliseconds(3000) /* screen_off_delay */);
@@ -775,6 +829,9 @@
 }
 
 TEST_F(UserActivityManagerTest, DimDelays) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportInactivityDelays(
       base::TimeDelta::FromMilliseconds(2000) /* screen_dim_delay */,
       base::TimeDelta() /* screen_off_delay */);
@@ -791,6 +848,9 @@
 }
 
 TEST_F(UserActivityManagerTest, OffDelays) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportInactivityDelays(
       base::TimeDelta() /* screen_dim_delay */,
       base::TimeDelta::FromMilliseconds(4000) /* screen_off_delay */);
@@ -809,6 +869,9 @@
 // Screen is off when idle event is reported. No subsequent change in screen
 // state.
 TEST_F(UserActivityManagerTest, InitialScreenOff) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportScreenIdleState(true /* screen_dim */, true /* screen_off */);
 
   const IdleEventNotifier::ActivityData data;
@@ -838,6 +901,9 @@
 // Screen is off when idle event is reported. No subsequent change in screen
 // state.
 TEST_F(UserActivityManagerTest, InitialScreenStateFlipped) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   ReportScreenIdleState(true /* screen_dim */, false /* screen_off */);
 
   const IdleEventNotifier::ActivityData data;
@@ -868,6 +934,9 @@
 // Screen is off when idle event is reported. No subsequent change in screen
 // state.
 TEST_F(UserActivityManagerTest, ScreenOffStateChanged) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   const IdleEventNotifier::ActivityData data;
   ReportIdleEvent(data);
 
@@ -1246,6 +1315,9 @@
 }
 
 TEST_F(UserActivityManagerTest, BasicTabs) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   std::unique_ptr<Browser> browser =
       CreateTestBrowser(true /* is_visible */, true /* is_focused */);
   BrowserList::GetInstance()->SetLastActive(browser.get());
@@ -1274,6 +1346,9 @@
 }
 
 TEST_F(UserActivityManagerTest, MultiBrowsersAndTabs) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   // Simulates three browsers:
   //  - browser1 is the last active but minimized and so not visible.
   //  - browser2 and browser3 are both visible but browser2 is the topmost.
@@ -1318,6 +1393,9 @@
 }
 
 TEST_F(UserActivityManagerTest, Incognito) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   std::unique_ptr<Browser> browser = CreateTestBrowser(
       true /* is_visible */, true /* is_focused */, true /* is_incognito */);
   BrowserList::GetInstance()->SetLastActive(browser.get());
@@ -1343,6 +1421,9 @@
 }
 
 TEST_F(UserActivityManagerTest, NoOpenTabs) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kUserActivityPrediction);
+
   std::unique_ptr<Browser> browser =
       CreateTestBrowser(true /* is_visible */, true /* is_focused */);
 
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc
index 7749d2c..0a7f640 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_browsertest.cc
@@ -385,6 +385,9 @@
 class DataReductionProxyFallbackBrowsertest
     : public DataReductionProxyBrowsertest {
  public:
+  using ResponseHook =
+      base::RepeatingCallback<void(net::test_server::BasicHttpResponse*)>;
+
   void SetUpOnMainThread() override {
     // Set up a primary server which will return the Chrome-Proxy header set by
     // SetHeader() and status set by SetStatusCode(). Secondary server will just
@@ -411,6 +414,10 @@
     DataReductionProxyBrowsertest::SetUpOnMainThread();
   }
 
+  void SetResponseHook(ResponseHook response_hook) {
+    response_hook_ = response_hook;
+  }
+
   void SetHeader(const std::string& header) { header_ = header; }
 
   void SetStatusCode(net::HttpStatusCode status_code) {
@@ -423,6 +430,8 @@
     auto response = std::make_unique<net::test_server::BasicHttpResponse>();
     if (!header_.empty())
       response->AddCustomHeader(chrome_proxy_header(), header_);
+    if (response_hook_)
+      response_hook_.Run(response.get());
     response->set_code(status_code_);
     response->set_content(kPrimaryResponse);
     response->set_content_type("text/plain");
@@ -431,11 +440,34 @@
 
   net::HttpStatusCode status_code_ = net::HTTP_OK;
   std::string header_;
+  ResponseHook response_hook_;
   net::EmbeddedTestServer primary_server_;
   net::EmbeddedTestServer secondary_server_;
 };
 
 IN_PROC_BROWSER_TEST_F(DataReductionProxyFallbackBrowsertest,
+                       FallbackProxyUsedOnNetError) {
+  SetResponseHook(
+      base::BindRepeating([](net::test_server::BasicHttpResponse* response) {
+        response->AddCustomHeader("Content-Disposition", "inline");
+        response->AddCustomHeader("Content-Disposition", "form-data");
+      }));
+  base::HistogramTester histogram_tester;
+  ui_test_utils::NavigateToURL(
+      browser(), GURL("http://does.not.resolve/echoheader?Chrome-Proxy"));
+  EXPECT_THAT(GetBody(), kSecondaryResponse);
+  histogram_tester.ExpectUniqueSample(
+      "DataReductionProxy.InvalidResponseHeadersReceived.NetError",
+      -net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION, 1);
+
+  // Bad proxy should still be bypassed.
+  SetResponseHook(ResponseHook());
+  ui_test_utils::NavigateToURL(
+      browser(), GURL("http://does.not.resolve/echoheader?Chrome-Proxy"));
+  EXPECT_THAT(GetBody(), kSecondaryResponse);
+}
+
+IN_PROC_BROWSER_TEST_F(DataReductionProxyFallbackBrowsertest,
                        FallbackProxyUsedOn500Status) {
   base::HistogramTester histogram_tester;
   // Should fall back to the secondary proxy if a 500 error occurs.
diff --git a/chrome/browser/extensions/api/autofill_private/autofill_private_apitest.cc b/chrome/browser/extensions/api/autofill_private/autofill_private_apitest.cc
index 11c0196..da953b0 100644
--- a/chrome/browser/extensions/api/autofill_private/autofill_private_apitest.cc
+++ b/chrome/browser/extensions/api/autofill_private/autofill_private_apitest.cc
@@ -66,9 +66,10 @@
   EXPECT_TRUE(RunAutofillSubtest("addAndUpdateAddress")) << message_;
 }
 
-IN_PROC_BROWSER_TEST_F(AutofillPrivateApiTest, AddAndUpdateCreditCard) {
+// TODO(crbug.com/934631) Disabled for flakiness.
+IN_PROC_BROWSER_TEST_F(AutofillPrivateApiTest,
+                       DISABLED_AddAndUpdateCreditCard) {
   EXPECT_TRUE(RunAutofillSubtest("addAndUpdateCreditCard")) << message_;
 }
 
 }  // namespace extensions
-
diff --git a/chrome/browser/extensions/chrome_extensions_interface_registration.cc b/chrome/browser/extensions/chrome_extensions_interface_registration.cc
index a1dd82b..3cae620 100644
--- a/chrome/browser/extensions/chrome_extensions_interface_registration.cc
+++ b/chrome/browser/extensions/chrome_extensions_interface_registration.cc
@@ -90,7 +90,8 @@
                               base::Unretained(delegate)));
     }
   }
-  if (extension->id().compare(extension_misc::kChromeCameraAppId) == 0) {
+  if (extension->id().compare(extension_misc::kChromeCameraAppId) == 0 ||
+      extension->id().compare(extension_misc::kChromeCameraAppDevId) == 0) {
     registry->AddInterface(
         base::BindRepeating(&ForwardRequest<cros::mojom::CrosImageCapture>,
                             video_capture::mojom::kServiceName));
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 6c21514..d25f5d7 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3524,12 +3524,6 @@
 const char kWakeOnPacketsDescription[] =
     "Enables waking the device based on the receipt of some network packets.";
 
-const char kEnableAppReinstallZeroStateName[] =
-    "Enable Zero State App Reinstall Suggestions.";
-const char kEnableAppReinstallZeroStateDescription[] =
-    "Enable Zero State App Reinstall Suggestions feature in launcher, which "
-    "will show app reinstall recommendations at end of zero state list.";
-
 #endif  // defined(OS_CHROMEOS)
 
 // Random platform combinations -----------------------------------------------
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 0a03528..7eccf80 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -2108,9 +2108,6 @@
 extern const char kWakeOnPacketsName[];
 extern const char kWakeOnPacketsDescription[];
 
-extern const char kEnableAppReinstallZeroStateName[];
-extern const char kEnableAppReinstallZeroStateDescription[];
-
 #endif  // #if defined(OS_CHROMEOS)
 
 // Random platform combinations -----------------------------------------------
diff --git a/chrome/browser/offline_pages/background_loader_offliner_unittest.cc b/chrome/browser/offline_pages/background_loader_offliner_unittest.cc
index cbe029ff..21c54cb 100644
--- a/chrome/browser/offline_pages/background_loader_offliner_unittest.cc
+++ b/chrome/browser/offline_pages/background_loader_offliner_unittest.cc
@@ -39,7 +39,7 @@
 namespace {
 char kShortSnapshotDelayForTest[] =
     "short-offline-page-snapshot-delay-for-test";
-};  // namespace
+}  // namespace
 
 namespace offline_pages {
 
diff --git a/chrome/browser/password_manager/account_chooser_dialog_android.cc b/chrome/browser/password_manager/account_chooser_dialog_android.cc
index 8ea7da9..a9b463d 100644
--- a/chrome/browser/password_manager/account_chooser_dialog_android.cc
+++ b/chrome/browser/password_manager/account_chooser_dialog_android.cc
@@ -99,7 +99,7 @@
   fetcher->Start(loader_factory);
 }
 
-};  // namespace
+}  // namespace
 
 AccountChooserDialogAndroid::AccountChooserDialogAndroid(
     content::WebContents* web_contents,
diff --git a/chrome/browser/password_manager/password_generation_controller_impl.cc b/chrome/browser/password_manager/password_generation_controller_impl.cc
index 88be480..c5082ea3 100644
--- a/chrome/browser/password_manager/password_generation_controller_impl.cc
+++ b/chrome/browser/password_manager/password_generation_controller_impl.cc
@@ -168,4 +168,4 @@
       manual_filling_controller_(std::move(manual_filling_controller_)),
       create_dialog_factory_(create_dialog_factory) {}
 
-WEB_CONTENTS_USER_DATA_KEY_IMPL(PasswordGenerationControllerImpl);
+WEB_CONTENTS_USER_DATA_KEY_IMPL(PasswordGenerationControllerImpl)
diff --git a/chrome/browser/previews/previews_browsertest.cc b/chrome/browser/previews/previews_browsertest.cc
index a502a289..3ffb076 100644
--- a/chrome/browser/previews/previews_browsertest.cc
+++ b/chrome/browser/previews/previews_browsertest.cc
@@ -249,10 +249,7 @@
 
     base::HistogramTester histogram_tester;
 
-    g_browser_process->optimization_guide_service()->MaybeUpdateHintsComponent(
-        component_info);
-
-    // Wait for hint update processing to complete.
+    // Register a QuitClosure for when the next hint update is started below.
     base::RunLoop run_loop;
     PreviewsServiceFactory::GetForProfile(
         Profile::FromBrowserContext(browser()
@@ -263,6 +260,10 @@
         ->previews_decider_impl()
         ->previews_opt_guide()
         ->ListenForNextUpdateForTesting(run_loop.QuitClosure());
+
+    g_browser_process->optimization_guide_service()->MaybeUpdateHintsComponent(
+        component_info);
+
     run_loop.Run();
 
     // Navigate to |hint_setup_url| to prime the OptimizationGuide hints for the
diff --git a/chrome/browser/previews/previews_lite_page_browsertest.cc b/chrome/browser/previews/previews_lite_page_browsertest.cc
index 372bcfc..64a14978 100644
--- a/chrome/browser/previews/previews_lite_page_browsertest.cc
+++ b/chrome/browser/previews/previews_lite_page_browsertest.cc
@@ -765,9 +765,8 @@
 #define DISABLE_ON_WIN_MAC(x) x
 #endif
 
-// TODO(crbug.com/934955): Failing on Linux trybots.
 IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
-                       DISABLED_LitePagePreviewsTriggering) {
+                       DISABLE_ON_WIN_MAC(LitePagePreviewsTriggering)) {
   // TODO(crbug.com/874150): Use ExpectUniqueSample in these tests.
   // The histograms in these tests can only be checked by the expected bucket,
   // and not by a unique sample. This is because each navigation to a preview
@@ -1025,9 +1024,9 @@
   VerifyPreviewNotLoaded();
 }
 
-// TODO(crbug.com/934955): Failing on Linux trybots.
-IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
-                       DISABLED_ReloadingLitePagesDisablesLitePages) {
+IN_PROC_BROWSER_TEST_P(
+    PreviewsLitePageServerBrowserTest,
+    DISABLE_ON_WIN_MAC(ReloadingLitePagesDisablesLitePages)) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitWithFeatures(
       {previews::features::kPreviewsReloadsAreSoftOptOuts}, {});
@@ -1127,8 +1126,6 @@
 
 IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
                        DISABLE_ON_WIN_MAC(LitePagePreviewsResponse)) {
-  if (GetParam())
-    return;
   {
     // Verify the preview is not triggered when the server responds with bypass
     // 307.
@@ -1138,14 +1135,18 @@
     VerifyInfoStatus(&histogram_tester,
                      previews::ServerLitePageStatus::kBypass);
     ClearDeciderState();
-    histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
-                                       true, 1);
-    histogram_tester.ExpectBucketCount(
-        "Previews.ServerLitePage.ServerResponse",
-        PreviewsLitePageNavigationThrottle::ServerResponse::kPreviewUnavailable,
-        1);
-    histogram_tester.ExpectBucketCount(
-        "Previews.ServerLitePage.HostBlacklistedOnBypass", false, 1);
+    if (!GetParam()) {
+      histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
+                                         true, 1);
+      histogram_tester.ExpectBucketCount(
+          "Previews.ServerLitePage.ServerResponse",
+          PreviewsLitePageNavigationThrottle::ServerResponse::
+              kPreviewUnavailable,
+          1);
+
+      histogram_tester.ExpectBucketCount(
+          "Previews.ServerLitePage.HostBlacklistedOnBypass", false, 1);
+    }
   }
 
   {
@@ -1157,15 +1158,17 @@
     VerifyInfoStatus(&histogram_tester,
                      previews::ServerLitePageStatus::kBypass);
 
-    histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
-                                       true, 1);
-    histogram_tester.ExpectBucketCount(
-        "Previews.ServerLitePage.ServerResponse",
-        PreviewsLitePageNavigationThrottle::ServerResponse::kPreviewUnavailable,
-        1);
-    histogram_tester.ExpectBucketCount(
-        "Previews.ServerLitePage.HostBlacklistedOnBypass", true, 1);
-
+    if (!GetParam()) {
+      histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
+                                         true, 1);
+      histogram_tester.ExpectBucketCount(
+          "Previews.ServerLitePage.ServerResponse",
+          PreviewsLitePageNavigationThrottle::ServerResponse::
+              kPreviewUnavailable,
+          1);
+      histogram_tester.ExpectBucketCount(
+          "Previews.ServerLitePage.HostBlacklistedOnBypass", true, 1);
+    }
     ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
     VerifyPreviewNotLoaded();
     histogram_tester.ExpectBucketCount(
@@ -1187,11 +1190,13 @@
     VerifyInfoStatus(&histogram_tester,
                      previews::ServerLitePageStatus::kFailure);
     ClearDeciderState();
-    histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
-                                       true, 1);
-    histogram_tester.ExpectBucketCount(
-        "Previews.ServerLitePage.ServerResponse",
-        PreviewsLitePageNavigationThrottle::ServerResponse::kAuthFailure, 1);
+    if (!GetParam()) {
+      histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
+                                         true, 1);
+      histogram_tester.ExpectBucketCount(
+          "Previews.ServerLitePage.ServerResponse",
+          PreviewsLitePageNavigationThrottle::ServerResponse::kAuthFailure, 1);
+    }
   }
 
   {
@@ -1202,19 +1207,20 @@
     VerifyInfoStatus(&histogram_tester,
                      previews::ServerLitePageStatus::kFailure);
     ClearDeciderState();
-    histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
-                                       true, 1);
-    histogram_tester.ExpectBucketCount(
-        "Previews.ServerLitePage.ServerResponse",
-        PreviewsLitePageNavigationThrottle::ServerResponse::kServiceUnavailable,
-        1);
+    if (!GetParam()) {
+      histogram_tester.ExpectBucketCount("Previews.ServerLitePage.Triggered",
+                                         true, 1);
+      histogram_tester.ExpectBucketCount(
+          "Previews.ServerLitePage.ServerResponse",
+          PreviewsLitePageNavigationThrottle::ServerResponse::
+              kServiceUnavailable,
+          1);
+    }
   }
 }
 
 IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
                        DISABLE_ON_WIN_MAC(LitePagePreviewsLoadshed)) {
-  if (GetParam())
-    return;
   PreviewsService* previews_service =
       PreviewsServiceFactory::GetForProfile(browser()->profile());
   ASSERT_TRUE(previews_service);
@@ -1686,10 +1692,7 @@
 
   void ProcessHintsComponent(
       const optimization_guide::HintsComponentInfo& component_info) {
-    g_browser_process->optimization_guide_service()->MaybeUpdateHintsComponent(
-        component_info);
-
-    // Wait for hint update processing to complete.
+    // Register a QuitClosure for when the next hint update is started below.
     base::RunLoop run_loop;
     PreviewsServiceFactory::GetForProfile(
         Profile::FromBrowserContext(browser()
@@ -1700,6 +1703,10 @@
         ->previews_decider_impl()
         ->previews_opt_guide()
         ->ListenForNextUpdateForTesting(run_loop.QuitClosure());
+
+    g_browser_process->optimization_guide_service()->MaybeUpdateHintsComponent(
+        component_info);
+
     run_loop.Run();
   }
 
diff --git a/chrome/browser/previews/previews_lite_page_serving_url_loader.cc b/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
index 9b48e5fdf..4460bcd4 100644
--- a/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
+++ b/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
@@ -4,21 +4,89 @@
 
 #include "chrome/browser/previews/previews_lite_page_serving_url_loader.h"
 
+#include <string>
 #include <utility>
 
 #include "base/bind.h"
+#include "base/bind_helpers.h"
 #include "base/memory/ptr_util.h"
+#include "base/rand_util.h"
+#include "base/task/post_task.h"
+#include "base/task/task_traits.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "base/time/time.h"
+#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_navigation_throttle_manager.h"
+#include "chrome/browser/previews/previews_service.h"
+#include "chrome/browser/previews/previews_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h"
+#include "components/previews/core/previews_experiments.h"
+#include "components/previews/core/previews_lite_page_redirect.h"
+#include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/previews_state.h"
+#include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
+#include "net/http/http_util.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "services/network/public/cpp/resource_request.h"
+#include "url/gurl.h"
 
 namespace previews {
 
 namespace {
+
+void BlacklistBypassedHostOnUIThread(const std::string& host,
+                                     base::TimeDelta duration,
+                                     int frame_tree_node_id) {
+  auto* web_contents =
+      content::WebContents::FromFrameTreeNodeId(frame_tree_node_id);
+  // If the WebContents has been closed this may be null.
+  if (!web_contents)
+    return;
+
+  static_cast<PreviewsLitePageNavigationThrottleManager*>(
+      PreviewsServiceFactory::GetForProfile(
+          Profile::FromBrowserContext(web_contents->GetBrowserContext()))
+          ->previews_lite_page_decider())
+      ->BlacklistBypassedHost(host, duration);
+}
+
+void BlacklistBypassedHost(const std::string& host,
+                           base::TimeDelta duration,
+                           int frame_tree_node_id) {
+  base::PostTaskWithTraits(
+      FROM_HERE, {content::BrowserThread::UI, base::TaskPriority::USER_VISIBLE},
+      base::BindOnce(&BlacklistBypassedHostOnUIThread, host, duration,
+                     frame_tree_node_id));
+}
+
+void SetServerUnavailableForOnUIThread(base::TimeDelta duration,
+                                       int frame_tree_node_id) {
+  auto* web_contents =
+      content::WebContents::FromFrameTreeNodeId(frame_tree_node_id);
+  // If the WebContents has been closed this may be null.
+  if (!web_contents)
+    return;
+
+  static_cast<PreviewsLitePageNavigationThrottleManager*>(
+      PreviewsServiceFactory::GetForProfile(
+          Profile::FromBrowserContext(web_contents->GetBrowserContext()))
+          ->previews_lite_page_decider())
+      ->SetServerUnavailableFor(duration);
+}
+
+void SetServerUnavailableFor(base::TimeDelta duration, int frame_tree_node_id) {
+  base::PostTaskWithTraits(
+      FROM_HERE, {content::BrowserThread::UI, base::TaskPriority::USER_VISIBLE},
+      base::BindOnce(&SetServerUnavailableForOnUIThread, duration,
+                     frame_tree_node_id));
+}
+
+const base::TimeDelta kBlacklistDuration = base::TimeDelta::FromDays(30);
+
 // Used for mojo pipe size. Same constant as navigation code.
 constexpr size_t kServingDefaultAllocationSize = 512 * 1024;
 
@@ -68,6 +136,8 @@
     const scoped_refptr<network::SharedURLLoaderFactory>&
         network_loader_factory,
     int frame_tree_node_id) {
+  frame_tree_node_id_ = frame_tree_node_id;
+  previews_url_ = request.url;
   network::mojom::URLLoaderClientPtr client;
 
   url_loader_binding_.Bind(mojo::MakeRequest(&client),
@@ -78,7 +148,7 @@
 
   // Create a network service URL loader with passed in params.
   network_loader_factory->CreateLoaderAndStart(
-      mojo::MakeRequest(&network_url_loader_), frame_tree_node_id, 0,
+      mojo::MakeRequest(&network_url_loader_), frame_tree_node_id_, 0,
       network::mojom::kURLLoadOptionNone, request, std::move(client),
       net::MutableNetworkTrafficAnnotationTag(kPreviewsTrafficAnnotation));
 }
@@ -137,8 +207,22 @@
     const network::ResourceResponseHead& head) {
   DCHECK(!forwarding_client_);
 
+  const net::HttpResponseHeaders* response_headers = head.headers.get();
   // TODO: evaluate all the responses we allow, don't hard code 200.
-  if (head.headers->response_code() != net::HTTP_OK) {
+  if (!response_headers || response_headers->response_code() != net::HTTP_OK) {
+    if (response_headers &&
+        response_headers->response_code() == net::HTTP_SERVICE_UNAVAILABLE) {
+      std::string retry_after_header;
+      base::TimeDelta retry_after = base::TimeDelta::FromSeconds(base::RandInt(
+          60, previews::params::PreviewServerLoadshedMaxSeconds()));
+      if (response_headers->EnumerateHeader(nullptr, "retry-after",
+                                            &retry_after_header)) {
+        net::HttpUtil::ParseRetryAfterHeader(retry_after_header,
+                                             base::Time::Now(), &retry_after);
+      }
+      SetServerUnavailableFor(retry_after, frame_tree_node_id_);
+    }
+
     Fallback();
     return;
   }
@@ -163,6 +247,29 @@
   resource_response_ = base::MakeRefCounted<network::ResourceResponse>();
   resource_response_->head = head;
 
+  // If the URL we are redirecting to is the one we started at, we should
+  // fallback after checking headers for bypass instructions.
+  std::string original_url;
+  if (previews::ExtractOriginalURLFromLitePageRedirectURL(previews_url_,
+                                                          &original_url) &&
+      GURL(original_url) == redirect_info.new_url) {
+    const net::HttpResponseHeaders* response_headers = head.headers.get();
+
+    std::string chrome_proxy_header;
+    bool blacklist_host =
+        response_headers &&
+        response_headers->EnumerateHeader(
+            nullptr, data_reduction_proxy::chrome_proxy_header(),
+            &chrome_proxy_header) &&
+        chrome_proxy_header.find("host-blacklisted") != std::string::npos;
+
+    if (blacklist_host)
+      BlacklistBypassedHost(GURL(original_url).host(), kBlacklistDuration,
+                            frame_tree_node_id_);
+    Fallback();
+    return;
+  }
+
   std::move(result_callback_)
       .Run(ServingLoaderResult::kRedirect, redirect_info, resource_response_);
 }
diff --git a/chrome/browser/previews/previews_lite_page_serving_url_loader.h b/chrome/browser/previews/previews_lite_page_serving_url_loader.h
index ccdcacd..48038e27 100644
--- a/chrome/browser/previews/previews_lite_page_serving_url_loader.h
+++ b/chrome/browser/previews/previews_lite_page_serving_url_loader.h
@@ -114,6 +114,13 @@
   // network URL Loader calls are paused.
   scoped_refptr<network::ResourceResponse> resource_response_;
 
+  // The frame tree node id associated with the request. Used to get the
+  // BrowserContext on the UI thread for the request.
+  int frame_tree_node_id_ = 0;
+
+  // The previews URL that is being requested.
+  GURL previews_url_;
+
   // Forwarding client binding.
   mojo::Binding<network::mojom::URLLoader> binding_;
   network::mojom::URLLoaderClientPtr forwarding_client_;
diff --git a/chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc b/chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc
index b7930495a..9cfac795 100644
--- a/chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc
+++ b/chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc
@@ -9,13 +9,14 @@
 
 #include "base/bind.h"
 #include "base/optional.h"
+#include "base/run_loop.h"
 #include "base/test/metrics/histogram_tester.h"
-#include "base/test/scoped_task_environment.h"
 #include "chrome/browser/previews/previews_lite_page_navigation_throttle.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/url_loader_request_interceptor.h"
 #include "content/public/common/previews_state.h"
 #include "content/public/common/resource_type.h"
+#include "content/public/test/test_browser_thread_bundle.h"
 #include "net/http/http_status_code.h"
 #include "net/url_request/url_request_status.h"
 #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
@@ -30,7 +31,8 @@
 class PreviewsLitePageURLLoaderInterceptorTest : public testing::Test {
  public:
   PreviewsLitePageURLLoaderInterceptorTest()
-      : shared_factory_(
+      : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
+        shared_factory_(
             base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
                 &test_url_loader_factory_)) {}
   ~PreviewsLitePageURLLoaderInterceptorTest() override {}
@@ -67,7 +69,7 @@
   PreviewsLitePageURLLoaderInterceptor& interceptor() { return *interceptor_; }
 
  protected:
-  base::test::ScopedTaskEnvironment scoped_task_environment_;
+  content::TestBrowserThreadBundle thread_bundle_;
 
  private:
   base::Optional<bool> callback_was_empty_;
@@ -100,7 +102,7 @@
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", false, 1);
 
-  scoped_task_environment_.RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(callback_was_empty().has_value());
   EXPECT_TRUE(callback_was_empty().value());
@@ -121,7 +123,7 @@
   histogram_tester.ExpectTotalCount(
       "Previews.ServerLitePage.URLLoader.Attempted", 2);
 
-  scoped_task_environment_.RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(callback_was_empty().has_value());
   EXPECT_FALSE(callback_was_empty().value());
@@ -146,7 +148,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
-  scoped_task_environment_.RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(callback_was_empty().has_value());
   EXPECT_TRUE(callback_was_empty().value());
 }
@@ -171,7 +173,7 @@
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
-  scoped_task_environment_.RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
 
   EXPECT_TRUE(callback_was_empty().has_value());
   EXPECT_TRUE(callback_was_empty().value());
@@ -197,7 +199,7 @@
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
 
-  scoped_task_environment_.RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(callback_was_empty().has_value());
   EXPECT_TRUE(callback_was_empty().value());
 }
@@ -221,7 +223,7 @@
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
 
-  scoped_task_environment_.RunUntilIdle();
+  base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(callback_was_empty().has_value());
   EXPECT_TRUE(callback_was_empty().value());
 }
diff --git a/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc b/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc
index e98dd233..d87116e6 100644
--- a/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc
+++ b/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc
@@ -136,10 +136,7 @@
   // processed before returning.
   void ProcessHintsComponent(
       const optimization_guide::HintsComponentInfo& component_info) {
-    g_browser_process->optimization_guide_service()->MaybeUpdateHintsComponent(
-        component_info);
-
-    // Wait for hint update processing to complete.
+    // Register a QuitClosure for when the next hint update is started below.
     base::RunLoop run_loop;
     PreviewsServiceFactory::GetForProfile(
         Profile::FromBrowserContext(browser()
@@ -150,6 +147,9 @@
         ->previews_decider_impl()
         ->previews_opt_guide()
         ->ListenForNextUpdateForTesting(run_loop.QuitClosure());
+
+    g_browser_process->optimization_guide_service()->MaybeUpdateHintsComponent(
+        component_info);
     run_loop.Run();
   }
 
diff --git a/chrome/browser/resources/bookmarks/dnd_manager.js b/chrome/browser/resources/bookmarks/dnd_manager.js
index a859b99..3c1c4faf 100644
--- a/chrome/browser/resources/bookmarks/dnd_manager.js
+++ b/chrome/browser/resources/bookmarks/dnd_manager.js
@@ -422,6 +422,11 @@
      * @param {!Event} e
      */
     onDrop_(e) {
+      // Allow normal DND on text inputs.
+      if (e.path[0].tagName == 'INPUT') {
+        return;
+      }
+
       e.preventDefault();
 
       if (this.dropDestination_) {
@@ -454,10 +459,6 @@
      * @param {Event} e
      */
     onDragOver_(e) {
-      // The default operation is to allow dropping links etc to do
-      // navigation. We never want to do that for the bookmark manager.
-      e.preventDefault();
-
       this.dropDestination_ = null;
 
       // Allow normal DND on text inputs.
@@ -465,6 +466,10 @@
         return;
       }
 
+      // The default operation is to allow dropping links etc to do
+      // navigation. We never want to do that for the bookmark manager.
+      e.preventDefault();
+
       if (!this.dragInfo_.isDragValid()) {
         return;
       }
diff --git a/chrome/browser/resources/chromeos/camera/src/js/main.js b/chrome/browser/resources/chromeos/camera/src/js/main.js
index 2ac45ba..d799717f 100644
--- a/chrome/browser/resources/chromeos/camera/src/js/main.js
+++ b/chrome/browser/resources/chromeos/camera/src/js/main.js
@@ -129,14 +129,15 @@
  * Starts the app by loading the model and opening the camera-view.
  */
 cca.App.prototype.start = function() {
+  var ackMigrate = false;
   cca.models.FileSystem.initialize(() => {
     // Prompt to migrate pictures if needed.
     var message = chrome.i18n.getMessage('migrate_pictures_msg');
     return cca.nav.open('dialog', message, false).then((acked) => {
-      cca.state.set('migrate-prompted', true);
       if (!acked) {
         throw new Error('no-migrate');
       }
+      ackMigrate = true;
     });
   }).then((external) => {
     cca.state.set('ext-fs', external);
@@ -154,7 +155,7 @@
     }
     cca.nav.open('warning', 'filesystem-failure');
   }).finally(() => {
-    cca.metrics.log(cca.metrics.Type.LAUNCH);
+    cca.metrics.log(cca.metrics.Type.LAUNCH, ackMigrate);
   });
 };
 
diff --git a/chrome/browser/resources/chromeos/camera/src/js/metrics.js b/chrome/browser/resources/chromeos/camera/src/js/metrics.js
index 400e4991..da60149 100644
--- a/chrome/browser/resources/chromeos/camera/src/js/metrics.js
+++ b/chrome/browser/resources/chromeos/camera/src/js/metrics.js
@@ -22,12 +22,26 @@
 cca.metrics.base_ = null;
 
 /**
+ * @type {analytics}
+ */
+var analytics = window['analytics'] || {};
+
+/**
+ * Fixes analytics.EventBuilder's dimension() method.
+ * @param {number} i
+ * @param {string} v
+ * @return {analytics.EventBuilder}
+ */
+analytics.EventBuilder.prototype.dimen = function(i, v) {
+  return this.dimension({index: i, value: v});
+};
+
+/**
  * Promise for Google Analytics tracker.
  * @type {Promise<analytics.Tracker>}
  * @private
  */
 cca.metrics.ga_ = (function() {
-  const analytics = window['analytics'] || {};
   const id = 'UA-134822711-2';  // TODO(yuli): Use prod id.
   const service = analytics.getService('chrome-camera-app');
 
@@ -55,7 +69,7 @@
       var match = navigator.appVersion.match(/CrOS\s+\S+\s+([\d.]+)/);
       var osVer = match ? match[1] : '';
       cca.metrics.base_ = analytics.EventBuilder.builder()
-          .dimension(1, boardName).dimension(2, osVer);
+          .dimen(1, boardName).dimen(2, osVer);
     });
   };
 
@@ -67,23 +81,39 @@
 })();
 
 /**
- * Tries to fetch the given states and returns the first existing state.
- * @param {Array<string>} states States to be fetched.
- * @return {string} The first existing state among the given states.
- * @private
- */
-cca.metrics.state_ = function(states) {
-  return states.find((state) => cca.state.get(state)) || '';
-};
-
-/**
  * Returns event builder for the metrics type: launch.
+ * @param {boolean} ackMigrate Whether acknowledged to migrate during launch.
  * @return {analytics.EventBuilder}
  * @private
  */
-cca.metrics.launchType_ = function() {
-  return cca.metrics.base_.category('launch').action('launch-app')
-      .label(cca.metrics.state_(['migrate-prompted']));
+cca.metrics.launchType_ = function(ackMigrate) {
+  return cca.metrics.base_.category('launch').action('start')
+      .label(ackMigrate ? 'ack-migrate' : '');
+};
+
+/**
+ * Returns event builder for the metrics type: capture.
+ * @param {number=} time Time in minutes for capture-video.
+ * @return {analytics.EventBuilder}
+ * @private
+ */
+cca.metrics.captureType_ = function(time) {
+  var condState = (states, cond) => {
+    // Return the first existing state among the given states only if there is
+    // no gate condition or the condition is met.
+    const prerequisite = !cond || cca.state.get(cond);
+    return prerequisite && states.find((state) => cca.state.get(state)) || '';
+  };
+
+  return cca.metrics.base_.category('capture')
+      .action(cca.state.get('record-mode') ? 'capture-video' : 'capture-photo')
+      .label('')  // TODO(yuli): Add camera facing-mode.
+      .dimen(3, condState(['sound']))
+      .dimen(4, condState(['mirror']))
+      .dimen(5, condState(['_3x3', '_4x4', 'golden'], 'grid'))
+      .dimen(6, condState(['_3sec', '_10sec'], 'timer'))
+      .dimen(7, condState(['mic'], 'record-mode'))
+      .value(time || 0);
 };
 
 /**
@@ -92,6 +122,7 @@
  */
 cca.metrics.Type = {
   LAUNCH: cca.metrics.launchType_,
+  CAPTURE: cca.metrics.captureType_,
 };
 
 /**
diff --git a/chrome/browser/resources/chromeos/camera/src/js/sound.js b/chrome/browser/resources/chromeos/camera/src/js/sound.js
index a1cf01d..21f7084 100644
--- a/chrome/browser/resources/chromeos/camera/src/js/sound.js
+++ b/chrome/browser/resources/chromeos/camera/src/js/sound.js
@@ -17,12 +17,24 @@
 /**
  * Plays a sound.
  * @param {string} selector Selector of the sound.
- * @return {boolean} Whether the sound should be played.
+ * @return {Promise} Promise for waiting finishing playing or canceling wait.
  */
 cca.sound.play = function(selector) {
+  // Use a timeout to wait for sound finishing playing instead of end-event
+  // as it might not be played at all (crbug.com/135780).
   // TODO(yuli): Don't play sounds if the speaker settings is muted.
-  var element = document.querySelector(selector);
-  element.currentTime = 0;
-  element.play();
-  return true;
+  var cancel;
+  var p = new Promise((resolve, reject) => {
+    var element = document.querySelector(selector);
+    var timeout =
+        setTimeout(resolve, parseInt(element.dataset.timeout || 0), 10);
+    cancel = () => {
+      clearTimeout(timeout);
+      reject();
+    };
+    element.currentTime = 0;
+    element.play();
+  });
+  p.cancel = cancel;
+  return p;
 };
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera.js
index 78eff316..19b2104 100644
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera.js
+++ b/chrome/browser/resources/chromeos/camera/src/js/views/camera.js
@@ -105,11 +105,11 @@
   this.started_ = null;
 
   /**
-   * Timeout for a take of photo or recording.
-   * @type {?number}
+   * Promise for play sound delay.
+   * @type {?Promise}
    * @private
    */
-  this.takeTimeout_ = null;
+  this.deferred_capture_ = null;
 
   /**
    * Promise for the current take of photo or recording.
@@ -231,23 +231,24 @@
   cca.views.camera.timertick.start().then(() => {
     // Play a sound before starting to record and delay the take to avoid the
     // sound being recorded if necessary.
-    var delay =
-        (this.recordMode && cca.sound.play('#sound-rec-start')) ? 250 : 0;
-    this.takeTimeout_ = setTimeout(() => {
-      if (this.recordMode) {
-        // Take of recording will be ended by another shutter click.
-        this.take_ = this.createRecordingBlob_().catch((error) => {
-          cca.toast.show('error_msg_empty_recording');
-          throw error;
-        });
-      } else {
-        this.take_ = this.createPhotoBlob_().catch((error) => {
-          cca.toast.show('error_msg_take_photo_failed');
-          throw error;
-        });
-        this.endTake_();
-      }
-    }, delay);
+    this.deferred_capture_ =
+        this.recordMode ? cca.sound.play('#sound-rec-start') : null;
+    return this.deferred_capture_ &&
+        this.deferred_capture_.finally(() => this.deferred_capture_ = null);
+  }).then(() => {
+    if (this.recordMode) {
+      // Take of recording will be ended by another shutter click.
+      this.take_ = this.createRecordingBlob_().catch((error) => {
+        cca.toast.show('error_msg_empty_recording');
+        throw error;
+      });
+    } else {
+      this.take_ = this.createPhotoBlob_().catch((error) => {
+        cca.toast.show('error_msg_take_photo_failed');
+        throw error;
+      });
+      this.endTake_();
+    }
   }).catch(() => {});
 };
 
@@ -258,9 +259,8 @@
  */
 cca.views.Camera.prototype.endTake_ = function() {
   cca.views.camera.timertick.cancel();
-  if (this.takeTimeout_) {
-    clearTimeout(this.takeTimeout_);
-    this.takeTimeout_ = null;
+  if (this.deferred_capture_ && this.deferred_capture_.cancel) {
+    this.deferred_capture_.cancel();
   }
   if (this.mediaRecorder_ && this.mediaRecorder_.state == 'recording') {
     this.mediaRecorder_.stop();
@@ -269,6 +269,7 @@
   return Promise.resolve(this.take_).then((blob) => {
     if (blob && !blob.handled) {
       // Play a sound and save the result after a successful take.
+      cca.metrics.log(cca.metrics.Type.CAPTURE);
       blob.handled = true;
       var recordMode = this.recordMode;
       cca.sound.play(recordMode ? '#sound-rec-end' : '#sound-shutter');
diff --git a/chrome/browser/resources/chromeos/camera/src/manifest.json b/chrome/browser/resources/chromeos/camera/src/manifest.json
index 5805518..a82dc1ab 100644
--- a/chrome/browser/resources/chromeos/camera/src/manifest.json
+++ b/chrome/browser/resources/chromeos/camera/src/manifest.json
@@ -3,7 +3,7 @@
   "manifest_version": 2,
   "name": "__MSG_name__",
   "description": "__MSG_description__",
-  "version": "5.2.6",
+  "version": "5.4.0",
   "default_locale": "en",
   "minimum_chrome_version": "60.0.0.0",
   "icons": {
diff --git a/chrome/browser/resources/chromeos/camera/src/views/main.html b/chrome/browser/resources/chromeos/camera/src/views/main.html
index 488092a..5bc98164 100644
--- a/chrome/browser/resources/chromeos/camera/src/views/main.html
+++ b/chrome/browser/resources/chromeos/camera/src/views/main.html
@@ -35,7 +35,7 @@
     <script src="../js/nav.js"></script>
     <script src="../js/main.js"></script>
   </head>
-  <body class="mirror mic _3x3">
+  <body class="sound mirror mic _3x3">
     <div id="camera">
       <div id="preview-wrapper" aria-hidden="true">
         <video id="preview-video"></video>
@@ -209,9 +209,9 @@
     </div>
     <div class="centered-overlay" id="toast" aria-live="polite"></div>
     <div id="tooltip" aria-hidden="true"></div>
-    <audio id="sound-tick" src="../sounds/tick.ogg">
-    <audio id="sound-shutter" src="../sounds/shutter.ogg">
-    <audio id="sound-rec-start" src="../sounds/record_start.ogg">
-    <audio id="sound-rec-end" src="../sounds/record_end.ogg">
+    <audio id="sound-tick" src="../sounds/tick.ogg" data-timeout="200">
+    <audio id="sound-shutter" src="../sounds/shutter.ogg" data-timeout="350">
+    <audio id="sound-rec-start" src="../sounds/record_start.ogg" data-timeout="200">
+    <audio id="sound-rec-end" src="../sounds/record_end.ogg" data-timeout="450">
   </body>
 </html>
diff --git a/chrome/browser/resources/local_ntp/custom_backgrounds.css b/chrome/browser/resources/local_ntp/custom_backgrounds.css
index 07dc7084..0aa1fec 100644
--- a/chrome/browser/resources/local_ntp/custom_backgrounds.css
+++ b/chrome/browser/resources/local_ntp/custom_backgrounds.css
@@ -18,12 +18,40 @@
 }
 
 #edit-bg {
-  border-radius: 8px;
+  align-items: center;
+  border-radius: 500px;
   bottom: 16px;
-  height: 28px;
+  display: flex;
+  height: 32px;
+  justify-content: center;
+  min-width: 32px;
   position: fixed;
   right: 16px;
-  width: 28px;
+  width: fit-content;
+}
+
+#edit-bg.ep-enhanced {
+  background-color: rgb(255, 255, 255);
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.23);
+  cursor: pointer;
+}
+
+#edit-bg:hover,
+#edit-bg:active {
+  background-color: rgba(255, 255, 255, .1);
+}
+
+#edit-bg:hover.ep-enhanced {
+  background-color: rgb(var( --GB050-rgb));
+}
+
+
+html[darkmode=true] #edit-bg.ep-enhanced {
+  background-color: rgb(41, 42, 45);
+}
+
+html[darkmode=true] #edit-bg:hover.ep-enhanced {
+  background-color: rgb(50, 51, 54);
 }
 
 html[dir=rtl] #edit-bg {
@@ -31,37 +59,41 @@
   right: auto;
 }
 
-#edit-bg:hover {
-  background-color: rgba(var(--GG900-rgb), .1);
-}
-
-#edit-bg:active {
-  background-color: rgba(var(--GG900-rgb), .16);
-}
-
-.non-white-bg #edit-bg:hover {
-  background-color: rgba(255, 255, 255, .1);
-}
-
-.non-white-bg #edit-bg:active {
-  background-color: rgba(255, 255, 255, .16);
-}
-
-.using-mouse-nav .bg-option:focus {
-  outline: none;
-}
-
-#edit-bg-gear {
-  background: url(../../../../ui/webui/resources/images/icon_settings.svg) no-repeat center;
-  background-size: 16px 16px;
+#edit-bg-icon {
+  -webkit-mask-image: url(icons/icon_pencil.svg);
+  -webkit-mask-position-x: center;
+  -webkit-mask-position-y: center;
+  -webkit-mask-repeat: no-repeat;
+  -webkit-mask-size: 16px;
+  background-color: rgb(255, 255, 255);
   cursor: pointer;
-  height: 100%;
-  width: 100%;
+  height: 16px;
+  margin-inline-start: 0;
+  width: 16px;
 }
 
-.non-white-bg #edit-bg-gear {
-  background: url(../../../../ui/webui/resources/images/icon_settings_white.svg) no-repeat center;
-  background-size: 16px 16px;
+.ep-enhanced #edit-bg-icon {
+  background-color: rgb(var(--GB600-rgb));
+  margin-inline-start: 12px;
+}
+
+html[darkmode=true] .ep-enhanced #edit-bg-icon {
+  background-color: rgb(var(--GB300-rgb));
+}
+
+#edit-bg-text {
+  display: none;
+}
+
+.ep-enhanced #edit-bg-text {
+  color: rgb(var(--GB600-rgb));
+  display: inline;
+  padding-inline-end: 12px;
+  padding-inline-start: 8px;
+}
+
+html[darkmode=true] .ep-enhanced #edit-bg-text {
+  color: rgb(var(--GB300-rgb));
 }
 
 #edit-bg-dialog::backdrop {
@@ -114,6 +146,10 @@
   color: rgb(var(--GG200-rgb));
 }
 
+.using-mouse-nav .bg-option:focus {
+  outline: none;
+}
+
 .bg-option {
   color: rgb(var(--GG800-rgb));
   font-family: 'Roboto', arial, sans-serif;
diff --git a/chrome/browser/resources/local_ntp/custom_backgrounds.js b/chrome/browser/resources/local_ntp/custom_backgrounds.js
index 46d7838..613019b 100644
--- a/chrome/browser/resources/local_ntp/custom_backgrounds.js
+++ b/chrome/browser/resources/local_ntp/custom_backgrounds.js
@@ -81,8 +81,9 @@
   EDIT_BG: 'edit-bg',
   EDIT_BG_DIALOG: 'edit-bg-dialog',
   EDIT_BG_DIVIDER: 'edit-bg-divider',
-  EDIT_BG_GEAR: 'edit-bg-gear',
+  EDIT_BG_ICON: 'edit-bg-icon',
   EDIT_BG_MENU: 'edit-bg-menu',
+  EDIT_BG_TEXT: 'edit-bg-text',
   MSG_BOX: 'message-box',
   MSG_BOX_MSG: 'message-box-message',
   MSG_BOX_LINK: 'message-box-link',
@@ -115,6 +116,8 @@
   COLLECTION_TILE_BG: 'bg-sel-tile-bg',
   COLLECTION_TITLE: 'bg-sel-tile-title',  // Title of a background image
   DONE_AVAILABLE: 'done-available',
+  // Extended and elevated style for entry point.
+  ENTRY_POINT_ENHANCED: 'ep-enhanced',
   FLOAT_UP: 'float-up',
   HAS_LINK: 'has-link',
   HIDE_MSG_BOX: 'message-box-hide',
@@ -891,11 +894,11 @@
   $(customBackgrounds.IDS.OPTIONS_TITLE).textContent =
       configData.translatedStrings.customizeBackground;
 
-  $(customBackgrounds.IDS.EDIT_BG_GEAR)
+  $(customBackgrounds.IDS.EDIT_BG_ICON)
       .setAttribute(
           'aria-label', configData.translatedStrings.customizeThisPage);
 
-  $(customBackgrounds.IDS.EDIT_BG_GEAR)
+  $(customBackgrounds.IDS.EDIT_BG_ICON)
       .setAttribute('title', configData.translatedStrings.customizeBackground);
 
   // Edit gear icon interaction events.
diff --git a/chrome/browser/resources/local_ntp/icons/icon_pencil.svg b/chrome/browser/resources/local_ntp/icons/icon_pencil.svg
new file mode 100644
index 0000000..4cafc07
--- /dev/null
+++ b/chrome/browser/resources/local_ntp/icons/icon_pencil.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="#000000">
+    <path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/>
+    <path d="M0 0h24v24H0z" fill="none"/>
+</svg>
diff --git a/chrome/browser/resources/local_ntp/local_ntp.html b/chrome/browser/resources/local_ntp/local_ntp.html
index e5199ad..d5ab8c9 100644
--- a/chrome/browser/resources/local_ntp/local_ntp.html
+++ b/chrome/browser/resources/local_ntp/local_ntp.html
@@ -99,8 +99,9 @@
       </div>
     </div>
 
-    <div id="edit-bg" tabindex="0" hidden>
-      <div id="edit-bg-gear" tabindex="-1" role="button"></div>
+    <div id="edit-bg" tabindex="0" role="button" hidden>
+      <div id="edit-bg-icon"></div>
+      <span id="edit-bg-text"></span>
     </div>
 
     <div id="custom-bg-attr"></div>
diff --git a/chrome/browser/resources/local_ntp/local_ntp.js b/chrome/browser/resources/local_ntp/local_ntp.js
index 10905b7..6cdae98 100644
--- a/chrome/browser/resources/local_ntp/local_ntp.js
+++ b/chrome/browser/resources/local_ntp/local_ntp.js
@@ -424,6 +424,11 @@
   $(customBackgrounds.IDS.RESTORE_DEFAULT).tabIndex =
       (info.customBackgroundConfigured ? 0 : -1);
 
+  $(customBackgrounds.IDS.EDIT_BG)
+      .classList.toggle(
+          customBackgrounds.CLASSES.ENTRY_POINT_ENHANCED,
+          !info.customBackgroundConfigured);
+
   if (configData.isGooglePage) {
     // Hide the settings menu or individual options if the related features are
     // disabled.
@@ -1155,6 +1160,9 @@
     }
 
     doodles.init();
+
+    $(customBackgrounds.IDS.EDIT_BG_TEXT).textContent =
+        configData.translatedStrings.customizeButtonLabel;
   } else {
     document.body.classList.add(CLASSES.NON_GOOGLE_PAGE);
   }
diff --git a/chrome/browser/resources/offline_pages/offline_internals.html b/chrome/browser/resources/offline_pages/offline_internals.html
index 4f82ada..85c59c2 100644
--- a/chrome/browser/resources/offline_pages/offline_internals.html
+++ b/chrome/browser/resources/offline_pages/offline_internals.html
@@ -33,19 +33,13 @@
     <div>
       <button id="refresh-logs">Refresh Logs</button>
       <div>
-        Page Model Log: <span id="model-status"></span>
-        <button id="log-model-on">Enable</button>
-        <button id="log-model-off">Disable</button>
+        <input type="checkbox" id="model-checkbox">Page Model Log</input>
       </div>
       <div>
-        Request Queue Log: <span id="request-status"></span>
-        <button id="log-request-on">Enable</button>
-        <button id="log-request-off">Disable</button>
+        <input type="checkbox" id="request-checkbox">Request Queue Log</input>
       </div>
       <div>
-        Prefetching Log: <span id="prefetch-status"></span>
-        <button id="log-prefetch-on">Enable</button>
-        <button id="log-prefetch-off">Disable</button>
+        <input type="checkbox" id="prefetch-checkbox">Prefetching Log</input>
       </div>
       <ul id="logs"></ul>
     </div>
@@ -134,9 +128,9 @@
       </div>
     </div>
     <div>
-      Limitless prefetching: <span id="limitless-prefetching-status"></span>
-      <button id="limitless-prefetching-on">Enable</button>
-      <button id="limitless-prefetching-off">Disable</button>
+      <input type="checkbox" id="limitless-prefetching-checkbox">
+          Enable limitless prefetching
+      </input>
     </div>
     <div id="prefetch-actions-info" class="dump"></div>
   </body>
diff --git a/chrome/browser/resources/offline_pages/offline_internals.js b/chrome/browser/resources/offline_pages/offline_internals.js
index e5c919d..5f8596b 100644
--- a/chrome/browser/resources/offline_pages/offline_internals.js
+++ b/chrome/browser/resources/offline_pages/offline_internals.js
@@ -16,15 +16,6 @@
       offlineInternals.OfflineInternalsBrowserProxyImpl.getInstance();
 
   /**
-   * Helper to fill enabled labels based on boolean value.
-   * @param {boolean} enabled Whether the text should show on or off.
-   * @return {string}
-   */
-  function getTextLabel(enabled) {
-    return enabled ? 'On' : 'Off';
-  }
-
-  /**
    * Fill stored pages table.
    * @param {!Array<OfflinePage>} pages An array object representing
    *     stored offline pages.
@@ -113,7 +104,7 @@
       $('current-status').textContent = networkStatus;
     });
     browserProxy.getLimitlessPrefetchingEnabled().then(function(enabled) {
-      $('limitless-prefetching-status').textContent = getTextLabel(enabled);
+      $('limitless-prefetching-checkbox').checked = enabled;
     });
     refreshLog();
   }
@@ -189,10 +180,9 @@
    * @param {!IsLogging} logStatus Status of logging.
    */
   function updateLogStatus(logStatus) {
-    $('model-status').textContent = getTextLabel(logStatus.modelIsLogging);
-    $('request-status').textContent = getTextLabel(logStatus.queueIsLogging);
-    $('prefetch-status').textContent =
-        getTextLabel(logStatus.prefetchIsLogging);
+    $('model-checkbox').checked = logStatus.modelIsLogging;
+    $('request-checkbox').checked = logStatus.queueIsLogging;
+    $('prefetch-checkbox').checked = logStatus.prefetchIsLogging;
   }
 
   /**
@@ -230,44 +220,9 @@
   }
 
   function initialize() {
-    /**
-     * @param {boolean} enabled Whether to enable Logging. If the
-     * OfflinePageModlel does not exist in this context, the action is ignored.
-     */
-    function togglePageModelLog(enabled) {
-      browserProxy.setRecordPageModel(enabled);
-      $('model-status').textContent = getTextLabel(enabled);
-    }
-
-    /**
-     * @param {boolean} enabled Whether to enable Logging. If the
-     * OfflinePageModlel does not exist in this context, the action is ignored.
-     */
-    function toggleRequestQueueLog(enabled) {
-      browserProxy.setRecordRequestQueue(enabled);
-      $('request-status').textContent = getTextLabel(enabled);
-    }
-
-    /**
-     * @param {boolean} enabled Whether to enable Logging. If the
-     * OfflinePageModlel does not exist in this context, the action is ignored.
-     */
-    function togglePrefetchServiceLog(enabled) {
-      browserProxy.setRecordPrefetchService(enabled);
-      $('prefetch-status').textContent = getTextLabel(enabled);
-    }
-
-    /**
-     * @param {boolean} enabled Whether to enable limitless prefetching.
-     */
-    function toggleLimitlessPrefetching(enabled) {
-      browserProxy.setLimitlessPrefetchingEnabled(enabled);
-      $('limitless-prefetching-status').textContent = getTextLabel(enabled);
-    }
-
     const incognito = loadTimeData.getBoolean('isIncognito');
-    ['delete-selected-pages', 'delete-selected-requests', 'log-model-on',
-     'log-model-off', 'log-request-on', 'log-request-off', 'refresh']
+    ['delete-selected-pages', 'delete-selected-requests', 'model-checkbox',
+     'request-checkbox', 'refresh']
         .forEach(el => $(el).disabled = incognito);
 
     $('delete-selected-pages').onclick = function() {
@@ -282,12 +237,15 @@
     $('dump').onclick = dumpAsJson;
     $('close-dump').onclick = closeDump;
     $('copy-to-clipboard').onclick = copyDump;
-    $('log-model-on').onclick = togglePageModelLog.bind(this, true);
-    $('log-model-off').onclick = togglePageModelLog.bind(this, false);
-    $('log-request-on').onclick = toggleRequestQueueLog.bind(this, true);
-    $('log-request-off').onclick = toggleRequestQueueLog.bind(this, false);
-    $('log-prefetch-on').onclick = togglePrefetchServiceLog.bind(this, true);
-    $('log-prefetch-off').onclick = togglePrefetchServiceLog.bind(this, false);
+    $('model-checkbox').onchange = (evt) => {
+      browserProxy.setRecordPageModel(evt.target.checked);
+    };
+    $('request-checkbox').onchange = (evt) => {
+      browserProxy.setRecordRequestQueue(evt.target.checked);
+    };
+    $('prefetch-checkbox').onchange = (evt) => {
+      browserProxy.setRecordPrefetchService(evt.target.checked);
+    };
     $('refresh-logs').onclick = refreshLog;
     $('add-to-queue').onclick = function() {
       const saveUrls = $('url').value.split(',');
@@ -342,10 +300,9 @@
     $('toggle-all-requests').onclick = function() {
       toggleAllCheckboxes($('toggle-all-requests'), 'requests');
     };
-    $('limitless-prefetching-on').onclick =
-        toggleLimitlessPrefetching.bind(null, true);
-    $('limitless-prefetching-off').onclick =
-        toggleLimitlessPrefetching.bind(null, false);
+    $('limitless-prefetching-checkbox').onchange = (evt) => {
+      browserProxy.setLimitlessPrefetchingEnabled(evt.target.checked);
+    };
     if (!incognito) {
       refreshAll();
     }
diff --git a/chrome/browser/search/local_ntp_source.cc b/chrome/browser/search/local_ntp_source.cc
index f958a07..2270175b 100644
--- a/chrome/browser/search/local_ntp_source.cc
+++ b/chrome/browser/search/local_ntp_source.cc
@@ -190,6 +190,8 @@
               IDS_GOOGLE_SEARCH_BOX_EMPTY_HINT_MD);
 
     // Custom Backgrounds
+    AddString(translated_strings.get(), "customizeButtonLabel",
+              IDS_NTP_CUSTOMIZE_BUTTON_LABEL);
     AddString(translated_strings.get(), "customizeBackground",
               IDS_NTP_CUSTOM_BG_CUSTOMIZE_BACKGROUND);
     AddString(translated_strings.get(), "connectGooglePhotos",
diff --git a/chrome/browser/signin/identity_test_environment_profile_adaptor.cc b/chrome/browser/signin/identity_test_environment_profile_adaptor.cc
index b565582..e81af9ae 100644
--- a/chrome/browser/signin/identity_test_environment_profile_adaptor.cc
+++ b/chrome/browser/signin/identity_test_environment_profile_adaptor.cc
@@ -25,7 +25,7 @@
   Profile* profile = static_cast<Profile*>(context);
   std::unique_ptr<SigninManagerBase> manager =
 #if defined(OS_CHROMEOS)
-      std::make_unique<FakeSigninManagerBase>(
+      std::make_unique<SigninManagerBase>(
           ChromeSigninClientFactory::GetForProfile(profile),
           ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
           AccountTrackerServiceFactory::GetForProfile(profile));
@@ -150,8 +150,7 @@
           static_cast<FakeProfileOAuth2TokenService*>(
               ProfileOAuth2TokenServiceFactory::GetForProfile(profile)),
 #if defined(OS_CHROMEOS)
-          static_cast<FakeSigninManagerBase*>(
-              SigninManagerFactory::GetForProfile(profile)),
+          SigninManagerFactory::GetForProfile(profile),
 #else
           static_cast<FakeSigninManager*>(
               SigninManagerFactory::GetForProfile(profile)),
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.cc b/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.cc
index b16b080..c3a91c24 100644
--- a/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.cc
+++ b/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.cc
@@ -5,7 +5,6 @@
 #include "chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.h"
 
 #include <memory>
-#include <string>
 #include <utility>
 
 #include "ash/public/cpp/app_list/app_list_features.h"
@@ -15,7 +14,6 @@
 #include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
 #include "chrome/browser/ui/app_list/search/arc/arc_app_shortcut_search_result.h"
 #include "chrome/browser/ui/app_list/search/search_result_ranker/app_search_result_ranker.h"
-#include "chrome/browser/ui/app_list/search/search_result_ranker/ranking_item_util.h"
 #include "components/arc/arc_bridge_service.h"
 #include "components/arc/arc_service_manager.h"
 
@@ -56,19 +54,10 @@
           weak_ptr_factory_.GetWeakPtr()));
 }
 
-void ArcAppShortcutsSearchProvider::Train(const std::string& id,
-                                          RankingItemType type) {
-  if (type == RankingItemType::kArcAppShortcut && ranker_ != nullptr)
-    ranker_->Train(id);
-}
-
 void ArcAppShortcutsSearchProvider::OnGetAppShortcutGlobalQueryItems(
     std::vector<arc::mojom::AppShortcutItemPtr> shortcut_items) {
   const ArcAppListPrefs* arc_prefs = ArcAppListPrefs::Get(profile_);
   DCHECK(arc_prefs);
-  base::flat_map<std::string, float> ranker_scores;
-  if (app_list_features::IsAppSearchResultRankerEnabled() && ranker_ != nullptr)
-    ranker_scores = ranker_->Rank();
 
   SearchProvider::Results search_results;
   for (auto& item : shortcut_items) {
@@ -79,16 +68,16 @@
     // Ignore shortcuts for apps that are not present in the launcher.
     if (!app_info || !app_info->show_in_launcher)
       continue;
-    auto result = std::make_unique<ArcAppShortcutSearchResult>(
-        std::move(item), profile_, list_controller_);
-    // TODO(crbug.com/931149): update the formula for relevance scores.
-    // This formula should be updated in the same way as query-based
-    // app search results
-    const auto find_in_ranker = ranker_scores.find(result->id());
-    if (find_in_ranker != ranker_scores.end())
-      result->set_relevance(result->relevance() + find_in_ranker->second / 10);
-    search_results.emplace_back(std::move(result));
+    search_results.emplace_back(std::make_unique<ArcAppShortcutSearchResult>(
+        std::move(item), profile_, list_controller_));
+
+    if (app_list_features::IsAppSearchResultRankerEnabled() &&
+        ranker_ != nullptr) {
+      // TODO(crbug.com/931149): tweak the scores of each search result item
+      // using the ranker.
+    }
   }
+
   SwapResults(&search_results);
 }
 
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.h b/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.h
index 8b3b3914..af537a62 100644
--- a/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.h
+++ b/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.h
@@ -5,7 +5,6 @@
 #ifndef CHROME_BROWSER_UI_APP_LIST_SEARCH_ARC_ARC_APP_SHORTCUTS_SEARCH_PROVIDER_H_
 #define CHROME_BROWSER_UI_APP_LIST_SEARCH_ARC_ARC_APP_SHORTCUTS_SEARCH_PROVIDER_H_
 
-#include <string>
 #include <vector>
 
 #include "base/macros.h"
@@ -31,7 +30,6 @@
 
   // SearchProvider:
   void Start(const base::string16& query) override;
-  void Train(const std::string& id, RankingItemType type) override;
 
  private:
   void OnGetAppShortcutGlobalQueryItems(
@@ -40,6 +38,8 @@
   const int max_results_;
   Profile* const profile_;                            // Owned by ProfileInfo.
   AppListControllerDelegate* const list_controller_;  // Owned by AppListClient.
+  // TODO(crbug.com/931149): train this ranker on app shortcut clicks, and use
+  // it to tweak their relevance scores.
   AppSearchResultRanker* ranker_;
 
   base::WeakPtrFactory<ArcAppShortcutsSearchProvider> weak_ptr_factory_;
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider_unittest.cc
index 25ed7e5..da831c6 100644
--- a/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider_unittest.cc
+++ b/chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider_unittest.cc
@@ -17,7 +17,6 @@
 #include "chrome/browser/ui/app_list/arc/arc_app_test.h"
 #include "chrome/browser/ui/app_list/search/chrome_search_result.h"
 #include "chrome/browser/ui/app_list/search/search_result_ranker/app_search_result_ranker.h"
-#include "chrome/browser/ui/app_list/search/search_result_ranker/ranking_item_util.h"
 #include "chrome/browser/ui/app_list/test/test_app_list_controller_delegate.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -110,31 +109,6 @@
               base::UTF16ToUTF8(results[i]->title()));
     EXPECT_EQ(ash::SearchResultDisplayType::kTile, results[i]->display_type());
   }
-
-  // If ranker_ is nullptr, the program won't break
-  // TODO(crbug.com/931149): Add more tests to check ranker_ does have some
-  // effects
-  auto provider_null_ranker = std::make_unique<ArcAppShortcutsSearchProvider>(
-      kMaxResults, profile(), controller_.get(), nullptr);
-
-  EXPECT_TRUE(provider_null_ranker->results().empty());
-  arc::IconDecodeRequest::DisableSafeDecodingForTesting();
-
-  provider_null_ranker->Start(base::UTF8ToUTF16(kQuery));
-  provider_null_ranker->Train(
-      AddArcAppAndShortcut(
-          CreateAppInfo("FakeName", "FakeActivity", kFakeAppPackageName),
-          launchable),
-      RankingItemType::kArcAppShortcut);
-  const auto& results_null_ranker = provider_null_ranker->results();
-  EXPECT_EQ(kMaxResults, results_null_ranker.size());
-  // Verify search results.
-  for (size_t i = 0; i < results_null_ranker.size(); ++i) {
-    EXPECT_EQ(base::StringPrintf("ShortLabel %zu", i),
-              base::UTF16ToUTF8(results_null_ranker[i]->title()));
-    EXPECT_EQ(ash::SearchResultDisplayType::kTile,
-              results_null_ranker[i]->display_type());
-  }
 }
 
 INSTANTIATE_TEST_SUITE_P(, ArcAppShortcutsSearchProviderTest, testing::Bool());
diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc
index 98f12a70..fdc7883 100644
--- a/chrome/browser/ui/prefs/pref_watcher.cc
+++ b/chrome/browser/ui/prefs/pref_watcher.cc
@@ -93,9 +93,9 @@
   tab_helpers_.erase(helper);
 }
 
-void PrefWatcher::RegisterWatcherForWorkers(
-    blink::mojom::RendererPreferenceWatcherPtr worker_watcher) {
-  worker_watchers_.AddPtr(std::move(worker_watcher));
+void PrefWatcher::RegisterRendererPreferenceWatcher(
+    blink::mojom::RendererPreferenceWatcherPtr watcher) {
+  renderer_preference_watchers_.AddPtr(std::move(watcher));
 }
 
 void PrefWatcher::Shutdown() {
@@ -108,7 +108,7 @@
 
   blink::mojom::RendererPreferences prefs;
   renderer_preferences_util::UpdateFromSystemSettings(&prefs, profile_);
-  worker_watchers_.ForAllPtrs(
+  renderer_preference_watchers_.ForAllPtrs(
       [&prefs](blink::mojom::RendererPreferenceWatcher* watcher) {
         watcher->NotifyUpdate(prefs.Clone());
       });
diff --git a/chrome/browser/ui/prefs/pref_watcher.h b/chrome/browser/ui/prefs/pref_watcher.h
index ef3fde8..75a9399 100644
--- a/chrome/browser/ui/prefs/pref_watcher.h
+++ b/chrome/browser/ui/prefs/pref_watcher.h
@@ -16,7 +16,7 @@
 class PrefsTabHelper;
 
 // Watches updates in WebKitPreferences and blink::mojom::RendererPreferences,
-// and notifies tab helpers and watchers for workers of those updates.
+// and notifies tab helpers and registered watchers of those updates.
 class PrefWatcher : public KeyedService {
  public:
   explicit PrefWatcher(Profile* profile);
@@ -26,8 +26,8 @@
 
   void RegisterHelper(PrefsTabHelper* helper);
   void UnregisterHelper(PrefsTabHelper* helper);
-  void RegisterWatcherForWorkers(
-      blink::mojom::RendererPreferenceWatcherPtr worker_watcher);
+  void RegisterRendererPreferenceWatcher(
+      blink::mojom::RendererPreferenceWatcherPtr watcher);
 
  private:
   // KeyedService overrides:
@@ -43,9 +43,11 @@
   // blink::mojom::RendererPreferences.
   std::set<PrefsTabHelper*> tab_helpers_;
 
-  // |worker_watchers_| observe changes in blink::mojom::RendererPreferences.
+  // |renderer_preference_watchers_| observe changes in
+  // blink::mojom::RendererPreferences. If the consumer also wants to WebKit
+  // preference changes, use |tab_helpers_|.
   mojo::InterfacePtrSet<blink::mojom::RendererPreferenceWatcher>
-      worker_watchers_;
+      renderer_preference_watchers_;
 };
 
 class PrefWatcherFactory : public BrowserContextKeyedServiceFactory {
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
index c6e7a797d..45d2721 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
@@ -2257,11 +2257,11 @@
 
 // Tests that pressing F10 system key closes the menu.
 using BookmarkBarViewTest25F10 = BookmarkBarViewTest25<ui::VKEY_F10>;
-VIEW_TEST(BookmarkBarViewTest25F10, F10ClosesMenu);
+VIEW_TEST(BookmarkBarViewTest25F10, F10ClosesMenu)
 
 // Tests that pressing Alt system key closes the menu.
 using BookmarkBarViewTest25Alt = BookmarkBarViewTest25<ui::VKEY_MENU>;
-VIEW_TEST(BookmarkBarViewTest25Alt, AltClosesMenu);
+VIEW_TEST(BookmarkBarViewTest25Alt, AltClosesMenu)
 
 // Tests that WM_CANCELMODE closes the menu.
 class BookmarkBarViewTest26 : public BookmarkBarViewEventTestBase {
@@ -2304,7 +2304,7 @@
   }
 };
 
-VIEW_TEST(BookmarkBarViewTest26, CancelModeClosesMenu);
+VIEW_TEST(BookmarkBarViewTest26, CancelModeClosesMenu)
 #endif
 
 class BookmarkBarViewTest27 : public BookmarkBarViewEventTestBase {
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
index e2483158..4c33bfc 100644
--- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
@@ -73,34 +73,6 @@
   return close_button;
 }
 
-void GoBackToApp(content::WebContents* web_contents) {
-  Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
-  GURL launch_url = browser->hosted_app_controller()->GetAppLaunchURL();
-  content::NavigationController& controller = web_contents->GetController();
-  content::BrowserContext* context = web_contents->GetBrowserContext();
-
-  content::NavigationEntry* entry = nullptr;
-  int offset = 0;
-
-  // Go back until we find an in scope url, or run out of urls.
-  while ((entry = controller.GetEntryAtOffset(offset)) &&
-         !extensions::IsSameScope(entry->GetURL(), launch_url, context)) {
-    offset--;
-  }
-
-  // If there are no in scope urls, push the app's launch url and clear
-  // the history.
-  if (!entry) {
-    content::NavigationController::LoadURLParams load(launch_url);
-    load.should_clear_history_list = true;
-    controller.LoadURLWithParams(load);
-    return;
-  }
-
-  // Otherwise, go back to the first in scope url.
-  controller.GoToOffset(offset);
-}
-
 }  // namespace
 
 // Container view for laying out and rendering the title/origin of the current
@@ -318,5 +290,38 @@
 
 void CustomTabBarView::ButtonPressed(views::Button* sender,
                                      const ui::Event& event) {
-  GoBackToApp(GetWebContents());
+  GoBackToApp();
+}
+
+void CustomTabBarView::GoBackToAppForTesting() {
+  GoBackToApp();
+}
+
+void CustomTabBarView::GoBackToApp() {
+  content::WebContents* web_contents = GetWebContents();
+  Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
+  GURL launch_url = browser->hosted_app_controller()->GetAppLaunchURL();
+  content::NavigationController& controller = web_contents->GetController();
+  content::BrowserContext* context = web_contents->GetBrowserContext();
+
+  content::NavigationEntry* entry = nullptr;
+  int offset = 0;
+
+  // Go back until we find an in scope url, or run out of urls.
+  while ((entry = controller.GetEntryAtOffset(offset)) &&
+         !extensions::IsSameScope(launch_url, entry->GetURL(), context)) {
+    offset--;
+  }
+
+  // If there are no in scope urls, push the app's launch url and clear
+  // the history.
+  if (!entry) {
+    content::NavigationController::LoadURLParams load(launch_url);
+    load.should_clear_history_list = true;
+    controller.LoadURLWithParams(load);
+    return;
+  }
+
+  // Otherwise, go back to the first in scope url.
+  controller.GoToOffset(offset);
 }
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h
index 527c6eb..b209df4a 100644
--- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h
+++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h
@@ -70,8 +70,12 @@
   base::string16 title_for_testing() const { return last_title_; }
   base::string16 location_for_testing() const { return last_location_; }
   views::Button* close_button_for_testing() const { return close_button_; }
+  void GoBackToAppForTesting();
 
  private:
+  // Takes the web contents for the custom tab bar back to the app scope.
+  void GoBackToApp();
+
   SkColor title_bar_color_;
 
   base::string16 last_title_;
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
index 3e3cad3..6ae70b6b 100644
--- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
+++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
@@ -6,6 +6,7 @@
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "chrome/browser/ssl/chrome_mock_cert_verifier.h"
 #include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #include "chrome/common/chrome_features.h"
@@ -170,12 +171,16 @@
 
     DCHECK(app_browser_);
     DCHECK(app_browser_ != browser());
+
+    hosted_app_controller_ = app_browser_->hosted_app_controller();
+    DCHECK(hosted_app_controller_);
   }
 
   Browser* app_browser_;
   BrowserView* browser_view_;
   LocationBarView* location_bar_;
   CustomTabBarView* custom_tab_bar_;
+  extensions::HostedAppBrowserController* hosted_app_controller_;
 
   net::EmbeddedTestServer* https_server() { return &https_server_; }
 
@@ -280,6 +285,110 @@
             app_view->toolbar()->custom_tab_bar()->title_for_testing());
 }
 
+// Closing the CCT should take you back to the last in scope url.
+IN_PROC_BROWSER_TEST_F(CustomTabBarViewBrowserTest,
+                       OutOfScopeUrlShouldBeClosable) {
+  ASSERT_TRUE(https_server()->Start());
+
+  const GURL& app_url = https_server()->GetURL("app.com", "/ssl/google.html");
+  InstallPWA(app_url);
+
+  EXPECT_TRUE(app_browser_);
+
+  BrowserView* app_view = BrowserView::GetBrowserViewForBrowser(app_browser_);
+  auto* web_contents = app_view->GetActiveWebContents();
+  EXPECT_NE(app_view, browser_view_);
+
+  // Perform an inscope navigation.
+  const GURL& other_app_url =
+      https_server()->GetURL("app.com", "/ssl/blank_page.html");
+  NavigateAndWait(web_contents, other_app_url);
+  EXPECT_FALSE(hosted_app_controller_->ShouldShowToolbar());
+
+  // Navigate out of scope.
+  NavigateAndWait(web_contents, GURL("http://example.test/"));
+  EXPECT_TRUE(hosted_app_controller_->ShouldShowToolbar());
+
+  // Simulate clicking the close button and wait for navigation to finish.
+  content::TestNavigationObserver nav_observer(web_contents);
+  app_view->toolbar()->custom_tab_bar()->GoBackToAppForTesting();
+  nav_observer.Wait();
+
+  // The app should be on the last in scope url we visited.
+  EXPECT_EQ(other_app_url, web_contents->GetLastCommittedURL());
+}
+
+// Paths above the launch url should be out of scope and should be closable from
+// the CustomTabBar.
+IN_PROC_BROWSER_TEST_F(CustomTabBarViewBrowserTest,
+                       ScopeAboveLaunchURLShouldBeOutOfScopeAndClosable) {
+  ASSERT_TRUE(https_server()->Start());
+
+  const GURL& app_url = https_server()->GetURL("app.com", "/ssl/google.html");
+  InstallPWA(app_url);
+
+  EXPECT_TRUE(app_browser_);
+
+  BrowserView* app_view = BrowserView::GetBrowserViewForBrowser(app_browser_);
+  auto* web_contents = app_view->GetActiveWebContents();
+  EXPECT_NE(app_view, browser_view_);
+
+  // Navigate to a different page in the app scope, so we have something to come
+  // back to.
+  const GURL& other_app_url =
+      https_server()->GetURL("app.com", "/ssl/blank_page.html");
+  NavigateAndWait(web_contents, other_app_url);
+  EXPECT_FALSE(hosted_app_controller_->ShouldShowToolbar());
+
+  // Navigate above the scope of the app, on the same origin.
+  NavigateAndWait(web_contents, https_server()->GetURL(
+                                    "app.com", "/accessibility_fail.html"));
+  EXPECT_TRUE(hosted_app_controller_->ShouldShowToolbar());
+
+  // Simulate clicking the close button and wait for navigation to finish.
+  content::TestNavigationObserver nav_observer(web_contents);
+  app_view->toolbar()->custom_tab_bar()->GoBackToAppForTesting();
+  nav_observer.Wait();
+
+  // The app should be on the last in scope url we visited.
+  EXPECT_EQ(other_app_url, web_contents->GetLastCommittedURL());
+}
+
+// When there are no in scope urls to navigate back to, closing the custom tab
+// bar should navigate to the app's launch url.
+IN_PROC_BROWSER_TEST_F(
+    CustomTabBarViewBrowserTest,
+    WhenNoHistoryIsInScopeCloseShouldNavigateToAppLaunchURL) {
+  ASSERT_TRUE(https_server()->Start());
+
+  const GURL& app_url = https_server()->GetURL("app.com", "/ssl/google.html");
+  InstallPWA(app_url);
+
+  EXPECT_TRUE(app_browser_);
+
+  BrowserView* app_view = BrowserView::GetBrowserViewForBrowser(app_browser_);
+  auto* web_contents = app_view->GetActiveWebContents();
+  EXPECT_NE(app_view, browser_view_);
+
+  {
+    // Do a state replacing navigation, so we don't have any in scope urls in
+    // history.
+    content::TestNavigationObserver nav_observer(web_contents);
+    EXPECT_TRUE(content::ExecuteScript(
+        web_contents, "window.location.replace('http://example.com');"));
+    nav_observer.Wait();
+    EXPECT_TRUE(hosted_app_controller_->ShouldShowToolbar());
+  }
+  {
+    // Simulate clicking the close button and wait for navigation to finish.
+    content::TestNavigationObserver nav_observer(web_contents);
+    app_view->toolbar()->custom_tab_bar()->GoBackToAppForTesting();
+    nav_observer.Wait();
+  }
+  // The app should be on the last in scope url we visited.
+  EXPECT_EQ(app_url, web_contents->GetLastCommittedURL());
+}
+
 IN_PROC_BROWSER_TEST_F(CustomTabBarViewBrowserTest, URLsWithEmojiArePunyCoded) {
   ASSERT_TRUE(https_server()->Start());
 
diff --git a/chrome/browser/ui/webui/browsing_history_handler_unittest.cc b/chrome/browser/ui/webui/browsing_history_handler_unittest.cc
index b0310cb..0eb7e9d 100644
--- a/chrome/browser/ui/webui/browsing_history_handler_unittest.cc
+++ b/chrome/browser/ui/webui/browsing_history_handler_unittest.cc
@@ -18,13 +18,12 @@
 #include "base/values.h"
 #include "chrome/browser/history/web_history_service_factory.h"
 #include "chrome/browser/sync/profile_sync_service_factory.h"
-#include "chrome/browser/sync/profile_sync_test_util.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "chrome/test/base/testing_profile.h"
-#include "components/browser_sync/test_profile_sync_service.h"
 #include "components/history/core/browser/browsing_history_service.h"
 #include "components/history/core/test/fake_web_history_service.h"
 #include "components/sync/base/model_type.h"
+#include "components/sync/driver/test_sync_service.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/test_web_ui.h"
 #include "net/http/http_status_code.h"
@@ -50,37 +49,6 @@
   return out_time;
 }
 
-class TestSyncService : public browser_sync::TestProfileSyncService {
- public:
-  explicit TestSyncService(Profile* profile)
-      : browser_sync::TestProfileSyncService(
-            CreateProfileSyncServiceParamsForTest(profile)),
-        state_(TransportState::ACTIVE) {}
-
-  TransportState GetTransportState() const override { return state_; }
-
-  int GetDisableReasons() const override { return DISABLE_REASON_NONE; }
-
-  syncer::ModelTypeSet GetActiveDataTypes() const override {
-    return syncer::ModelTypeSet::All();
-  }
-
-  // Overridden to be empty, to prevent the Sync machinery from actually
-  // starting up (which would fail, since not everything is properly set up,
-  // e.g. we're missing an authenticated account).
-  void StartUpSlowEngineComponents() override {}
-
-  void SetTransportState(TransportState state) {
-    state_ = state;
-    NotifyObservers();
-  }
-
- private:
-  TransportState state_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestSyncService);
-};
-
 class BrowsingHistoryHandlerWithWebUIForTesting
     : public BrowsingHistoryHandler {
  public:
@@ -106,7 +74,7 @@
     ChromeRenderViewHostTestHarness::SetUp();
     profile()->CreateBookmarkModel(false);
 
-    sync_service_ = static_cast<TestSyncService*>(
+    sync_service_ = static_cast<syncer::TestSyncService*>(
         ProfileSyncServiceFactory::GetForProfile(profile()));
     web_history_service_ = static_cast<history::FakeWebHistoryService*>(
         WebHistoryServiceFactory::GetForProfile(profile()));
@@ -124,25 +92,21 @@
   content::BrowserContext* CreateBrowserContext() override {
     TestingProfile::Builder builder;
     builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
-                              base::BindRepeating(&BuildFakeSyncService));
+                              base::BindRepeating(&BuildTestSyncService));
     builder.AddTestingFactory(WebHistoryServiceFactory::GetInstance(),
                               base::BindRepeating(&BuildFakeWebHistoryService));
     return builder.Build().release();
   }
-  TestSyncService* sync_service() { return sync_service_; }
+  syncer::TestSyncService* sync_service() { return sync_service_; }
   history::WebHistoryService* web_history_service() {
     return web_history_service_;
   }
   content::TestWebUI* web_ui() { return web_ui_.get(); }
 
  private:
-  static std::unique_ptr<KeyedService> BuildFakeSyncService(
+  static std::unique_ptr<KeyedService> BuildTestSyncService(
       content::BrowserContext* context) {
-    auto service = std::make_unique<TestSyncService>(
-        static_cast<TestingProfile*>(context));
-    service->Initialize();
-    service->GetUserSettings()->SetFirstSetupComplete();
-    return service;
+    return std::make_unique<syncer::TestSyncService>();
   }
 
   static std::unique_ptr<KeyedService> BuildFakeWebHistoryService(
@@ -153,7 +117,7 @@
     return service;
   }
 
-  TestSyncService* sync_service_ = nullptr;
+  syncer::TestSyncService* sync_service_ = nullptr;
   history::FakeWebHistoryService* web_history_service_ = nullptr;
   std::unique_ptr<content::TestWebUI> web_ui_;
 };
@@ -188,6 +152,7 @@
     handler.RegisterMessages();
     sync_service()->SetTransportState(
         syncer::SyncService::TransportState::ACTIVE);
+    sync_service()->FireStateChanged();
 
     web_history_service()->ExpireHistoryBetween(
         std::set<GURL>(), base::Time(), base::Time::Max(), callback,
diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc
index 12702ef..7a04b20 100644
--- a/chrome/browser/ui/webui/favicon_source.cc
+++ b/chrome/browser/ui/webui/favicon_source.cc
@@ -23,6 +23,7 @@
 #include "ui/base/layout.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/webui/web_ui_util.h"
+#include "ui/native_theme/native_theme.h"
 #include "ui/resources/grit/ui_resources.h"
 
 FaviconSource::IconRequest::IconRequest()
@@ -175,6 +176,10 @@
   return false;
 }
 
+ui::NativeTheme* FaviconSource::GetNativeTheme() {
+  return ui::NativeTheme::GetInstanceForNativeUi();
+}
+
 void FaviconSource::OnFaviconDataAvailable(
     const IconRequest& request,
     const favicon_base::FaviconRawBitmapResult& bitmap_result) {
@@ -192,23 +197,24 @@
 }
 
 void FaviconSource::SendDefaultResponse(const IconRequest& icon_request) {
+  const bool dark = GetNativeTheme()->SystemDarkModeEnabled();
   int resource_id;
   switch (icon_request.size_in_dip) {
     case 64:
-      resource_id = IDR_DEFAULT_FAVICON_64;
+      resource_id = dark ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64;
       break;
     case 32:
-      resource_id = IDR_DEFAULT_FAVICON_32;
+      resource_id = dark ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32;
       break;
     default:
-      resource_id = IDR_DEFAULT_FAVICON;
+      resource_id = dark ? IDR_DEFAULT_FAVICON_DARK : IDR_DEFAULT_FAVICON;
       break;
   }
+  icon_request.callback.Run(LoadIconBytes(icon_request, resource_id));
+}
 
-  base::RefCountedMemory* default_favicon =
-      ui::ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale(
-          resource_id,
-          ui::GetSupportedScaleFactor(icon_request.device_scale_factor));
-
-  icon_request.callback.Run(default_favicon);
+base::RefCountedMemory* FaviconSource::LoadIconBytes(const IconRequest& request,
+                                                     int resource_id) {
+  return ui::ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale(
+      resource_id, ui::GetSupportedScaleFactor(request.device_scale_factor));
 }
diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/favicon_source.h
index 14e0faf3..53e8673 100644
--- a/chrome/browser/ui/webui/favicon_source.h
+++ b/chrome/browser/ui/webui/favicon_source.h
@@ -17,6 +17,14 @@
 
 class Profile;
 
+namespace base {
+class RefCountedMemory;
+}
+
+namespace ui {
+class NativeTheme;
+}
+
 // FaviconSource is the gateway between network-level chrome:
 // requests for favicons and the history backend that serves these.
 //
@@ -86,6 +94,11 @@
   // Returns true if the missing resource is found.
   virtual bool HandleMissingResource(const IconRequest& request);
 
+  // Exposed for testing.
+  virtual ui::NativeTheme* GetNativeTheme();
+  virtual base::RefCountedMemory* LoadIconBytes(const IconRequest& request,
+                                                int resource_id);
+
   Profile* profile_;
 
  private:
diff --git a/chrome/browser/ui/webui/favicon_source_unittest.cc b/chrome/browser/ui/webui/favicon_source_unittest.cc
new file mode 100644
index 0000000..d0d1b14
--- /dev/null
+++ b/chrome/browser/ui/webui/favicon_source_unittest.cc
@@ -0,0 +1,73 @@
+// 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/webui/favicon_source.h"
+
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/public/browser/resource_request_info.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/native_theme/test_native_theme.h"
+#include "ui/resources/grit/ui_resources.h"
+
+using GotDataCallback = content::URLDataSource::GotDataCallback;
+using WebContentsGetter = content::ResourceRequestInfo::WebContentsGetter;
+using testing::_;
+using testing::Return;
+using testing::ReturnArg;
+
+void Noop(scoped_refptr<base::RefCountedMemory>) {}
+
+class TestFaviconSource : public FaviconSource {
+ public:
+  TestFaviconSource(Profile* profile, ui::NativeTheme* theme)
+      : FaviconSource(profile), theme_(theme) {}
+
+  ~TestFaviconSource() override {}
+
+  MOCK_METHOD2(LoadIconBytes, base::RefCountedMemory*(const IconRequest&, int));
+
+ protected:
+  ui::NativeTheme* GetNativeTheme() override { return theme_; }
+
+ private:
+  ui::NativeTheme* const theme_;
+};
+
+class FaviconSourceTest : public testing::Test {
+ public:
+  FaviconSourceTest() : source_(&profile_, &theme_) {}
+
+  void SetDarkMode(bool dark_mode) { theme_.SetDarkMode(dark_mode); }
+
+  TestFaviconSource* source() { return &source_; }
+
+ private:
+  content::TestBrowserThreadBundle thread_bundle_;
+  ui::TestNativeTheme theme_;
+  TestingProfile profile_;
+  TestFaviconSource source_;
+};
+
+TEST_F(FaviconSourceTest, DarkDefault) {
+  SetDarkMode(true);
+
+  auto bytes = base::MakeRefCounted<base::RefCountedBytes>(1);
+  EXPECT_CALL(*source(), LoadIconBytes(_, IDR_DEFAULT_FAVICON_DARK))
+      .WillOnce(Return(bytes.get()));
+  source()->StartDataRequest(std::string(), WebContentsGetter(),
+                             base::BindRepeating(&Noop));
+}
+
+TEST_F(FaviconSourceTest, LightDefault) {
+  SetDarkMode(false);
+
+  auto bytes = base::MakeRefCounted<base::RefCountedBytes>(1);
+  EXPECT_CALL(*source(), LoadIconBytes(_, IDR_DEFAULT_FAVICON))
+      .WillOnce(Return(bytes.get()));
+  source()->StartDataRequest(std::string(), WebContentsGetter(),
+                             base::BindRepeating(&Noop));
+}
diff --git a/chrome/browser/ui/webui/settings/about_handler.cc b/chrome/browser/ui/webui/settings/about_handler.cc
index 31eabcc..3bb9116 100644
--- a/chrome/browser/ui/webui/settings/about_handler.cc
+++ b/chrome/browser/ui/webui/settings/about_handler.cc
@@ -80,8 +80,8 @@
 
 #if defined(OS_CHROMEOS)
 
-// The default directory containing the regulatory labels for
-// supported regions, relative to chromeos-assets directory
+// The directory containing the regulatory labels for supported
+// models/regions, relative to chromeos-assets directory
 const char kRegulatoryLabelsDirectory[] = "regulatory_labels";
 
 // File names of the image file and the file containing alt text for the label.
@@ -165,30 +165,31 @@
   return service && service->IsOwner();
 }
 
-// Returns the absolute path to the directory of regulatory labels
-// for a given region, if found.
-// (e.g. "/usr/share/chromeos-assets/regulatory_labels/us".)
-// Must be called from the blocking pool.
+// Returns the relative path under the chromeos-assets dir
+// to the directory of regulatory labels for a given region, if found
+// (e.g. "regulatory_labels/us"). Must be called from the blocking pool.
 base::FilePath GetRegulatoryLabelDirForRegion(const std::string& region) {
-  // Allow the regulatory label path to be overriden by a flag.
-  base::FilePath base_dir =
-      base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
+  base::FilePath region_path(kRegulatoryLabelsDirectory);
+  const std::string model_subdir =
+      base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
           chromeos::switches::kRegulatoryLabelDir);
-  if (base_dir.empty()) {
-    base_dir = base::FilePath(chrome::kChromeOSAssetPath)
-                   .Append(kRegulatoryLabelsDirectory);
+  if (!model_subdir.empty()) {
+    region_path = region_path.AppendASCII(model_subdir);
   }
-  const base::FilePath region_dir = base_dir.AppendASCII(region);
-  const base::FilePath image_path =
-      region_dir.AppendASCII(kRegulatoryLabelImageFilename);
+  region_path = region_path.AppendASCII(region);
 
-  // Check if the label image file exists in the path.
-  return base::PathExists(image_path) ? region_dir : base::FilePath();
+  // Check if the label image file exists in the full path, e.g.,
+  // "/usr/share/chromeos-assets/regulatory_labels/us/label.png".
+  const base::FilePath image_path =
+      base::FilePath(chrome::kChromeOSAssetPath)
+          .Append(region_path)
+          .AppendASCII(kRegulatoryLabelImageFilename);
+  return base::PathExists(image_path) ? region_path : base::FilePath();
 }
 
-// Finds the absolute path to the directory of regulatory labels,
-// using the VPD region code. Also tries "us" as a fallback region.
-// Must be called from the blocking pool.
+// Finds the relative path under the chromeos-assets dir to the region
+// subdirectory of regulatory labels, using the VPD region code. Also
+// tries "us" as a fallback region. Must be called from the blocking pool.
 base::FilePath FindRegulatoryLabelDir() {
   std::string region;
   base::FilePath region_path;
@@ -206,12 +207,14 @@
   return region_path;
 }
 
-// Reads the file containing the regulatory label text, if found in
-// the given path to the directory of regulatory labels. Must be called
-// from the blocking pool.
+// Reads the file containing the regulatory label text, if found
+// in the given relative path under the chromeos-assets dir.
+// Must be called from the blocking pool.
 std::string ReadRegulatoryLabelText(const base::FilePath& label_dir_path) {
-  base::FilePath text_path =
-      label_dir_path.AppendASCII(kRegulatoryLabelTextFilename);
+  const base::FilePath text_path =
+      base::FilePath(chrome::kChromeOSAssetPath)
+          .Append(label_dir_path)
+          .AppendASCII(kRegulatoryLabelTextFilename);
 
   std::string contents;
   if (base::ReadFileToString(text_path, &contents))
diff --git a/chrome/browser/web_applications/components/web_app_tab_helper_base.cc b/chrome/browser/web_applications/components/web_app_tab_helper_base.cc
index 841b933..32f7cec 100644
--- a/chrome/browser/web_applications/components/web_app_tab_helper_base.cc
+++ b/chrome/browser/web_applications/components/web_app_tab_helper_base.cc
@@ -25,7 +25,7 @@
 
   // Sync app_id with the initial url from WebContents (used in Tab Restore etc)
   const GURL init_url = web_contents()->GetSiteInstance()->GetSiteURL();
-  SetAppId(GetAppId(init_url));
+  SetAppId(FindAppIdInScopeOfUrl(init_url));
 }
 
 void WebAppTabHelperBase::SetAppId(const AppId& app_id) {
@@ -42,7 +42,7 @@
   if (!navigation_handle->IsInMainFrame() || !navigation_handle->HasCommitted())
     return;
 
-  const AppId app_id = GetAppId(navigation_handle->GetURL());
+  const AppId app_id = FindAppIdInScopeOfUrl(navigation_handle->GetURL());
   SetAppId(app_id);
 }
 
@@ -58,7 +58,7 @@
 
 void WebAppTabHelperBase::OnWebAppInstalled(const AppId& installed_app_id) {
   // Check if current web_contents url is in scope for the newly installed app.
-  const web_app::AppId app_id = GetAppId(web_contents()->GetURL());
+  const web_app::AppId app_id = FindAppIdInScopeOfUrl(web_contents()->GetURL());
   if (app_id == installed_app_id)
     SetAppId(app_id);
 }
diff --git a/chrome/browser/web_applications/components/web_app_tab_helper_base.h b/chrome/browser/web_applications/components/web_app_tab_helper_base.h
index ce8ad91..f94e636 100644
--- a/chrome/browser/web_applications/components/web_app_tab_helper_base.h
+++ b/chrome/browser/web_applications/components/web_app_tab_helper_base.h
@@ -69,8 +69,7 @@
   virtual WebAppTabHelperBase* CloneForWebContents(
       content::WebContents* web_contents) const = 0;
 
-  // Gets AppId of app whose scope includes |url|.
-  virtual AppId GetAppId(const GURL& url) = 0;
+  virtual AppId FindAppIdInScopeOfUrl(const GURL& url) = 0;
 
   // Returns whether the associated web contents belongs to an app window.
   virtual bool IsInAppWindow() const = 0;
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
index acdc4b7..430b2c0 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
+++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
@@ -41,7 +41,7 @@
   return new_tab_helper;
 }
 
-web_app::AppId BookmarkAppTabHelper::GetAppId(const GURL& url) {
+web_app::AppId BookmarkAppTabHelper::FindAppIdInScopeOfUrl(const GURL& url) {
   content::BrowserContext* browser_context =
       web_contents()->GetBrowserContext();
 
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
index 11dfdefa7..4f5870f80 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
+++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
@@ -35,7 +35,7 @@
   // WebAppTabHelperBase:
   web_app::WebAppTabHelperBase* CloneForWebContents(
       content::WebContents* web_contents) const override;
-  web_app::AppId GetAppId(const GURL& url) override;
+  web_app::AppId FindAppIdInScopeOfUrl(const GURL& url) override;
   bool IsInAppWindow() const override;
   bool IsUserInstalled() const override;
   bool IsFromInstallButton() const override;
diff --git a/chrome/browser/web_applications/web_app_tab_helper.cc b/chrome/browser/web_applications/web_app_tab_helper.cc
index 7c8d743..948f4c1 100644
--- a/chrome/browser/web_applications/web_app_tab_helper.cc
+++ b/chrome/browser/web_applications/web_app_tab_helper.cc
@@ -29,7 +29,7 @@
   return new_tab_helper;
 }
 
-AppId WebAppTabHelper::GetAppId(const GURL& url) {
+AppId WebAppTabHelper::FindAppIdInScopeOfUrl(const GURL& url) {
   // TODO(loyso): Implement it.
   return AppId();
 }
diff --git a/chrome/browser/web_applications/web_app_tab_helper.h b/chrome/browser/web_applications/web_app_tab_helper.h
index 8d05261..3f8bd03 100644
--- a/chrome/browser/web_applications/web_app_tab_helper.h
+++ b/chrome/browser/web_applications/web_app_tab_helper.h
@@ -29,7 +29,7 @@
   // WebAppTabHelperBase:
   WebAppTabHelperBase* CloneForWebContents(
       content::WebContents* web_contents) const override;
-  AppId GetAppId(const GURL& url) override;
+  AppId FindAppIdInScopeOfUrl(const GURL& url) override;
   bool IsInAppWindow() const override;
   bool IsUserInstalled() const override;
   bool IsFromInstallButton() const override;
diff --git a/chrome/common/extensions/extension_constants.cc b/chrome/common/extensions/extension_constants.cc
index 94d72fe..5cf7246 100644
--- a/chrome/common/extensions/extension_constants.cc
+++ b/chrome/common/extensions/extension_constants.cc
@@ -71,6 +71,7 @@
 const char kZipArchiverExtensionId[] = "dmboannefpncccogfdikhmhpmdnddgoe";
 const char kZipArchiverExtensionPath[] = "chromeos/zip_archiver";
 const char kChromeCameraAppId[] = "hfhhnacclhffhdffklopdkcgdhifgngh";
+const char kChromeCameraAppDevId[] = "flgnmkgjffmkephdokeeliiopbjaafpm";
 const char kChromeCameraAppPath[] = "chromeos/camera";
 const char kContainedHomeAppId[] = "nbaolgedfgoedkjbfmpediclncanmpbc";
 #endif
diff --git a/chrome/common/extensions/extension_constants.h b/chrome/common/extensions/extension_constants.h
index 4ae3582b..e6217d6 100644
--- a/chrome/common/extensions/extension_constants.h
+++ b/chrome/common/extensions/extension_constants.h
@@ -231,6 +231,8 @@
 extern const char kZipArchiverExtensionPath[];
 // The app ID of Chrome camera app.
 extern const char kChromeCameraAppId[];
+// The dev app ID of Chrome camera app.
+extern const char kChromeCameraAppDevId[];
 // Path to preinstalled Chrome camera app.
 extern const char kChromeCameraAppPath[];
 // The app ID of the contained home app.
diff --git a/chrome/credential_provider/test/com_fakes.cc b/chrome/credential_provider/test/com_fakes.cc
index 41ee810..6f6ca7a4 100644
--- a/chrome/credential_provider/test/com_fakes.cc
+++ b/chrome/credential_provider/test/com_fakes.cc
@@ -58,7 +58,7 @@
   return E_NOTIMPL;
 }
 
-IMPL_IUNKOWN_NOQI_NOREF(FakeCredentialProviderUser);
+IMPL_IUNKOWN_NOQI_NOREF(FakeCredentialProviderUser)
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -88,7 +88,7 @@
   return S_OK;
 }
 
-IMPL_IUNKOWN_NOQI_NOREF(FakeCredentialProviderUserArray);
+IMPL_IUNKOWN_NOQI_NOREF(FakeCredentialProviderUserArray)
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -102,7 +102,7 @@
   return S_OK;
 }
 
-IMPL_IUNKOWN_NOQI_NOREF(FakeCredentialProviderEvents);
+IMPL_IUNKOWN_NOQI_NOREF(FakeCredentialProviderEvents)
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -129,6 +129,6 @@
   return S_OK;
 }
 
-IMPL_IUNKOWN_NOQI_NOREF(FakeGaiaCredentialProvider);
+IMPL_IUNKOWN_NOQI_NOREF(FakeGaiaCredentialProvider)
 
 }  // namespace credential_provider
diff --git a/chrome/installer/util/create_dir_work_item_unittest.cc b/chrome/installer/util/create_dir_work_item_unittest.cc
index 00328da9..434d06ec 100644
--- a/chrome/installer/util/create_dir_work_item_unittest.cc
+++ b/chrome/installer/util/create_dir_work_item_unittest.cc
@@ -16,13 +16,13 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
-  class CreateDirWorkItemTest : public testing::Test {
-   protected:
-    void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); }
+class CreateDirWorkItemTest : public testing::Test {
+ protected:
+  void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); }
 
-    base::ScopedTempDir temp_dir_;
-  };
+  base::ScopedTempDir temp_dir_;
 };
+}  // namespace
 
 TEST_F(CreateDirWorkItemTest, CreatePath) {
   base::FilePath parent_dir(temp_dir_.GetPath());
diff --git a/chrome/installer/util/duplicate_tree_detector_unittest.cc b/chrome/installer/util/duplicate_tree_detector_unittest.cc
index 90b6672..7f1c909 100644
--- a/chrome/installer/util/duplicate_tree_detector_unittest.cc
+++ b/chrome/installer/util/duplicate_tree_detector_unittest.cc
@@ -75,7 +75,7 @@
 const wchar_t DuplicateTreeDetectorTest::text_content_3_[] =
     L"I'd rather see your watermelon and raise you ham and a half.";
 
-};  // namespace
+}  // namespace
 
 // Test the DuplicateTreeChecker's definition of identity on two identical
 // directory structures.
diff --git a/chrome/installer/util/firewall_manager_win.cc b/chrome/installer/util/firewall_manager_win.cc
index b791cb9..a001e51 100644
--- a/chrome/installer/util/firewall_manager_win.cc
+++ b/chrome/installer/util/firewall_manager_win.cc
@@ -34,7 +34,7 @@
   // FirewallManager methods.
   bool CanUseLocalPorts() override {
     return !manager_.IsFirewallEnabled() || manager_.HasAnyRule();
-  };
+  }
 
   bool AddFirewallRules() override {
     return manager_.AddUDPRule(GetMdnsRuleName(), GetMdnsRuleDescription(),
diff --git a/chrome/installer/util/move_tree_work_item_unittest.cc b/chrome/installer/util/move_tree_work_item_unittest.cc
index d357287..f5a5e6c2 100644
--- a/chrome/installer/util/move_tree_work_item_unittest.cc
+++ b/chrome/installer/util/move_tree_work_item_unittest.cc
@@ -54,7 +54,7 @@
 
 const wchar_t kTextContent1[] = L"Gooooooooooooooooooooogle";
 const wchar_t kTextContent2[] = L"Overwrite Me";
-};  // namespace
+}  // namespace
 
 // Move one directory from source to destination when destination does not
 // exist.
diff --git a/chrome/renderer/autofill/fake_password_generation_driver.cc b/chrome/renderer/autofill/fake_password_generation_driver.cc
index e631be1..38c2af3 100644
--- a/chrome/renderer/autofill/fake_password_generation_driver.cc
+++ b/chrome/renderer/autofill/fake_password_generation_driver.cc
@@ -20,16 +20,6 @@
     binding_.FlushForTesting();
 }
 
-// autofill::mojom::PasswordManagerClient:
-void FakePasswordGenerationDriver::AutomaticGenerationStatusChanged(
-    bool available,
-    const base::Optional<
-        autofill::password_generation::PasswordGenerationUIData>& ui_data) {
-  if (available) {
-    called_automatic_generation_status_changed_true_ = true;
-  }
-}
-
 void FakePasswordGenerationDriver::GenerationAvailableForForm(
     const autofill::PasswordForm& form) {
   called_generation_available_for_form_ = true;
diff --git a/chrome/renderer/autofill/fake_password_generation_driver.h b/chrome/renderer/autofill/fake_password_generation_driver.h
index 5fe3b66..3875324d 100644
--- a/chrome/renderer/autofill/fake_password_generation_driver.h
+++ b/chrome/renderer/autofill/fake_password_generation_driver.h
@@ -28,10 +28,6 @@
 
   void Flush();
 
-  bool called_automatic_generation_status_changed_true() const {
-    return called_automatic_generation_status_changed_true_;
-  }
-
   bool called_generation_available_for_form() const {
     return called_generation_available_for_form_;
   }
@@ -40,10 +36,6 @@
     return called_password_generation_rejected_by_typing_;
   }
 
-  void reset_called_automatic_generation_status_changed_true() {
-    called_automatic_generation_status_changed_true_ = false;
-  }
-
   void reset_called_generation_available_for_form() {
     called_generation_available_for_form_ = false;
   }
@@ -54,6 +46,11 @@
 
   // TODO(crbug.com/851021): move all the methods to GMock.
   // autofill::mojom::PasswordGenerationDriver:
+  MOCK_METHOD2(
+      AutomaticGenerationStatusChanged,
+      void(bool,
+           const base::Optional<
+               autofill::password_generation::PasswordGenerationUIData>&));
   MOCK_METHOD1(PresaveGeneratedPassword,
                void(const autofill::PasswordForm& password_form));
   MOCK_METHOD1(PasswordNoLongerGenerated,
@@ -64,19 +61,9 @@
 
  private:
   // autofill::mojom::PasswordManagerClient:
-  void AutomaticGenerationStatusChanged(
-      bool available,
-      const base::Optional<
-          autofill::password_generation::PasswordGenerationUIData>& ui_data)
-      override;
-
   void GenerationAvailableForForm(const autofill::PasswordForm& form) override;
-
   void PasswordGenerationRejectedByTyping() override;
 
-  // Records whether AutomaticGenerationStatusChanged(true) gets called.
-  bool called_automatic_generation_status_changed_true_ = false;
-
   // Records whether GenerationAvailableForForm() gets called.
   bool called_generation_available_for_form_ = false;
 
diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
index a289370..35de45a 100644
--- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
+++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
@@ -46,14 +46,15 @@
 using autofill::FormTracker;
 using autofill::PasswordForm;
 using base::ASCIIToUTF16;
-using blink::WebAutofillState;
 using base::UTF16ToUTF8;
+using blink::WebAutofillState;
 using blink::WebDocument;
 using blink::WebElement;
 using blink::WebFormElement;
 using blink::WebFrame;
 using blink::WebInputElement;
 using blink::WebString;
+using testing::_;
 
 namespace {
 
@@ -673,11 +674,6 @@
     }
   }
 
-  bool GetCalledAutomaticGenerationStatusChangedTrue() {
-    fake_pw_client_.Flush();
-    return fake_pw_client_.called_automatic_generation_status_changed_true();
-  }
-
   void BindPasswordManagerDriver(mojo::ScopedInterfaceEndpointHandle handle) {
     fake_driver_.BindRequest(
         mojom::PasswordManagerDriverAssociatedRequest(std::move(handle)));
@@ -2571,6 +2567,9 @@
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 2);
 
+  // Generation event is triggered due to focus events.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _))
+      .Times(testing::AnyNumber());
   SimulateUsernameTyping("NewGuy");
   SimulatePasswordTyping("NewPassword");
 
@@ -2661,9 +2660,14 @@
   // Simulate the field being clicked to start typing. This should trigger
   // generation but not password autofill.
   SetFocused(password_element_);
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   SimulateElementClick("new_password");
+  base::RunLoop().RunUntilIdle();
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
   EXPECT_FALSE(GetCalledShowPasswordSuggestions());
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
+  // On destruction the state is updated.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _))
+      .Times(testing::AnyNumber());
 }
 
 // Tests that a password change form is properly filled with the username and
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
index ac89241..6c038f1 100644
--- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc
+++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
@@ -42,168 +42,11 @@
 using blink::WebNode;
 using blink::WebString;
 using testing::_;
+using testing::AnyNumber;
+using testing::AtMost;
 
 namespace autofill {
 
-class PasswordGenerationAgentTest : public ChromeRenderViewTest {
- public:
-  PasswordGenerationAgentTest() = default;
-
-  void RegisterMainFrameRemoteInterfaces() override {
-    // Because the test cases only involve the main frame in this test,
-    // the fake password client is only used for the main frame.
-    blink::AssociatedInterfaceProvider* remote_associated_interfaces =
-        view_->GetMainRenderFrame()->GetRemoteAssociatedInterfaces();
-    remote_associated_interfaces->OverrideBinderForTesting(
-        mojom::PasswordGenerationDriver::Name_,
-        base::BindRepeating(
-            &PasswordGenerationAgentTest::BindPasswordManagerClient,
-            base::Unretained(this)));
-    remote_associated_interfaces->OverrideBinderForTesting(
-        mojom::PasswordManagerDriver::Name_,
-        base::BindRepeating(
-            &PasswordGenerationAgentTest::BindPasswordManagerDriver,
-            base::Unretained(this)));
-  }
-
-  void SetUp() override {
-    ChromeRenderViewTest::SetUp();
-
-    // TODO(crbug/862989): Remove workaround preventing non-test classes to bind
-    // fake_driver_ or fake_pw_client_.
-    password_autofill_agent_->GetPasswordManagerDriver();
-    password_generation_->RequestPasswordManagerClientForTesting();
-    base::RunLoop().RunUntilIdle();  // Executes binding the interfaces.
-    // Reject all requests to bind driver/client to anything but the test class:
-    view_->GetMainRenderFrame()
-        ->GetRemoteAssociatedInterfaces()
-        ->OverrideBinderForTesting(
-            mojom::PasswordGenerationDriver::Name_,
-            base::BindRepeating([](mojo::ScopedInterfaceEndpointHandle handle) {
-              handle.reset();
-            }));
-    view_->GetMainRenderFrame()
-        ->GetRemoteAssociatedInterfaces()
-        ->OverrideBinderForTesting(
-            mojom::PasswordManagerDriver::Name_,
-            base::BindRepeating([](mojo::ScopedInterfaceEndpointHandle handle) {
-              handle.reset();
-            }));
-
-    // Necessary for focus changes to work correctly and dispatch blur events
-    // when a field was previously focused.
-    GetWebWidget()->SetFocus(true);
-  }
-
-  void TearDown() override {
-    LoadHTML("");
-    ChromeRenderViewTest::TearDown();
-  }
-
-  void LoadHTMLWithUserGesture(const char* html) {
-    LoadHTML(html);
-
-    // Enable show-ime event when element is focused by indicating that a user
-    // gesture has been processed since load.
-    EXPECT_TRUE(SimulateElementClick("dummy"));
-  }
-
-  void FocusField(const char* element_id) {
-    WebDocument document = GetMainFrame()->GetDocument();
-    blink::WebElement element =
-        document.GetElementById(blink::WebString::FromUTF8(element_id));
-    ASSERT_FALSE(element.IsNull());
-    ExecuteJavaScriptForTests(
-        base::StringPrintf("document.getElementById('%s').focus();",
-                           element_id).c_str());
-  }
-
-  void ExpectAutomaticGenerationAvailable(const char* element_id,
-                                          bool available) {
-    FocusField(element_id);
-    base::RunLoop().RunUntilIdle();
-    ASSERT_EQ(available, GetCalledAutomaticGenerationStatusChangedTrue());
-    fake_pw_client_.reset_called_automatic_generation_status_changed_true();
-
-    // Check that aria-autocomplete attribute is set correctly.
-    if (available) {
-      WebDocument doc = GetMainFrame()->GetDocument();
-      WebElement element = doc.GetElementById(WebString::FromUTF8(element_id));
-      EXPECT_EQ("list", element.GetAttribute("aria-autocomplete"));
-    }
-  }
-
-  void ExpectFormClassifierVoteReceived(
-      bool received,
-      const base::string16& expected_generation_element) {
-    base::RunLoop().RunUntilIdle();
-    if (received) {
-      ASSERT_TRUE(fake_driver_.called_save_generation_field());
-      EXPECT_EQ(expected_generation_element,
-                fake_driver_.save_generation_field());
-    } else {
-      ASSERT_FALSE(fake_driver_.called_save_generation_field());
-    }
-
-    fake_driver_.reset_save_generation_field();
-  }
-
-  bool GetCalledAutomaticGenerationStatusChangedTrue() {
-    fake_pw_client_.Flush();
-    return fake_pw_client_.called_automatic_generation_status_changed_true();
-  }
-
-  void SelectGenerationFallbackAndExpect(bool available) {
-    if (available) {
-      EXPECT_CALL(*this, UserTriggeredGeneratePasswordReply(
-                             testing::Ne(base::nullopt)));
-    } else {
-      EXPECT_CALL(*this, UserTriggeredGeneratePasswordReply(
-                             testing::Eq(base::nullopt)));
-    }
-    password_generation_->UserTriggeredGeneratePassword(base::BindOnce(
-        &PasswordGenerationAgentTest::UserTriggeredGeneratePasswordReply,
-        base::Unretained(this)));
-    testing::Mock::VerifyAndClearExpectations(this);
-  }
-
-  void BindPasswordManagerDriver(mojo::ScopedInterfaceEndpointHandle handle) {
-    fake_driver_.BindRequest(
-        mojom::PasswordManagerDriverAssociatedRequest(std::move(handle)));
-  }
-
-  void BindPasswordManagerClient(mojo::ScopedInterfaceEndpointHandle handle) {
-    fake_pw_client_.BindRequest(
-        mojom::PasswordGenerationDriverAssociatedRequest(std::move(handle)));
-  }
-
-  // Callback for UserTriggeredGeneratePassword.
-  MOCK_METHOD1(UserTriggeredGeneratePasswordReply,
-               void(const base::Optional<
-                    autofill::password_generation::PasswordGenerationUIData>&));
-
-  FakeMojoPasswordManagerDriver fake_driver_;
-  FakePasswordGenerationDriver fake_pw_client_;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(PasswordGenerationAgentTest);
-};
-
-class PasswordGenerationAgentTestForHtmlAnnotation
-    : public PasswordGenerationAgentTest {
- public:
-  PasswordGenerationAgentTestForHtmlAnnotation() {}
-
-  void SetUp() override {
-    base::CommandLine::ForCurrentProcess()->AppendSwitch(
-        switches::kShowAutofillSignatures);
-    PasswordGenerationAgentTest::SetUp();
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(PasswordGenerationAgentTestForHtmlAnnotation);
-};
-
 constexpr char kSigninFormHTML[] =
     "<FORM name = 'blah' action = 'http://www.random.com/'> "
     "  <INPUT type = 'text' id = 'username'/> "
@@ -346,39 +189,280 @@
     "</FORM>"
     "<SPAN id='span'>Text to click on</SPAN>";
 
-TEST_F(PasswordGenerationAgentTest, DetectionTest) {
-  // Don't show the icon for non account creation forms.
-  LoadHTMLWithUserGesture(kSigninFormHTML);
-  ExpectAutomaticGenerationAvailable("password", false);
+class PasswordGenerationAgentTest : public ChromeRenderViewTest {
+ public:
+  enum AutomaticGenerationStatus {
+    kNotReported,
+    kAvailable,
+    kUnavailable,
+  };
 
-  // We don't show the decoration yet because the feature isn't enabled.
-  LoadHTMLWithUserGesture(kAccountCreationFormHTML);
-  ExpectAutomaticGenerationAvailable("first_password", false);
+  PasswordGenerationAgentTest() = default;
 
-  // Pretend like We have received message indicating site is not blacklisted,
-  // and we have received message indicating the form is classified as
-  // ACCOUNT_CREATION_FORM form Autofill server. We should show the icon.
-  LoadHTMLWithUserGesture(kAccountCreationFormHTML);
-  SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
-  SetAccountCreationFormsDetectedMessage(password_generation_,
-                                         GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  void RegisterMainFrameRemoteInterfaces() override {
+    // Because the test cases only involve the main frame in this test,
+    // the fake password client is only used for the main frame.
+    blink::AssociatedInterfaceProvider* remote_associated_interfaces =
+        view_->GetMainRenderFrame()->GetRemoteAssociatedInterfaces();
+    remote_associated_interfaces->OverrideBinderForTesting(
+        mojom::PasswordGenerationDriver::Name_,
+        base::BindRepeating(
+            &PasswordGenerationAgentTest::BindPasswordManagerClient,
+            base::Unretained(this)));
+    remote_associated_interfaces->OverrideBinderForTesting(
+        mojom::PasswordManagerDriver::Name_,
+        base::BindRepeating(
+            &PasswordGenerationAgentTest::BindPasswordManagerDriver,
+            base::Unretained(this)));
+  }
 
+  void SetUp() override {
+    ChromeRenderViewTest::SetUp();
+
+    // TODO(crbug/862989): Remove workaround preventing non-test classes to bind
+    // fake_driver_ or fake_pw_client_.
+    password_autofill_agent_->GetPasswordManagerDriver();
+    password_generation_->RequestPasswordManagerClientForTesting();
+    base::RunLoop().RunUntilIdle();  // Executes binding the interfaces.
+    // Reject all requests to bind driver/client to anything but the test class:
+    view_->GetMainRenderFrame()
+        ->GetRemoteAssociatedInterfaces()
+        ->OverrideBinderForTesting(
+            mojom::PasswordGenerationDriver::Name_,
+            base::BindRepeating([](mojo::ScopedInterfaceEndpointHandle handle) {
+              handle.reset();
+            }));
+    view_->GetMainRenderFrame()
+        ->GetRemoteAssociatedInterfaces()
+        ->OverrideBinderForTesting(
+            mojom::PasswordManagerDriver::Name_,
+            base::BindRepeating([](mojo::ScopedInterfaceEndpointHandle handle) {
+              handle.reset();
+            }));
+
+    // Necessary for focus changes to work correctly and dispatch blur events
+    // when a field was previously focused.
+    GetWebWidget()->SetFocus(true);
+  }
+
+  void TearDown() override {
+    // Unloading the document may trigger the event.
+    EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _))
+        .Times(AtMost(1));
+    ChromeRenderViewTest::TearDown();
+  }
+
+  void LoadHTMLWithUserGesture(const char* html) {
+    LoadHTML(html);
+
+    // Enable show-ime event when element is focused by indicating that a user
+    // gesture has been processed since load.
+    EXPECT_TRUE(SimulateElementClick("dummy"));
+  }
+
+  void FocusField(const char* element_id) {
+    WebDocument document = GetMainFrame()->GetDocument();
+    blink::WebElement element =
+        document.GetElementById(blink::WebString::FromUTF8(element_id));
+    ASSERT_FALSE(element.IsNull());
+    ExecuteJavaScriptForTests(
+        base::StringPrintf("document.getElementById('%s').focus();",
+                           element_id).c_str());
+  }
+
+  void ExpectAutomaticGenerationAvailable(const char* element_id,
+                                          AutomaticGenerationStatus available) {
+    SCOPED_TRACE(testing::Message() << "element_id = " << element_id
+                                    << "available = " << available);
+    if (available == kNotReported) {
+      EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(_, _))
+          .Times(0);
+    } else {
+      EXPECT_CALL(fake_pw_client_,
+                  AutomaticGenerationStatusChanged(available == kAvailable, _));
+    }
+    FocusField(element_id);
+    base::RunLoop().RunUntilIdle();
+    testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
+
+    // Check that aria-autocomplete attribute is set correctly.
+    if (available == kAvailable) {
+      WebDocument doc = GetMainFrame()->GetDocument();
+      WebElement element = doc.GetElementById(WebString::FromUTF8(element_id));
+      EXPECT_EQ("list", element.GetAttribute("aria-autocomplete"));
+    }
+  }
+
+  void ExpectFormClassifierVoteReceived(
+      bool received,
+      const base::string16& expected_generation_element) {
+    base::RunLoop().RunUntilIdle();
+    if (received) {
+      ASSERT_TRUE(fake_driver_.called_save_generation_field());
+      EXPECT_EQ(expected_generation_element,
+                fake_driver_.save_generation_field());
+    } else {
+      ASSERT_FALSE(fake_driver_.called_save_generation_field());
+    }
+
+    fake_driver_.reset_save_generation_field();
+  }
+
+  void SelectGenerationFallbackAndExpect(bool available) {
+    if (available) {
+      EXPECT_CALL(*this, UserTriggeredGeneratePasswordReply(
+                             testing::Ne(base::nullopt)));
+    } else {
+      EXPECT_CALL(*this, UserTriggeredGeneratePasswordReply(
+                             testing::Eq(base::nullopt)));
+    }
+    password_generation_->UserTriggeredGeneratePassword(base::BindOnce(
+        &PasswordGenerationAgentTest::UserTriggeredGeneratePasswordReply,
+        base::Unretained(this)));
+    testing::Mock::VerifyAndClearExpectations(this);
+  }
+
+  void BindPasswordManagerDriver(mojo::ScopedInterfaceEndpointHandle handle) {
+    fake_driver_.BindRequest(
+        mojom::PasswordManagerDriverAssociatedRequest(std::move(handle)));
+  }
+
+  void BindPasswordManagerClient(mojo::ScopedInterfaceEndpointHandle handle) {
+    fake_pw_client_.BindRequest(
+        mojom::PasswordGenerationDriverAssociatedRequest(std::move(handle)));
+  }
+
+  // Callback for UserTriggeredGeneratePassword.
+  MOCK_METHOD1(UserTriggeredGeneratePasswordReply,
+               void(const base::Optional<
+                    autofill::password_generation::PasswordGenerationUIData>&));
+
+  FakeMojoPasswordManagerDriver fake_driver_;
+  testing::StrictMock<FakePasswordGenerationDriver> fake_pw_client_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(PasswordGenerationAgentTest);
+};
+
+class PasswordGenerationAgentTestForHtmlAnnotation
+    : public PasswordGenerationAgentTest {
+ public:
+  PasswordGenerationAgentTestForHtmlAnnotation() = default;
+
+  void SetUp() override {
+    base::CommandLine::ForCurrentProcess()->AppendSwitch(
+        switches::kShowAutofillSignatures);
+    PasswordGenerationAgentTest::SetUp();
+  }
+
+  void TestAnnotateForm(bool has_form_tag);
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(PasswordGenerationAgentTestForHtmlAnnotation);
+};
+
+void PasswordGenerationAgentTestForHtmlAnnotation::TestAnnotateForm(
+    bool has_form_tag) {
+  SCOPED_TRACE(testing::Message() << "has_form_tag = " << has_form_tag);
+  const char* kHtmlForm =
+      has_form_tag ? kAccountCreationFormHTML : kAccountCreationNoForm;
+  LoadHTMLWithUserGesture(kHtmlForm);
+  SetNotBlacklistedMessage(password_generation_, kHtmlForm);
+  if (has_form_tag) {
+    SetAccountCreationFormsDetectedMessage(password_generation_,
+                                           GetMainFrame()->GetDocument(), 0, 1);
+  } else {
+    SetAccountCreationFormsDetectedMessageForUnownedInputs(
+        password_generation_, GetMainFrame()->GetDocument());
+  }
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+  WebDocument document = GetMainFrame()->GetDocument();
+
+  const char* kFormSignature =
+      has_form_tag ? "3524919054660658462" : "7671707438749847833";
+  if (has_form_tag) {
+    // Check the form signature is set in the <form> tag.
+    blink::WebElement form_element =
+        document.GetElementById(blink::WebString::FromUTF8("blah"));
+    ASSERT_FALSE(form_element.IsNull());
+    blink::WebString form_signature =
+        form_element.GetAttribute(blink::WebString::FromUTF8("form_signature"));
+    ASSERT_FALSE(form_signature.IsNull());
+    EXPECT_EQ(kFormSignature, form_signature.Ascii());
+  }
+
+  // Check field signatures and form signature are set in the <input>s.
+  blink::WebElement username_element =
+      document.GetElementById(blink::WebString::FromUTF8("username"));
+  ASSERT_FALSE(username_element.IsNull());
+  blink::WebString username_signature = username_element.GetAttribute(
+      blink::WebString::FromUTF8("field_signature"));
+  ASSERT_FALSE(username_signature.IsNull());
+  EXPECT_EQ("239111655", username_signature.Ascii());
+  blink::WebString form_signature_in_username = username_element.GetAttribute(
+      blink::WebString::FromUTF8("form_signature"));
+  EXPECT_EQ(kFormSignature, form_signature_in_username.Ascii());
+  EXPECT_EQ(
+      "username_element",
+      username_element
+          .GetAttribute(blink::WebString::FromUTF8("pm_parser_annotation"))
+          .Ascii());
+
+  blink::WebElement password_element =
+      document.GetElementById(blink::WebString::FromUTF8("first_password"));
+  ASSERT_FALSE(password_element.IsNull());
+  blink::WebString password_signature = password_element.GetAttribute(
+      blink::WebString::FromUTF8("field_signature"));
+  ASSERT_FALSE(password_signature.IsNull());
+  EXPECT_EQ("3933215845", password_signature.Ascii());
+  blink::WebString form_signature_in_password = password_element.GetAttribute(
+      blink::WebString::FromUTF8("form_signature"));
+  EXPECT_EQ(kFormSignature, form_signature_in_password.Ascii());
+  // The parser annotation is based on local heuristics, but not server side
+  // prediction. So, the new password element is classified as the current
+  // password.
+  EXPECT_EQ(
+      "password_element",
+      password_element
+          .GetAttribute(blink::WebString::FromUTF8("pm_parser_annotation"))
+          .Ascii());
+
+  // Check the generation element is marked.
+  blink::WebString generation_mark = password_element.GetAttribute(
+      blink::WebString::FromUTF8("password_creation_field"));
+  ASSERT_FALSE(generation_mark.IsNull());
+  EXPECT_EQ("1", generation_mark.Utf8());
+
+  blink::WebElement confirmation_password_element =
+      document.GetElementById(blink::WebString::FromUTF8("second_password"));
+  // The parser annotation is based on local heuristics, but not server side
+  // prediction. So, the confirmation password element is classified as the
+  // new password.
+  EXPECT_EQ(
+      "new_password_element",
+      confirmation_password_element
+          .GetAttribute(blink::WebString::FromUTF8("pm_parser_annotation"))
+          .Ascii());
+}
+
+TEST_F(PasswordGenerationAgentTest, HiddenSecondPasswordDetectionTest) {
   // Hidden fields are not treated differently.
   LoadHTMLWithUserGesture(kHiddenPasswordAccountCreationFormHTML);
   SetNotBlacklistedMessage(password_generation_,
                            kHiddenPasswordAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+}
 
+TEST_F(PasswordGenerationAgentTest, InvalidActionDetectionTest) {
   // This doesn't trigger because the form action is invalid.
   LoadHTMLWithUserGesture(kInvalidActionAccountCreationFormHTML);
   SetNotBlacklistedMessage(password_generation_,
                            kInvalidActionAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", false);
+  ExpectAutomaticGenerationAvailable("first_password", kNotReported);
 }
 
 TEST_F(PasswordGenerationAgentTest, DetectionTestNoForm) {
@@ -387,8 +471,8 @@
   SetAccountCreationFormsDetectedMessageForUnownedInputs(
       password_generation_, GetMainFrame()->GetDocument());
 
-  ExpectAutomaticGenerationAvailable("first_password", true);
-  ExpectAutomaticGenerationAvailable("second_password", false);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+  ExpectAutomaticGenerationAvailable("second_password", kUnavailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, FillTest) {
@@ -488,17 +572,13 @@
 
   // Verify that password mirroring works correctly even when the password
   // is deleted.
-  EXPECT_CALL(fake_pw_client_, PasswordNoLongerGenerated(testing::_));
+  EXPECT_CALL(fake_pw_client_, PasswordNoLongerGenerated(_));
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   SimulateUserInputChangeForElement(&first_password_element, std::string());
   EXPECT_EQ(base::string16(), first_password_element.Value().Utf16());
   EXPECT_EQ(base::string16(), second_password_element.Value().Utf16());
   EXPECT_FALSE(first_password_element.IsAutofilled());
   EXPECT_FALSE(second_password_element.IsAutofilled());
-
-  // Should have notified the browser that the password is no longer generated
-  // and trigger generation again.
-  base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
 }
 
 TEST_F(PasswordGenerationAgentTest, EditingEventsTest) {
@@ -508,14 +588,13 @@
                                          GetMainFrame()->GetDocument(), 0, 1);
 
   // Generate password.
-  FocusField("first_password");
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
   base::string16 password = base::ASCIIToUTF16("random_password");
   EXPECT_CALL(fake_pw_client_,
               PresaveGeneratedPassword(testing::Field(
                   &autofill::PasswordForm::password_value, password)));
   password_generation_->GeneratedPasswordAccepted(password);
   fake_pw_client_.Flush();
-  fake_pw_client_.reset_called_automatic_generation_status_changed_true();
   testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
 
   // Start removing characters one by one and observe the events sent to the
@@ -542,11 +621,9 @@
 
   // Delete one more character and move back to the generation state.
   EXPECT_CALL(fake_pw_client_, PasswordNoLongerGenerated(_));
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true);
   fake_pw_client_.Flush();
-  // The remaining characters no longer count as a generated password, so
-  // generation should be offered again.
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
   // Last focused element shouldn't change while editing.
   fake_driver_.Flush();
   EXPECT_TRUE(fake_driver_.last_focused_element_was_fillable());
@@ -559,24 +636,30 @@
   LoadHTMLWithUserGesture(kAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", false);
+  ExpectAutomaticGenerationAvailable("first_password", kNotReported);
+}
 
+TEST_F(PasswordGenerationAgentTest, UnblacklistedAnotherFormTest) {
   // Receive one not blacklisted message for non account creation form. Don't
   // show password generation icon.
   LoadHTMLWithUserGesture(kAccountCreationFormHTML);
   SetNotBlacklistedMessage(password_generation_, kSigninFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", false);
+  ExpectAutomaticGenerationAvailable("first_password", kNotReported);
+}
 
+TEST_F(PasswordGenerationAgentTest, UnblacklistedTest) {
   // Receive one not blacklisted message for account creation form. Show
   // password generation icon.
   LoadHTMLWithUserGesture(kAccountCreationFormHTML);
   SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+}
 
+TEST_F(PasswordGenerationAgentTest, UnblacklistedMultipleTest) {
   // Receive two not blacklisted messages, one is for account creation form and
   // the other is not. Show password generation icon.
   LoadHTMLWithUserGesture(kAccountCreationFormHTML);
@@ -584,7 +667,7 @@
   SetNotBlacklistedMessage(password_generation_, kSigninFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, AccountCreationFormsDetectedTest) {
@@ -592,7 +675,6 @@
   // password generation icon.
   LoadHTMLWithUserGesture(kAccountCreationFormHTML);
   SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
-  ExpectAutomaticGenerationAvailable("first_password", false);
 
   // Receive the account creation forms detected message. Show password
   // generation icon.
@@ -600,7 +682,7 @@
   SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, MaximumCharsForGenerationOffer) {
@@ -611,7 +693,7 @@
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
   // There should now be a message to show the UI.
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 
   WebDocument document = GetMainFrame()->GetDocument();
   WebElement element =
@@ -620,14 +702,16 @@
   WebInputElement first_password_element = element.To<WebInputElement>();
 
   // Make a password just under maximum offer size.
+  // Due to implementation details it's OK to get one more trigger for the
+  // automatic generation.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _))
+      .Times(AtMost(1));
   SimulateUserInputChangeForElement(
       &first_password_element,
       std::string(PasswordGenerationAgent::kMaximumCharsForGenerationOffer,
                   'a'));
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
 
-  // There should still be a message to show the UI.
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
-  fake_pw_client_.reset_called_automatic_generation_status_changed_true();
   fake_pw_client_.reset_called_password_generation_rejected_by_typing();
 
   // Simulate a user typing a password just over maximum offer size.
@@ -639,24 +723,26 @@
 
   // Simulate the user deleting characters. The generation popup should be
   // shown again.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true);
-  // There should now be a message to show the UI.
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
-  fake_pw_client_.reset_called_automatic_generation_status_changed_true();
+  fake_pw_client_.Flush();
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
 
-  // Change focus. Bubble should be hidden, but that is handled by
-  // AutofilAgent, so no messages are sent.
+  // Change focus. Bubble should be hidden.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _));
   ExecuteJavaScriptForTests("document.getElementById('username').focus();");
-  EXPECT_FALSE(GetCalledAutomaticGenerationStatusChangedTrue());
+  fake_pw_client_.Flush();
 
   // Focusing the password field will bring up the generation UI again.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   ExecuteJavaScriptForTests(
       "document.getElementById('first_password').focus();");
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
-  fake_pw_client_.reset_called_automatic_generation_status_changed_true();
+  fake_pw_client_.Flush();
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
 
   // Loading a different page triggers UMA stat upload. Verify that only one
   // display event is sent.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _));
   LoadHTMLWithUserGesture(kSigninFormHTML);
 
   histogram_tester.ExpectBucketCount(
@@ -681,6 +767,7 @@
 
   // Delete most of the password.
   EXPECT_CALL(fake_pw_client_, ShowPasswordEditingPopup(_, _));
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(_, _)).Times(0);
   FocusField("first_password");
   size_t max_chars_to_delete =
       password.length() -
@@ -691,14 +778,13 @@
     SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false);
   fake_pw_client_.Flush();
   testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
-  EXPECT_FALSE(GetCalledAutomaticGenerationStatusChangedTrue());
 
   // Delete one more character. The state should move to offering generation.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   EXPECT_CALL(fake_pw_client_, PasswordNoLongerGenerated(testing::_));
   SimulateUserTypingASCIICharacter(ui::VKEY_BACK, true);
   fake_pw_client_.Flush();
   testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
 
   // The first password field is still non empty. The second one should be
   // cleared.
@@ -746,7 +832,7 @@
   // didAssociateFormControls() isn't called. If this turns out to be a problem
   // adding a call to OnDynamicFormsSeen(GetMainFrame()) will fix it, though
   // it will weaken the test.
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, MultiplePasswordFormsTest) {
@@ -760,8 +846,8 @@
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 1, 1);
 
-  ExpectAutomaticGenerationAvailable("password", false);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("password", kNotReported);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, MessagesAfterAccountSignupFormFound) {
@@ -771,15 +857,15 @@
                                          GetMainFrame()->GetDocument(), 0, 1);
 
   // Generation should be enabled.
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 
   // Extra not blacklisted messages can be sent. Make sure that they are handled
   // correctly (generation should still be available).
   SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
 
   // Need to focus another field first for verification to work.
-  ExpectAutomaticGenerationAvailable("second_password", false);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("second_password", kUnavailable);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 }
 
 // Losing focus should not trigger a password generation popup.
@@ -792,68 +878,75 @@
 
   // Focus on the first password field: password generation popup should show
   // up.
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 
   fake_pw_client_.reset_called_generation_available_for_form();
   // Remove focus from everywhere by clicking an unfocusable element: password
   // generation popup should not show up.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _));
   EXPECT_TRUE(SimulateElementClick("disabled"));
   fake_pw_client_.Flush();
   EXPECT_FALSE(fake_pw_client_.called_generation_available_for_form());
-  EXPECT_FALSE(GetCalledAutomaticGenerationStatusChangedTrue());
 }
 
-TEST_F(PasswordGenerationAgentTest, AutocompleteAttributesTest) {
+TEST_F(PasswordGenerationAgentTest, BothAutocompleteAttributesTest) {
   // Verify that autocomplete attributes can override Autofill to enable
-  // generation
+  // generation.
   LoadHTMLWithUserGesture(kBothAutocompleteAttributesFormHTML);
   SetNotBlacklistedMessage(password_generation_,
                            kBothAutocompleteAttributesFormHTML);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+}
 
+TEST_F(PasswordGenerationAgentTest, UsernameAutocompleteAttributesTest) {
   // Only username autocomplete attribute enabled doesn't trigger generation.
   LoadHTMLWithUserGesture(kUsernameAutocompleteAttributeFormHTML);
   SetNotBlacklistedMessage(password_generation_,
                            kUsernameAutocompleteAttributeFormHTML);
-  ExpectAutomaticGenerationAvailable("first_password", false);
+  ExpectAutomaticGenerationAvailable("first_password", kNotReported);
+}
 
+TEST_F(PasswordGenerationAgentTest, NewPasswordAutocompleteAttributesTest) {
   // Only new-password autocomplete attribute enabled does trigger generation.
   LoadHTMLWithUserGesture(kNewPasswordAutocompleteAttributeFormHTML);
   SetNotBlacklistedMessage(password_generation_,
                            kNewPasswordAutocompleteAttributeFormHTML);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
+}
 
+TEST_F(PasswordGenerationAgentTest,
+       CurrentAndNewPasswordAutocompleteAttributesTest) {
   // Generation is triggered if the form has only password fields.
   LoadHTMLWithUserGesture(kCurrentAndNewPasswordAutocompleteAttributeFormHTML);
   SetNotBlacklistedMessage(password_generation_,
                            kCurrentAndNewPasswordAutocompleteAttributeFormHTML);
-  ExpectAutomaticGenerationAvailable("old_password", false);
-  ExpectAutomaticGenerationAvailable("new_password", true);
-  ExpectAutomaticGenerationAvailable("confirm_password", false);
+  ExpectAutomaticGenerationAvailable("old_password", kNotReported);
+  ExpectAutomaticGenerationAvailable("new_password", kAvailable);
+  ExpectAutomaticGenerationAvailable("confirm_password", kUnavailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, ChangePasswordFormDetectionTest) {
   // Verify that generation is shown on correct field after message receiving.
   LoadHTMLWithUserGesture(kPasswordChangeFormHTML);
   SetNotBlacklistedMessage(password_generation_, kPasswordChangeFormHTML);
-  ExpectAutomaticGenerationAvailable("password", false);
-  ExpectAutomaticGenerationAvailable("newpassword", false);
-  ExpectAutomaticGenerationAvailable("confirmpassword", false);
+  ExpectAutomaticGenerationAvailable("password", kNotReported);
+  ExpectAutomaticGenerationAvailable("newpassword", kNotReported);
+  ExpectAutomaticGenerationAvailable("confirmpassword", kNotReported);
 
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 2);
-  ExpectAutomaticGenerationAvailable("password", false);
-  ExpectAutomaticGenerationAvailable("newpassword", true);
-  ExpectAutomaticGenerationAvailable("confirmpassword", false);
+  ExpectAutomaticGenerationAvailable("password", kNotReported);
+  ExpectAutomaticGenerationAvailable("newpassword", kAvailable);
+  ExpectAutomaticGenerationAvailable("confirmpassword", kUnavailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, ManualGenerationInFormTest) {
-  LoadHTMLWithUserGesture(kAccountCreationFormHTML);
-  SimulateElementRightClick("first_password");
+  LoadHTMLWithUserGesture(kSigninFormHTML);
+  SimulateElementRightClick("password");
   SelectGenerationFallbackAndExpect(true);
   // Re-focusing a password field for which manual generation was requested
   // should not re-trigger generation.
-  ExpectAutomaticGenerationAvailable("first_password", false);
+  ExpectAutomaticGenerationAvailable("password", kNotReported);
 }
 
 TEST_F(PasswordGenerationAgentTest, ManualGenerationNoFormTest) {
@@ -867,16 +960,16 @@
   SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
   // The browser may show a standard password dropdown with the "Generate"
   // option. In this case manual generation is triggered.
   SelectGenerationFallbackAndExpect(true);
 
   // Move the focus away to somewhere.
-  FocusField("address");
+  ExpectAutomaticGenerationAvailable("address", kUnavailable);
 
   // Moving the focus back should trigger the automatic generation again.
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 }
 
 TEST_F(PasswordGenerationAgentTest, ManualGenerationNoIds) {
@@ -941,10 +1034,14 @@
     SimulateUserTypingASCIICharacter('a', true);
     base::RunLoop().RunUntilIdle();
 
+    // The current implementation may notify about unavailable generation.
+    EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _))
+        .Times(AtMost(1));
     FocusField("username");
     EXPECT_CALL(fake_pw_client_, PresaveGeneratedPassword(testing::_));
     SimulateUserTypingASCIICharacter('X', true);
     base::RunLoop().RunUntilIdle();
+    testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
 
     EXPECT_CALL(fake_pw_client_, ShowPasswordEditingPopup(_, _));
     FocusField(test_case.generation_element);
@@ -955,6 +1052,8 @@
     base::RunLoop().RunUntilIdle();
 
     EXPECT_CALL(fake_pw_client_, PresaveGeneratedPassword(testing::_)).Times(0);
+    EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _))
+        .Times(AtMost(1));
     FocusField("username");
     SimulateUserTypingASCIICharacter('Y', true);
     base::RunLoop().RunUntilIdle();
@@ -1048,7 +1147,7 @@
   const char* kSpanId = "span";
   const char* kTextFieldId = "username";
 
-  ExpectAutomaticGenerationAvailable(kGenerationElementId, true);
+  ExpectAutomaticGenerationAvailable(kGenerationElementId, kAvailable);
   base::string16 password = base::ASCIIToUTF16("long_pwd");
   EXPECT_CALL(fake_pw_client_,
               PresaveGeneratedPassword(testing::Field(
@@ -1085,7 +1184,7 @@
                                          GetMainFrame()->GetDocument(), 0, 1);
 
   const char kGenerationElementId[] = "first_password";
-  ExpectAutomaticGenerationAvailable(kGenerationElementId, true);
+  ExpectAutomaticGenerationAvailable(kGenerationElementId, kAvailable);
   base::string16 password = base::ASCIIToUTF16("long_pwd");
   EXPECT_CALL(fake_pw_client_,
               PresaveGeneratedPassword(testing::Field(
@@ -1123,7 +1222,7 @@
   SetNotBlacklistedMessage(password_generation_, kAccountCreationFormHTML);
   SetAccountCreationFormsDetectedMessage(password_generation_,
                                          GetMainFrame()->GetDocument(), 0, 1);
-  ExpectAutomaticGenerationAvailable("first_password", true);
+  ExpectAutomaticGenerationAvailable("first_password", kAvailable);
 
   WebDocument document = GetMainFrame()->GetDocument();
   WebElement element =
@@ -1137,88 +1236,11 @@
 }
 
 TEST_F(PasswordGenerationAgentTestForHtmlAnnotation, AnnotateForm) {
-  for (bool has_form_tag : {false, true}) {
-    SCOPED_TRACE(testing::Message() << "has_form_tag = " << has_form_tag);
-    const char* kHtmlForm =
-        has_form_tag ? kAccountCreationFormHTML : kAccountCreationNoForm;
-    LoadHTMLWithUserGesture(kHtmlForm);
-    SetNotBlacklistedMessage(password_generation_, kHtmlForm);
-    if (has_form_tag) {
-      SetAccountCreationFormsDetectedMessage(
-          password_generation_, GetMainFrame()->GetDocument(), 0, 1);
-    } else {
-      SetAccountCreationFormsDetectedMessageForUnownedInputs(
-          password_generation_, GetMainFrame()->GetDocument());
-    }
-    ExpectAutomaticGenerationAvailable("first_password", true);
-    WebDocument document = GetMainFrame()->GetDocument();
+  TestAnnotateForm(true);
+}
 
-    const char* kFormSignature =
-        has_form_tag ? "3524919054660658462" : "7671707438749847833";
-    if (has_form_tag) {
-      // Check the form signature is set in the <form> tag.
-      blink::WebElement form_element =
-          document.GetElementById(blink::WebString::FromUTF8("blah"));
-      ASSERT_FALSE(form_element.IsNull());
-      blink::WebString form_signature = form_element.GetAttribute(
-          blink::WebString::FromUTF8("form_signature"));
-      ASSERT_FALSE(form_signature.IsNull());
-      EXPECT_EQ(kFormSignature, form_signature.Ascii());
-    }
-
-    // Check field signatures and form signature are set in the <input>s.
-    blink::WebElement username_element =
-        document.GetElementById(blink::WebString::FromUTF8("username"));
-    ASSERT_FALSE(username_element.IsNull());
-    blink::WebString username_signature = username_element.GetAttribute(
-        blink::WebString::FromUTF8("field_signature"));
-    ASSERT_FALSE(username_signature.IsNull());
-    EXPECT_EQ("239111655", username_signature.Ascii());
-    blink::WebString form_signature_in_username = username_element.GetAttribute(
-        blink::WebString::FromUTF8("form_signature"));
-    EXPECT_EQ(kFormSignature, form_signature_in_username.Ascii());
-    EXPECT_EQ(
-        "username_element",
-        username_element
-            .GetAttribute(blink::WebString::FromUTF8("pm_parser_annotation"))
-            .Ascii());
-
-    blink::WebElement password_element =
-        document.GetElementById(blink::WebString::FromUTF8("first_password"));
-    ASSERT_FALSE(password_element.IsNull());
-    blink::WebString password_signature = password_element.GetAttribute(
-        blink::WebString::FromUTF8("field_signature"));
-    ASSERT_FALSE(password_signature.IsNull());
-    EXPECT_EQ("3933215845", password_signature.Ascii());
-    blink::WebString form_signature_in_password = password_element.GetAttribute(
-        blink::WebString::FromUTF8("form_signature"));
-    EXPECT_EQ(kFormSignature, form_signature_in_password.Ascii());
-    // The parser annotation is based on local heuristics, but not server side
-    // prediction. So, the new password element is classified as the current
-    // password.
-    EXPECT_EQ(
-        "password_element",
-        password_element
-            .GetAttribute(blink::WebString::FromUTF8("pm_parser_annotation"))
-            .Ascii());
-
-    // Check the generation element is marked.
-    blink::WebString generation_mark = password_element.GetAttribute(
-        blink::WebString::FromUTF8("password_creation_field"));
-    ASSERT_FALSE(generation_mark.IsNull());
-    EXPECT_EQ("1", generation_mark.Utf8());
-
-    blink::WebElement confirmation_password_element =
-        document.GetElementById(blink::WebString::FromUTF8("second_password"));
-    // The parser annotation is based on local heuristics, but not server side
-    // prediction. So, the confirmation password element is classified as the
-    // new password.
-    EXPECT_EQ(
-        "new_password_element",
-        confirmation_password_element
-            .GetAttribute(blink::WebString::FromUTF8("pm_parser_annotation"))
-            .Ascii());
-  }
+TEST_F(PasswordGenerationAgentTestForHtmlAnnotation, AnnotateNoForm) {
+  TestAnnotateForm(false);
 }
 
 TEST_F(PasswordGenerationAgentTest, PasswordUnmaskedUntilCompleteDeletion) {
@@ -1230,7 +1252,7 @@
   constexpr char kGenerationElementId[] = "first_password";
 
   // Generate a new password.
-  FocusField(kGenerationElementId);
+  ExpectAutomaticGenerationAvailable(kGenerationElementId, kAvailable);
   base::string16 password = base::ASCIIToUTF16("random_password");
   EXPECT_CALL(fake_pw_client_,
               PresaveGeneratedPassword(testing::Field(
@@ -1241,19 +1263,19 @@
 
   // Delete characters of the generated password until only
   // |kMinimumLengthForEditedPassword| - 1 chars remain.
-  fake_pw_client_.reset_called_automatic_generation_status_changed_true();
   EXPECT_CALL(fake_pw_client_, ShowPasswordEditingPopup(_, _));
   FocusField(kGenerationElementId);
   EXPECT_CALL(fake_pw_client_, PasswordNoLongerGenerated(testing::_));
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   size_t max_chars_to_delete =
       password.length() -
       PasswordGenerationAgent::kMinimumLengthForEditedPassword + 1;
   for (size_t i = 0; i < max_chars_to_delete; ++i)
     SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false);
   base::RunLoop().RunUntilIdle();
+  fake_pw_client_.Flush();
   // The remaining characters no longer count as a generated password, so
   // generation should be offered again.
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
 
   // Check that the characters remain unmasked.
   WebDocument document = GetMainFrame()->GetDocument();
@@ -1264,7 +1286,10 @@
   EXPECT_TRUE(input.ShouldRevealPassword());
 
   // Delete the rest of the characters. The field should now mask new
-  // characters.
+  // characters. Due to implementation details it's possible to get pings about
+  // password generation available.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _))
+      .Times(AnyNumber());
   for (size_t i = 0;
        i < PasswordGenerationAgent::kMinimumLengthForEditedPassword; ++i)
     SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false);
@@ -1281,7 +1306,7 @@
   constexpr char kGenerationElementId[] = "password";
 
   // Generate a new password.
-  FocusField(kGenerationElementId);
+  ExpectAutomaticGenerationAvailable(kGenerationElementId, kAvailable);
   base::string16 password = base::ASCIIToUTF16("random_password");
   EXPECT_CALL(fake_pw_client_,
               PresaveGeneratedPassword(testing::Field(
@@ -1292,19 +1317,20 @@
 
   // Delete characters of the generated password until only
   // |kMinimumLengthForEditedPassword| - 1 chars remain.
-  fake_pw_client_.reset_called_automatic_generation_status_changed_true();
   EXPECT_CALL(fake_pw_client_, ShowPasswordEditingPopup(_, _));
   FocusField(kGenerationElementId);
   EXPECT_CALL(fake_pw_client_, PasswordNoLongerGenerated(testing::_));
   size_t max_chars_to_delete =
       password.length() -
       PasswordGenerationAgent::kMinimumLengthForEditedPassword + 1;
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(true, _));
   for (size_t i = 0; i < max_chars_to_delete; ++i)
     SimulateUserTypingASCIICharacter(ui::VKEY_BACK, false);
   // The remaining characters no longer count as a generated password, so
   // generation should be offered again.
   base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(GetCalledAutomaticGenerationStatusChangedTrue());
+  fake_pw_client_.Flush();
+  testing::Mock::VerifyAndClearExpectations(&fake_pw_client_);
 
   // Check that the characters remain unmasked.
   WebDocument document = GetMainFrame()->GetDocument();
@@ -1315,12 +1341,13 @@
   EXPECT_TRUE(input.ShouldRevealPassword());
 
   // Focus another element on the page. The password should be masked.
+  EXPECT_CALL(fake_pw_client_, AutomaticGenerationStatusChanged(false, _));
   ASSERT_TRUE(SimulateElementClick("span"));
   EXPECT_FALSE(input.ShouldRevealPassword());
 
   // Focus the password field again. As the remaining characters are not
   // a generated password, they should remain masked.
-  FocusField(kGenerationElementId);
+  ExpectAutomaticGenerationAvailable(kGenerationElementId, kAvailable);
   EXPECT_FALSE(input.ShouldRevealPassword());
 }
 
@@ -1346,18 +1373,18 @@
           password_elements[0].UniqueRendererFormControlId()};
 
   password_generation_->FoundFormEligibleForGeneration(generation_data);
-  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[0], true);
-  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[1], false);
-  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[2], false);
+  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[0], kAvailable);
+  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[1], kUnavailable);
+  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[2], kNotReported);
 
   // Simulate that the browser informs about the second eligible for generation
   // form. Check that generation is available on both forms.
   generation_data.new_password_renderer_id =
       password_elements[2].UniqueRendererFormControlId();
   password_generation_->FoundFormEligibleForGeneration(generation_data);
-  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[0], true);
-  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[1], false);
-  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[2], true);
+  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[0], kAvailable);
+  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[1], kUnavailable);
+  ExpectAutomaticGenerationAvailable(kPasswordElementsIds[2], kAvailable);
 }
 
 }  // namespace autofill
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 81aed64..7e9b0e38 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -2914,6 +2914,7 @@
     "../browser/ui/sync/profile_signin_confirmation_helper_unittest.cc",
     "../browser/ui/sync/sync_promo_ui_unittest.cc",
     "../browser/ui/sync/tab_contents_synced_tab_delegate_unittest.cc",
+    "../browser/ui/webui/favicon_source_unittest.cc",
     "../browser/ui/webui/fileicon_source_unittest.cc",
     "../browser/ui/webui/interventions_internals/interventions_internals_page_handler_unittest.cc",
     "../browser/ui/webui/local_state/local_state_ui_unittest.cc",
@@ -3130,6 +3131,7 @@
     "//ui/display:test_support",
     "//ui/gfx:test_support",
     "//ui/gl",
+    "//ui/native_theme:test_support",
     "//ui/resources",
     "//ui/web_dialogs:web_dialogs_unittests",
     "//v8",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md
index 2d43e0e6..26092f3 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/RENDER_TESTS.md
@@ -36,6 +36,11 @@
 new goldens to Google Storage and update the hashes used to download them.
 4. Reupload the CL and run it through the trybots again.
 
+When putting a change up for review that changes goldens, please include links
+to the results_details/Render Results pages that you grabbed the new goldens
+from. This will help reviewers confirm that the changes to the goldens are
+acceptable.
+
 ### Failing locally
 
 Follow the steps in [*Running the tests locally*](#running-the-tests-locally)
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.cold_state_personalized_signin_promo.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.cold_state_personalized_signin_promo.Nexus_5-19.png.sha1
index 59d8cd11..b6fa09e1 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.cold_state_personalized_signin_promo.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.cold_state_personalized_signin_promo.Nexus_5-19.png.sha1
@@ -1 +1 @@
-e6ecbd5a6265b6c6b1adbf19a25da49fffad0704
\ No newline at end of file
+cf360211ab9e16fb1d235a77a232f2e50ee582f2
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_placeholder.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_placeholder.Nexus_5-19.png.sha1
index 6af2c0cf..8cb7a57 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_placeholder.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_placeholder.Nexus_5-19.png.sha1
@@ -1 +1 @@
-7178c3c0d7603fca0a121938623b4d4d7fca285d
\ No newline at end of file
+672732a5a3221f428c99fe5179fe9462519b68b4
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_thumbnail.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_thumbnail.Nexus_5-19.png.sha1
index 4e5a816..b7d3eb3 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_thumbnail.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.download_snippet_thumbnail.Nexus_5-19.png.sha1
@@ -1 +1 @@
-f4504a205d897998ea28ff9d403b9bea32e68388
\ No newline at end of file
+1fbf6ff6a3f51a1e2beb7a927ee4df857f114b46
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.hot_state_personalized_signin_promo.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.hot_state_personalized_signin_promo.Nexus_5-19.png.sha1
index 659d924..e5915c4 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.hot_state_personalized_signin_promo.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.hot_state_personalized_signin_promo.Nexus_5-19.png.sha1
@@ -1 +1 @@
-4dc776d39ee828dec3f617b6b6765480a70ccd93
\ No newline at end of file
+80cd3a8d1146495173098ecd0bb0e3aa44781d49
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_minimal_snippet_narrow.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_minimal_snippet_narrow.Nexus_5-19.png.sha1
index da0506f..f1d8f04 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_minimal_snippet_narrow.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_minimal_snippet_narrow.Nexus_5-19.png.sha1
@@ -1 +1 @@
-a3c0b9186ca0280d18aab50b4d51fb22ec789071
\ No newline at end of file
+7066f7088f9ac993ecce95eca8f6f242ab53c6c4
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet.Nexus_5-19.png.sha1
index ef55321a..fd5ff1a 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet.Nexus_5-19.png.sha1
@@ -1 +1 @@
-9b04f3563d7fe7c2c34a55c54cfa138b76aaac71
\ No newline at end of file
+fedf1b5e79b847fa3343bf87fc86ee86fb854735
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet_narrow.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet_narrow.Nexus_5-19.png.sha1
index 712d9eaf..e485c30 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet_narrow.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.long_snippet_narrow.Nexus_5-19.png.sha1
@@ -1 +1 @@
-8f8c148024fe1490c59d9f2f2f97367e564c28fd
\ No newline at end of file
+8240f0ec2b804fc98fc50bb653a652365a7c560a
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.minimal_snippet.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.minimal_snippet.Nexus_5-19.png.sha1
index fc1a437..9f56637b 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.minimal_snippet.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.minimal_snippet.Nexus_5-19.png.sha1
@@ -1 +1 @@
-124594a5a55aa345b497ff6261f4bf851c379f36
\ No newline at end of file
+dee8fdfbf94330e026770dd354428bbac6e51a30
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_minimal_snippet_narrow.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_minimal_snippet_narrow.Nexus_5-19.png.sha1
index 9a50b90..179668f 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_minimal_snippet_narrow.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_minimal_snippet_narrow.Nexus_5-19.png.sha1
@@ -1 +1 @@
-5758cb5bc1d6864c3b921548fefafe956a44b444
\ No newline at end of file
+7ff73eb5311c830d103bfcf43d4235a8f002b298
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet.Nexus_5-19.png.sha1
index 576cdbe5..9724a2b6 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet.Nexus_5-19.png.sha1
@@ -1 +1 @@
-07fe444d6ade047e48daf9aaa534327e98ec8d9a
\ No newline at end of file
+f0db2dc8feb066e3ece5c5c566f1cdac25867e59
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet_narrow.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet_narrow.Nexus_5-19.png.sha1
index a74c152..400c9a1 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet_narrow.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.short_snippet_narrow.Nexus_5-19.png.sha1
@@ -1 +1 @@
-944cf0540c2ae5c5e36d4066c8c232a34c81044d
\ No newline at end of file
+755d3e95c0ab71adcef1404d56f6735b3040aa11
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_dominant_color.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_dominant_color.Nexus_5-19.png.sha1
index 5b4ade5..207b17f4 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_dominant_color.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_dominant_color.Nexus_5-19.png.sha1
@@ -1 +1 @@
-16fa1029433827b6eb43f0f3a994061b4305f75e
\ No newline at end of file
+8bc7dfdcdbfc619d454dfa1769de42b202e752fd
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_thumbnail.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_thumbnail.Nexus_5-19.png.sha1
index e9f1b522..f54f4a67 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_thumbnail.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_dark_thumbnail.Nexus_5-19.png.sha1
@@ -1 +1 @@
-f0d7fe28f4dc7629b700b262185ab6409c5002d0
\ No newline at end of file
+6a9031b377dc7e0007ba3455304405a7996cd398
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_dominant_color.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_dominant_color.Nexus_5-19.png.sha1
index b530ea2..bc50dd7 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_dominant_color.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_dominant_color.Nexus_5-19.png.sha1
@@ -1 +1 @@
-0248fe9bb458f011400dc699ee784fb76f79e674
\ No newline at end of file
+64244997cb1a91db14bee9021bc9deae3233dc16
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_thumbnail.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_thumbnail.Nexus_5-19.png.sha1
index 90f4bf2..318d2b1b 100644
--- a/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_thumbnail.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ArticleSnippetsTest.video_suggestion_with_light_thumbnail.Nexus_5-19.png.sha1
@@ -1 +1 @@
-63dd9eb2665a75c482823bf31cb5e1f0b232ab48
\ No newline at end of file
+d66e153937d0f4a4399c1b26837ac1942a7fe5a6
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height.Nexus_5-19.png.sha1
index 73004e9..cd7673e0 100644
--- a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height.Nexus_5-19.png.sha1
@@ -1 +1 @@
-5a29948d2502295ecbaa7440e57eefb2dd564a54
\ No newline at end of file
+e3e7f51bf6308dd22f6446f8e159adf2ce3c3523
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height_scrolled.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height_scrolled.Nexus_5-19.png.sha1
index 7846e122..49c3179 100644
--- a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height_scrolled.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.full_height_scrolled.Nexus_5-19.png.sha1
@@ -1 +1 @@
-c1bd6a90fad5996afc35d8846e3fdbaea3942aa1
\ No newline at end of file
+e6374a3c3a2b52d4793d188214723bf2937d68a1
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loaded.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loaded.Nexus_5-19.png.sha1
index 363d1d2..e4d70bf3 100644
--- a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loaded.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loaded.Nexus_5-19.png.sha1
@@ -1 +1 @@
-2507acefe5b561eaccc2b4b4fdc1b48caee650a4
\ No newline at end of file
+0d3ea45c5a952ad5bb77439d97d54d8abfb2b595
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png.sha1
index 02fda511..b97606b 100644
--- a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_image_loading.Nexus_5-19.png.sha1
@@ -1 +1 @@
-c8da1bd3a44c191a84db94568953e20699928a2b
\ No newline at end of file
+12c360c912f3b59093860e686cb729171ced6252
\ No newline at end of file
diff --git a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_offline.Nexus_5-19.png.sha1 b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_offline.Nexus_5-19.png.sha1
index f4fcea69..6dcc938c 100644
--- a/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_offline.Nexus_5-19.png.sha1
+++ b/chrome/test/data/android/render_tests/ContextualSuggestionsTest.suggestion_offline.Nexus_5-19.png.sha1
@@ -1 +1 @@
-79510974572cb1abb6fd6c763854fecb4da0e38f
\ No newline at end of file
+a3ebe6112e63f02207c770863ba26d9dc8e6de7d
\ No newline at end of file
diff --git a/chrome/test/data/local_ntp/local_ntp_browsertest.html b/chrome/test/data/local_ntp/local_ntp_browsertest.html
index 8214d13..dd9575e 100644
--- a/chrome/test/data/local_ntp/local_ntp_browsertest.html
+++ b/chrome/test/data/local_ntp/local_ntp_browsertest.html
@@ -90,8 +90,9 @@
         </div>
       </div>
 
-      <div id="edit-bg" tabindex="0" hidden>
-        <div id="edit-bg-gear" tabindex="-1" role="button"></div>
+      <div id="edit-bg" tabindex="0" role="button" hidden>
+        <div id="edit-bg-icon"></div>
+        <span id="edit-bg-text"></span>
       </div>
 
       <div id="custom-bg-attr"></div>
diff --git a/chrome_elf/nt_registry/nt_registry.cc b/chrome_elf/nt_registry/nt_registry.cc
index cca08a2..fca5f06 100644
--- a/chrome_elf/nt_registry/nt_registry.cc
+++ b/chrome_elf/nt_registry/nt_registry.cc
@@ -1223,4 +1223,4 @@
   return g_HKLM_override;
 }
 
-};  // namespace nt
+}  // namespace nt
diff --git a/chrome_elf/nt_registry/nt_registry.h b/chrome_elf/nt_registry/nt_registry.h
index 436362a..f4f2c7f 100644
--- a/chrome_elf/nt_registry/nt_registry.h
+++ b/chrome_elf/nt_registry/nt_registry.h
@@ -262,6 +262,6 @@
 // Getter function for test suites that use reg redirection.
 std::wstring GetTestingOverride(ROOT_KEY root);
 
-};  // namespace nt
+}  // namespace nt
 
 #endif  // CHROME_ELF_NT_REGISTRY_NT_REGISTRY_H_
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc
index 043af53..ab439b8 100644
--- a/chromeos/constants/chromeos_features.cc
+++ b/chromeos/constants/chromeos_features.cc
@@ -80,7 +80,7 @@
 // Defined here rather than in //chrome alongside other related features so that
 // PowerPolicyController can check it.
 const base::Feature kUserActivityPrediction{"UserActivityPrediction",
-                                            base::FEATURE_DISABLED_BY_DEFAULT};
+                                            base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Enables or disables ML service inferencing (instead of TFNative inferencing)
 // for the Smart Dim feature on Chrome OS.
diff --git a/chromeos/constants/chromeos_switches.cc b/chromeos/constants/chromeos_switches.cc
index 1ae5364..bb639cbe9 100644
--- a/chromeos/constants/chromeos_switches.cc
+++ b/chromeos/constants/chromeos_switches.cc
@@ -506,9 +506,10 @@
 // If true, files in Android internal storage will be hidden in Files app.
 const char kHideAndroidFilesInFilesApp[] = "hide-android-files-in-files-app";
 
-// This directory contains per-region subdirectories with regulatory label
-// files. If this is not set, we fall back to the default directory
-// '/usr/share/chromeos-assets/regulatory_labels'
+// The name of the per-model directory which contains per-region
+// subdirectories with regulatory label files for this model.
+// The per-model directories (if there are any) are located under
+// "/usr/share/chromeos-assets/regulatory_labels/".
 const char kRegulatoryLabelDir[] = "regulatory-label-dir";
 
 // If true, the developer tool overlay will be shown for the login/lock screen.
diff --git a/chromeos/dbus/BUILD.gn b/chromeos/dbus/BUILD.gn
index 16cb920..34a05f7 100644
--- a/chromeos/dbus/BUILD.gn
+++ b/chromeos/dbus/BUILD.gn
@@ -184,6 +184,8 @@
     "media_analytics_client.h",
     "modem_messaging_client.cc",
     "modem_messaging_client.h",
+    "native_timer.cc",
+    "native_timer.h",
     "oobe_configuration_client.cc",
     "oobe_configuration_client.h",
     "permission_broker_client.cc",
@@ -303,6 +305,7 @@
     "fake_power_manager_client_unittest.cc",
     "gsm_sms_client_unittest.cc",
     "modem_messaging_client_unittest.cc",
+    "native_timer_unittest.cc",
     "oobe_configuration_client_unittest.cc",
     "pipe_reader_unittest.cc",
     "power_manager_client_unittest.cc",
diff --git a/chromeos/dbus/fake_power_manager_client.cc b/chromeos/dbus/fake_power_manager_client.cc
index e05082b..30f485ba 100644
--- a/chromeos/dbus/fake_power_manager_client.cc
+++ b/chromeos/dbus/fake_power_manager_client.cc
@@ -252,6 +252,13 @@
     const std::string& tag,
     std::vector<std::pair<clockid_t, base::ScopedFD>> arc_timer_requests,
     DBusMethodCallback<std::vector<TimerId>> callback) {
+  // Return error if tag is empty.
+  if (tag.empty()) {
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback), std::vector<TimerId>()));
+    return;
+  }
+
   // Check if client tag already exists. Return error iff it does.
   if (base::ContainsKey(client_timer_ids_, tag)) {
     base::ThreadTaskRunnerHandle::Get()->PostTask(
diff --git a/chromeos/dbus/native_timer.cc b/chromeos/dbus/native_timer.cc
new file mode 100644
index 0000000..1d12153
--- /dev/null
+++ b/chromeos/dbus/native_timer.cc
@@ -0,0 +1,239 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/dbus/native_timer.h"
+
+#include <memory>
+#include <utility>
+#include <vector>
+
+#include "base/bind.h"
+#include "base/files/file_descriptor_watcher_posix.h"
+#include "base/macros.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/message_loop/message_loop.h"
+#include "base/posix/unix_domain_socket.h"
+#include "base/rand_util.h"
+#include "base/task_runner_util.h"
+#include "base/threading/platform_thread.h"
+#include "base/threading/sequenced_task_runner_handle.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/power_manager_client.h"
+
+namespace chromeos {
+
+namespace {
+
+// Value of |timer_id_| when it's not initialized.
+const PowerManagerClient::TimerId kNotCreatedId = -1;
+
+// Value of |timer_id_| when creation was attempted but failed.
+const PowerManagerClient::TimerId kErrorId = -2;
+
+}  // namespace
+
+NativeTimer::NativeTimer(const std::string& tag)
+    : timer_id_(kNotCreatedId), tag_(tag), weak_factory_(this) {
+  // Create a socket pair, one end will be sent to the power daemon the other
+  // socket will be used to listen for the timer firing.
+  base::ScopedFD powerd_fd;
+  base::ScopedFD expiration_fd;
+  base::CreateSocketPair(&powerd_fd, &expiration_fd);
+  if (!powerd_fd.is_valid() || !expiration_fd.is_valid()) {
+    LOG(ERROR) << "Invalid file descriptor";
+    timer_id_ = kErrorId;
+    return;
+  }
+
+  // Send create timer request to the power daemon.
+  std::vector<std::pair<clockid_t, base::ScopedFD>> create_timers_request;
+  create_timers_request.push_back(
+      std::make_pair(CLOCK_BOOTTIME_ALARM, std::move(powerd_fd)));
+  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->CreateArcTimers(
+      tag, std::move(create_timers_request),
+      base::BindOnce(&NativeTimer::OnCreateTimer, weak_factory_.GetWeakPtr(),
+                     std::move(expiration_fd)));
+}
+
+NativeTimer::~NativeTimer() {
+  // Delete the timer if it was created.
+  if (timer_id_ < 0) {
+    return;
+  }
+
+  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->DeleteArcTimers(
+      tag_, base::DoNothing());
+}
+
+struct NativeTimer::StartTimerParams {
+  StartTimerParams() = default;
+  StartTimerParams(base::TimeTicks absolute_expiration_time,
+                   base::OnceClosure timer_expiration_callback,
+                   OnStartNativeTimerCallback result_callback)
+      : absolute_expiration_time(absolute_expiration_time),
+        timer_expiration_callback(std::move(timer_expiration_callback)),
+        result_callback(std::move(result_callback)) {}
+  StartTimerParams(StartTimerParams&&) = default;
+  ~StartTimerParams() = default;
+
+  base::TimeTicks absolute_expiration_time;
+  base::OnceClosure timer_expiration_callback;
+  OnStartNativeTimerCallback result_callback;
+
+  DISALLOW_COPY_AND_ASSIGN(StartTimerParams);
+};
+
+void NativeTimer::Start(base::TimeTicks absolute_expiration_time,
+                        base::OnceClosure timer_expiration_callback,
+                        OnStartNativeTimerCallback result_callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  // If the timer creation didn't succeed then tell the caller immediately.
+  if (timer_id_ == kErrorId) {
+    std::move(result_callback).Run(false);
+    return;
+  }
+
+  // If the timer creation is in flight then save the parameters for this
+  // method. |OnCreateTimer| will issue the start call.
+  if (timer_id_ == kNotCreatedId) {
+    // In normal scenarios of two back to back |Start| calls, the first one is
+    // returned true in it's result callback and is overridden by the second
+    // |Start| call. In the case of two back to back in flight |Start| calls
+    // follow the same semantics and return true to the first caller.
+    if (in_flight_start_timer_params_) {
+      std::move(in_flight_start_timer_params_->result_callback).Run(true);
+    }
+
+    in_flight_start_timer_params_ = std::make_unique<StartTimerParams>(
+        absolute_expiration_time, std::move(timer_expiration_callback),
+        std::move(result_callback));
+    return;
+  }
+
+  // Start semantics guarantee that it will override any old timer set. Reset
+  // state to ensure this.
+  ResetState();
+  DCHECK_GE(timer_id_, 0);
+  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->StartArcTimer(
+      timer_id_, absolute_expiration_time,
+      base::BindOnce(&NativeTimer::OnStartTimer, weak_factory_.GetWeakPtr(),
+                     std::move(timer_expiration_callback),
+                     std::move(result_callback)));
+}
+
+void NativeTimer::OnCreateTimer(
+    base::ScopedFD expiration_fd,
+    base::Optional<std::vector<int32_t>> timer_ids) {
+  DCHECK(expiration_fd.is_valid());
+  if (!timer_ids.has_value()) {
+    LOG(ERROR) << "No timers returned";
+    timer_id_ = kErrorId;
+    ProcessAndResetInFlightStartParams(false);
+    return;
+  }
+
+  // Only one timer is being created.
+  std::vector<int32_t> result = timer_ids.value();
+  if (result.size() != 1) {
+    LOG(ERROR) << "powerd created " << result.size() << " timers instead of 1";
+    timer_id_ = kErrorId;
+    ProcessAndResetInFlightStartParams(false);
+    return;
+  }
+
+  // If timer creation failed and a |Start| call is pending then notify its
+  // result callback an error.
+  if (result[0] < 0) {
+    LOG(ERROR) << "Error timer ID " << result[0];
+    timer_id_ = kErrorId;
+    ProcessAndResetInFlightStartParams(false);
+    return;
+  }
+
+  // If timer creation succeeded and a |Start| call is pending then use the
+  // stored parameters to schedule a timer.
+  timer_id_ = result[0];
+  expiration_fd_ = std::move(expiration_fd);
+  ProcessAndResetInFlightStartParams(true);
+}
+
+void NativeTimer::OnStartTimer(base::OnceClosure timer_expiration_callback,
+                               OnStartNativeTimerCallback result_callback,
+                               bool result) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (!result) {
+    LOG(ERROR) << "Starting timer ID " << timer_id_ << " failed";
+    std::move(result_callback).Run(false);
+    return;
+  }
+
+  // At this point the timer has started, watch for its expiration and tell the
+  // client that the start operation succeeded.
+  timer_expiration_callback_ = std::move(timer_expiration_callback);
+  expiration_fd_watcher_ = base::FileDescriptorWatcher::WatchReadable(
+      expiration_fd_.get(), base::BindRepeating(&NativeTimer::OnExpiration,
+                                                weak_factory_.GetWeakPtr()));
+  std::move(result_callback).Run(true);
+}
+
+void NativeTimer::OnExpiration() {
+  // Write to the |expiration_fd_| to indicate to the instance that the timer
+  // has expired. The instance expects 8 bytes on the read end similar to what
+  // happens on a timerfd expiration. The timerfd API expects this to be the
+  // number of expirations, however, more than one expiration isn't tracked
+  // currently. This can block in the unlikely scenario of multiple writes
+  // happening but the instance not reading the data. When the send queue is
+  // full (64Kb), a write attempt here will block.
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(expiration_fd_.is_valid());
+  uint64_t timer_data;
+  std::vector<base::ScopedFD> fds;
+  if (!base::UnixDomainSocket::RecvMsg(expiration_fd_.get(), &timer_data,
+                                       sizeof(timer_data), &fds)) {
+    PLOG(ERROR) << "Bad data in expiration fd";
+  }
+
+  // If this isn't done then this task will keep running forever. Hence, clean
+  // state regardless of any error above.
+  ResetState();
+  std::move(timer_expiration_callback_).Run();
+}
+
+void NativeTimer::ResetState() {
+  weak_factory_.InvalidateWeakPtrs();
+  expiration_fd_watcher_.reset();
+  in_flight_start_timer_params_.reset();
+}
+
+void NativeTimer::ProcessAndResetInFlightStartParams(bool result) {
+  if (!in_flight_start_timer_params_) {
+    return;
+  }
+
+  // Run the result callback if |result| is false. Else schedule a timer with
+  // the parameters stored.
+  if (!result) {
+    DCHECK_LT(timer_id_, 0);
+    std::move(in_flight_start_timer_params_->result_callback).Run(false);
+    in_flight_start_timer_params_.reset();
+    return;
+  }
+
+  // The |in_flight_start_timer_params_->result_callback| will be called in
+  // |OnStartTimer|.
+  chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->StartArcTimer(
+      timer_id_, in_flight_start_timer_params_->absolute_expiration_time,
+      base::BindOnce(
+          &NativeTimer::OnStartTimer, weak_factory_.GetWeakPtr(),
+          std::move(in_flight_start_timer_params_->timer_expiration_callback),
+          std::move(in_flight_start_timer_params_->result_callback)));
+
+  // This state has been processed and must be reset to indicate that.
+  in_flight_start_timer_params_.reset();
+}
+
+}  // namespace chromeos
diff --git a/chromeos/dbus/native_timer.h b/chromeos/dbus/native_timer.h
new file mode 100644
index 0000000..c6248f3
--- /dev/null
+++ b/chromeos/dbus/native_timer.h
@@ -0,0 +1,102 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_DBUS_NATIVE_TIMER_H_
+#define CHROMEOS_DBUS_NATIVE_TIMER_H_
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "base/files/file_descriptor_watcher_posix.h"
+#include "base/files/scoped_file.h"
+#include "base/macros.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/sequence_checker.h"
+#include "base/threading/sequenced_task_runner_handle.h"
+#include "base/threading/thread.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "chromeos/dbus/power_manager_client.h"
+
+namespace chromeos {
+
+using OnStartNativeTimerCallback = base::OnceCallback<void(bool)>;
+
+// Sets timers that can also wake up the device from suspend by making D-Bus
+// calls to the power daemon.
+class COMPONENT_EXPORT(CHROMEOS_DBUS) NativeTimer {
+ public:
+  explicit NativeTimer(const std::string& tag);
+
+  ~NativeTimer();
+
+  // Starts a timer to expire at |absolute_expiration_time|. Runs
+  // |timer_expiration_callback| on timer expiration. Runs |result_callback|
+  // with the result of the start operation. If starting the timer failed then
+  // |timer_expiration_callback| will not be called.
+  //
+  // Consecutive |Start| calls override the previous |Start| call.
+  void Start(base::TimeTicks absolute_expiration_time,
+             base::OnceClosure timer_expiration_callback,
+             OnStartNativeTimerCallback result_callback);
+
+ private:
+  struct StartTimerParams;
+
+  // D-Bus callback for a create timer D-Bus call.
+  void OnCreateTimer(base::ScopedFD expiration_fd,
+                     base::Optional<std::vector<int32_t>> timer_ids);
+
+  // D-Bus callback for a start timer D-Bus call.
+  void OnStartTimer(base::OnceClosure timer_expiration_callback,
+                    OnStartNativeTimerCallback result_callback,
+                    bool result);
+
+  // Callback for timer expiration.
+  void OnExpiration();
+
+  // Resets the |expiration_fd_watcher_| and cancels any inflight callbacks.
+  void ResetState();
+
+  // Calls the result callback for a pending |Start| operation with false iff
+  // |result| is false. Else, schedules a timer using the D-Bus API and calls
+  // the result callback for a pending |Start| operation with true. Resets
+  // |in_flight_start_timer_params_| in all cases.
+  void ProcessAndResetInFlightStartParams(bool result);
+
+  // Stores the parameters for |Start| when timer is not yet created i.e.
+  // |timer_id_| is uninitialized. Since |Start| calls override each other at
+  // any point only the latest |Start| call's parameters are stored in this.
+  std::unique_ptr<StartTimerParams> in_flight_start_timer_params_;
+
+  // Timer id returned by the power daemon, to be used as a handle for the timer
+  // APIs.
+  PowerManagerClient::TimerId timer_id_;
+
+  // Tag associated with the D-Bus API. Cached for deleting the timer in the
+  // destructor.
+  std::string tag_;
+
+  // File descriptor that will be written to when a Chrome OS alarm fires.
+  base::ScopedFD expiration_fd_;
+
+  // Callback to run when the timer expires.
+  base::OnceClosure timer_expiration_callback_;
+
+  // Watches |expiration_fd_| for an event.
+  std::unique_ptr<base::FileDescriptorWatcher::Controller>
+      expiration_fd_watcher_;
+
+  SEQUENCE_CHECKER(sequence_checker_);
+
+  base::WeakPtrFactory<NativeTimer> weak_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(NativeTimer);
+};
+
+}  // namespace chromeos
+
+#endif  // CHROMEOS_DBUS_NATIVE_TIMER_H_
diff --git a/chromeos/dbus/native_timer_unittest.cc b/chromeos/dbus/native_timer_unittest.cc
new file mode 100644
index 0000000..a7c393b
--- /dev/null
+++ b/chromeos/dbus/native_timer_unittest.cc
@@ -0,0 +1,109 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/dbus/native_timer.h"
+
+#include <memory>
+#include <utility>
+
+#include "base/memory/ptr_util.h"
+#include "base/run_loop.h"
+#include "base/test/scoped_task_environment.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/fake_power_manager_client.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace chromeos {
+
+namespace {
+
+// Returns true iff |Start| on |timer| succeeds and timer expiration occurs too.
+// The underlying fake power manager implementation expires the timer
+// immediately and the test doesn't sleep.
+bool CheckStartTimerAndExpiration(NativeTimer* timer,
+                                  base::TimeTicks absolute_expiration_ticks) {
+  base::RunLoop start_timer_loop;
+  base::RunLoop expiration_loop;
+  bool start_timer_result = false;
+  bool expiration_result = false;
+  timer->Start(
+      absolute_expiration_ticks,
+      base::BindOnce(
+          [](bool* result_out, base::OnceClosure quit_closure) {
+            *result_out = true;
+            std::move(quit_closure).Run();
+          },
+          &expiration_result, expiration_loop.QuitClosure()),
+      base::BindOnce(
+          [](bool* result_out, base::OnceClosure quit_closure, bool result) {
+            *result_out = result;
+            std::move(quit_closure).Run();
+          },
+          &start_timer_result, start_timer_loop.QuitClosure()));
+  start_timer_loop.Run();
+  if (!start_timer_result) {
+    return false;
+  }
+
+  // Run until timer expiration and check for the result.
+  expiration_loop.Run();
+  if (!expiration_result) {
+    return false;
+  }
+  return true;
+}
+
+}  // namespace
+
+class NativeTimerTest : public testing::Test {
+ public:
+  NativeTimerTest()
+      : scoped_task_environment_(
+            base::test::ScopedTaskEnvironment::MainThreadType::IO) {
+    fake_power_manager_client_ = new chromeos::FakePowerManagerClient;
+    chromeos::DBusThreadManager::GetSetterForTesting()->SetPowerManagerClient(
+        base::WrapUnique(fake_power_manager_client_));
+  }
+
+  ~NativeTimerTest() override = default;
+
+ protected:
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
+
+  // Owned by chromeos::DBusThreadManager.
+  chromeos::FakePowerManagerClient* fake_power_manager_client_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(NativeTimerTest);
+};
+
+TEST_F(NativeTimerTest, CheckCreateFailure) {
+  // Create the timer. It queues async operations; enclose it in a run loop.
+  // This should fail internally as an empty tag is provided.
+  base::RunLoop create_timer_loop;
+  NativeTimer timer("");
+  create_timer_loop.RunUntilIdle();
+
+  // Starting the timer should fail as timer creation failed.
+  EXPECT_FALSE(CheckStartTimerAndExpiration(
+      &timer, base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000)));
+}
+
+TEST_F(NativeTimerTest, CheckCreateAndStartTimer) {
+  // Create the timer. It queues async operations; enclose it in a run loop.
+  base::RunLoop create_timer_loop;
+  NativeTimer timer("Assistant");
+  create_timer_loop.RunUntilIdle();
+
+  // Start timer and check if starting the timer and its expiration succeeded.
+  EXPECT_TRUE(CheckStartTimerAndExpiration(
+      &timer, base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000)));
+
+  // Start another timer and check if starting the timer and its expiration
+  // succeeded.
+  EXPECT_TRUE(CheckStartTimerAndExpiration(
+      &timer, base::TimeTicks() + base::TimeDelta::FromMilliseconds(1000)));
+}
+
+}  // namespace chromeos
diff --git a/chromeos/services/assistant/public/mojom/assistant.mojom b/chromeos/services/assistant/public/mojom/assistant.mojom
index 19c5970..339b2c3 100644
--- a/chromeos/services/assistant/public/mojom/assistant.mojom
+++ b/chromeos/services/assistant/public/mojom/assistant.mojom
@@ -193,6 +193,32 @@
   url.mojom.Url action_url;
 };
 
+// Enumeration of notification types.
+enum AssistantNotificationType {
+  // A notification of type |kInAssistant| will only be displayed within
+  // Assistant UI. If Assistant UI is not visible at the time of notification
+  // creation, the notification will be queued up until Assistant UI becomes
+  // visible. When Assistant UI dismisses, notifications of this type are
+  // dismissed.
+  kInAssistant,
+
+  // A notification of type |kPreferInAssistant| may be shown in either
+  // Assistant UI or the Message Center, depending on Assistant visibility
+  // state. If Assistant UI is not visible, notifications of this type will
+  // show immediately in the Message Center unless the user has opted out of
+  // seeing system notifications. Once Assistant UI becomes visible, or if it
+  // is already visible at the time of notification creation, notifications of
+  // this type are converted to notifications of type |kInAssistant| and they
+  // will finish out their lifetimes as in-Assistant notifications.
+  kPreferInAssistant,
+
+  // A notification of type |kSystem| will only be displayed within the Message
+  // Center. It is immediately added to the Message Center regardless of
+  // Assistant UI visibility state, although it may not be added if the user has
+  // opted out of seeing system notifications.
+  kSystem,
+};
+
 // Models a notification button.
 struct AssistantNotificationButton {
   // Display text of the button.
@@ -204,6 +230,9 @@
 
 // Models an Assistant notification.
 struct AssistantNotification {
+  // Type of the notification.
+  AssistantNotificationType type = AssistantNotificationType.kSystem;
+
   // Title of the notification.
   string title;
 
@@ -232,6 +261,9 @@
 
   // Obfuscated Gaia id of the intended recipient of the user.
   string obfuscated_gaia_id;
+
+  // Whether this notification can turn on the display if it was off.
+  bool is_high_priority = false;
 };
 
 // Models status of an app.
diff --git a/chromeos/services/assistant/service_unittest.cc b/chromeos/services/assistant/service_unittest.cc
index 4a2b74b..b921468 100644
--- a/chromeos/services/assistant/service_unittest.cc
+++ b/chromeos/services/assistant/service_unittest.cc
@@ -80,7 +80,6 @@
   void GetAccountInfoFromGaiaId(
       const std::string& gaia_id,
       GetAccountInfoFromGaiaIdCallback callback) override {}
-  void GetAccounts(GetAccountsCallback callback) override {}
   void GetAccessToken(const std::string& account_id,
                       const ::identity::ScopeSet& scopes,
                       const std::string& consumer_id,
diff --git a/components/arc/power/arc_power_bridge_unittest.cc b/components/arc/power/arc_power_bridge_unittest.cc
index 012e8e7f..68695a4 100644
--- a/components/arc/power/arc_power_bridge_unittest.cc
+++ b/components/arc/power/arc_power_bridge_unittest.cc
@@ -82,10 +82,25 @@
     power_bridge_->FlushWakeLocksForTesting();
   }
 
+  // Returns the number of active wake locks of type |type|.
+  int GetActiveWakeLocks(WakeLockType type) {
+    base::RunLoop run_loop;
+    int result_count = 0;
+    wake_lock_provider_->GetActiveWakeLocksForTests(
+        type,
+        base::BindOnce(
+            [](base::RunLoop* run_loop, int* result_count, int32_t count) {
+              *result_count = count;
+              run_loop->Quit();
+            },
+            &run_loop, &result_count));
+    run_loop.Run();
+    return result_count;
+  }
+
   base::test::ScopedTaskEnvironment scoped_task_environment_;
 
   service_manager::TestConnectorFactory connector_factory_;
-  std::unique_ptr<device::TestWakeLockProvider> wake_lock_provider_;
 
   chromeos::FakePowerManagerClient* power_manager_client_;  // Not owned.
 
@@ -94,6 +109,8 @@
   std::unique_ptr<ArcPowerBridge> power_bridge_;
 
  private:
+  std::unique_ptr<device::TestWakeLockProvider> wake_lock_provider_;
+
   DISALLOW_COPY_AND_ASSIGN(ArcPowerBridgeTest);
 };
 
@@ -170,71 +187,59 @@
 
 TEST_F(ArcPowerBridgeTest, DifferentWakeLocks) {
   AcquireDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
-  EXPECT_EQ(0, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleepAllowDimming));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0,
+            GetActiveWakeLocks(WakeLockType::kPreventDisplaySleepAllowDimming));
 
   AcquireDisplayWakeLock(mojom::DisplayWakeLockType::DIM);
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleepAllowDimming));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1,
+            GetActiveWakeLocks(WakeLockType::kPreventDisplaySleepAllowDimming));
 
   ReleaseDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(0, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleepAllowDimming));
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1,
+            GetActiveWakeLocks(WakeLockType::kPreventDisplaySleepAllowDimming));
 
   ReleaseDisplayWakeLock(mojom::DisplayWakeLockType::DIM);
-  EXPECT_EQ(0, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
-  EXPECT_EQ(0, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleepAllowDimming));
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0,
+            GetActiveWakeLocks(WakeLockType::kPreventDisplaySleepAllowDimming));
 }
 
 TEST_F(ArcPowerBridgeTest, ConsolidateWakeLocks) {
   AcquireDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 
   // Acquiring a second Android wake lock of the same time shouldn't result in a
   // second device service wake lock being requested.
   AcquireDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 
   ReleaseDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 
   // The device service wake lock should only be released when all Android wake
   // locks have been released.
   ReleaseDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(0, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 }
 
 TEST_F(ArcPowerBridgeTest, ReleaseWakeLocksWhenInstanceClosed) {
   AcquireDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  ASSERT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  ASSERT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 
   // If the instance is closed, all wake locks should be released.
   base::RunLoop run_loop;
-  wake_lock_provider_->set_wake_lock_canceled_callback(run_loop.QuitClosure());
   DestroyPowerInstance();
-  run_loop.Run();
-  EXPECT_EQ(0, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  run_loop.RunUntilIdle();
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 
   // Check that wake locks can be requested after the instance becomes ready
   // again.
   CreatePowerInstance();
   AcquireDisplayWakeLock(mojom::DisplayWakeLockType::BRIGHT);
-  EXPECT_EQ(1, wake_lock_provider_->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 }
 
 }  // namespace arc
diff --git a/components/arc/wake_lock/arc_wake_lock_bridge_unittest.cc b/components/arc/wake_lock/arc_wake_lock_bridge_unittest.cc
index e1d7f05..e840b671 100644
--- a/components/arc/wake_lock/arc_wake_lock_bridge_unittest.cc
+++ b/components/arc/wake_lock/arc_wake_lock_bridge_unittest.cc
@@ -81,8 +81,20 @@
     instance_.reset();
   }
 
-  device::TestWakeLockProvider* GetWakeLockProvider() {
-    return &wake_lock_provider_;
+  // Returns the number of active wake locks of type |type|.
+  int GetActiveWakeLocks(WakeLockType type) {
+    base::RunLoop run_loop;
+    int result_count = 0;
+    wake_lock_provider_.GetActiveWakeLocksForTests(
+        type,
+        base::BindOnce(
+            [](base::RunLoop* run_loop, int* result_count, int32_t count) {
+              *result_count = count;
+              run_loop->Quit();
+            },
+            &run_loop, &result_count));
+    run_loop.Run();
+    return result_count;
   }
 
  private:
@@ -100,12 +112,10 @@
 
 TEST_F(ArcWakeLockBridgeTest, AcquireAndReleaseSinglePartialWakeLock) {
   EXPECT_TRUE(AcquirePartialWakeLock());
-  EXPECT_EQ(1, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 
   EXPECT_TRUE(ReleasePartialWakeLock());
-  EXPECT_EQ(0, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 }
 
 TEST_F(ArcWakeLockBridgeTest, AcquireAndReleaseMultiplePartialWakeLocks) {
@@ -113,43 +123,35 @@
   EXPECT_TRUE(AcquirePartialWakeLock());
   EXPECT_TRUE(AcquirePartialWakeLock());
   EXPECT_TRUE(AcquirePartialWakeLock());
-  EXPECT_EQ(1, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 
   // Releasing two wake locks after acquiring three should not result in
   // releasing a wake lock.
   EXPECT_TRUE(ReleasePartialWakeLock());
   EXPECT_TRUE(ReleasePartialWakeLock());
-  EXPECT_EQ(1, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 
   // Releasing the remaining wake lock should result in the release of the wake
   // lock.
   EXPECT_TRUE(ReleasePartialWakeLock());
-  EXPECT_EQ(0, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 }
 
 TEST_F(ArcWakeLockBridgeTest, ReleaseWakeLockOnInstanceClosed) {
   EXPECT_TRUE(AcquirePartialWakeLock());
-  ASSERT_EQ(1, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  ASSERT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 
   // If the instance is closed, all wake locks should be released.
   base::RunLoop run_loop;
-  GetWakeLockProvider()->set_wake_lock_canceled_callback(
-      run_loop.QuitClosure());
   DestroyWakeLockInstance();
-  run_loop.Run();
-  EXPECT_EQ(0, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventDisplaySleep));
+  run_loop.RunUntilIdle();
+  EXPECT_EQ(0, GetActiveWakeLocks(WakeLockType::kPreventDisplaySleep));
 
   // Check that wake locks can be requested after the instance becomes ready
   // again.
   CreateWakeLockInstance();
   EXPECT_TRUE(AcquirePartialWakeLock());
-  EXPECT_EQ(1, GetWakeLockProvider()->GetActiveWakeLocksOfType(
-                   WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(WakeLockType::kPreventAppSuspension));
 }
 
 }  // namespace arc
diff --git a/components/autofill/content/renderer/password_generation_agent.cc b/components/autofill/content/renderer/password_generation_agent.cc
index 11104f5..7a802fe 100644
--- a/components/autofill/content/renderer/password_generation_agent.cc
+++ b/components/autofill/content/renderer/password_generation_agent.cc
@@ -454,6 +454,8 @@
       password_generation::PASSWORD_ACCEPTED);
   LogMessage(Logger::STRING_GENERATION_RENDERER_GENERATED_PASSWORD_ACCEPTED);
   for (auto& password_element : current_generation_item_->password_elements_) {
+    base::AutoReset<bool> auto_reset_update_confirmation_password(
+        &current_generation_item_->updating_other_password_fileds_, true);
     password_element.SetAutofillValue(blink::WebString::FromUTF16(password));
     // setAutofillValue() above may have resulted in JavaScript closing the
     // frame.
@@ -692,7 +694,6 @@
 
   const blink::WebElement web_element = node.ToConst<blink::WebElement>();
   if (!web_element.GetDocument().GetFrame()) {
-    AutomaticGenerationStatusChanged(false);
     return false;
   }
 
@@ -739,7 +740,6 @@
     return true;
   }
 
-  AutomaticGenerationStatusChanged(false);
   return false;
 }
 
@@ -747,7 +747,8 @@
     const blink::WebInputElement& element) {
   if (!element.IsNull() && current_generation_item_ &&
       element == current_generation_item_->generation_element_) {
-    AutomaticGenerationStatusChanged(false);
+    if (!current_generation_item_->password_is_generated_)
+      AutomaticGenerationStatusChanged(false);
     current_generation_item_->generation_element_.SetShouldRevealPassword(
         false);
   }
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
index 984768d..dcc247b 100644
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -398,10 +398,11 @@
       form_for_autocomplete, client_->IsAutocompleteEnabled());
 
   if (IsProfileAutofillEnabled()) {
-    address_form_event_logger_->OnWillSubmitForm(sync_state_);
+    address_form_event_logger_->OnWillSubmitForm(sync_state_, *submitted_form);
   }
   if (IsCreditCardAutofillEnabled()) {
-    credit_card_form_event_logger_->OnWillSubmitForm(sync_state_);
+    credit_card_form_event_logger_->OnWillSubmitForm(sync_state_,
+                                                     *submitted_form);
   }
 
   submitted_form->set_submission_source(source);
@@ -708,7 +709,7 @@
           masked_card_, AutofillClient::UNMASK_FOR_AUTOFILL,
           weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr());
       credit_card_form_event_logger_->OnDidSelectMaskedServerCardSuggestion(
-          form_structure->form_parsed_timestamp(), sync_state_);
+          *form_structure, sync_state_);
       return;
     }
     credit_card_form_event_logger_->OnDidFillSuggestion(
@@ -1656,10 +1657,10 @@
       }
     }
     if (card_form) {
-      credit_card_form_event_logger_->OnDidParseForm();
+      credit_card_form_event_logger_->OnDidParseForm(*form_structure);
     }
     if (address_form) {
-      address_form_event_logger_->OnDidParseForm();
+      address_form_event_logger_->OnDidParseForm(*form_structure);
     }
 
     // If a form with the same name was previously filled, and there has not
@@ -2022,7 +2023,8 @@
   if (itr == filling_contexts_map_.end())
     return false;
 
-  address_form_event_logger_->OnDidSeeFillableDynamicForm(sync_state_);
+  address_form_event_logger_->OnDidSeeFillableDynamicForm(sync_state_,
+                                                          form_structure);
 
   FillingContext* filling_context = itr->second.get();
   base::TimeTicks now = base::TimeTicks::Now();
@@ -2030,7 +2032,8 @@
 
   if (filling_context->attempted_refill &&
       delta.InMilliseconds() < kLimitBeforeRefillMs) {
-    address_form_event_logger_->OnSubsequentRefillAttempt(sync_state_);
+    address_form_event_logger_->OnSubsequentRefillAttempt(sync_state_,
+                                                          form_structure);
   }
 
   return !filling_context->attempted_refill &&
@@ -2044,7 +2047,7 @@
 
   DCHECK(form_structure);
 
-  address_form_event_logger_->OnDidRefill(sync_state_);
+  address_form_event_logger_->OnDidRefill(sync_state_, *form_structure);
 
   auto itr =
       filling_contexts_map_.find(form_structure->GetIdentifierForRefill());
@@ -2110,10 +2113,10 @@
     if (context->focused_field->Type().group() == CREDIT_CARD) {
       context->is_filling_credit_card = true;
       credit_card_form_event_logger_->OnDidInteractWithAutofillableForm(
-          context->form_structure->form_signature(), sync_state_);
+          *(context->form_structure), sync_state_);
     } else {
       address_form_event_logger_->OnDidInteractWithAutofillableForm(
-          context->form_structure->form_signature(), sync_state_);
+          *(context->form_structure), sync_state_);
     }
   }
 
diff --git a/components/autofill/core/browser/autofill_metrics.cc b/components/autofill/core/browser/autofill_metrics.cc
index 5916b1c0..e92b3dea 100644
--- a/components/autofill/core/browser/autofill_metrics.cc
+++ b/components/autofill/core/browser/autofill_metrics.cc
@@ -23,12 +23,16 @@
 #include "components/autofill/core/common/autofill_prefs.h"
 #include "components/autofill/core/common/form_data.h"
 #include "components/autofill/core/common/submission_source.h"
+#include "services/metrics/public/cpp/metrics_utils.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 
 namespace autofill {
 
 namespace {
 
+// Exponential bucket spacing for UKM event data.
+const double kAutofillEventDataBucketSpacing = 2.0;
+
 // Note: if adding an enum value here, update the corresponding description for
 // AutofillTypeQualityByFieldType in histograms.xml.
 enum FieldTypeGroupForMetrics {
@@ -1658,11 +1662,13 @@
 AutofillMetrics::FormInteractionsUkmLogger::FormInteractionsUkmLogger(
     ukm::UkmRecorder* ukm_recorder,
     const ukm::SourceId source_id)
-    : ukm_recorder_(ukm_recorder), source_id_(source_id) {}
+    : ukm_recorder_(ukm_recorder), source_id_(source_id) {
+  UMA_HISTOGRAM_BOOLEAN("Autofill.CanLogUKM", CanLog());
+}
 
 void AutofillMetrics::FormInteractionsUkmLogger::OnFormsParsed(
     const ukm::SourceId source_id) {
-  if (ukm_recorder_ == nullptr)
+  if (!CanLog())
     return;
 
   source_id_ = source_id;
@@ -1702,17 +1708,6 @@
       .Record(ukm_recorder_);
 }
 
-void AutofillMetrics::FormInteractionsUkmLogger::LogSelectedMaskedServerCard(
-    const base::TimeTicks& form_parsed_timestamp) {
-  if (!CanLog())
-    return;
-
-  ukm::builders::Autofill_SelectedMaskedServerCard(source_id_)
-      .SetMillisecondsSinceFormParsed(
-          MillisecondsSinceFormParsed(form_parsed_timestamp))
-      .Record(ukm_recorder_);
-}
-
 void AutofillMetrics::FormInteractionsUkmLogger::LogDidFillSuggestion(
     int record_type,
     bool is_for_credit_card,
@@ -1902,6 +1897,24 @@
   builder.Record(ukm_recorder_);
 }
 
+void AutofillMetrics::FormInteractionsUkmLogger::LogFormEvent(
+    FormEvent form_event,
+    const std::set<FormType>& form_types,
+    const base::TimeTicks& form_parsed_timestamp) {
+  if (!CanLog())
+    return;
+
+  if (form_parsed_timestamp.is_null())
+    return;
+
+  ukm::builders::Autofill_FormEvent builder(source_id_);
+  builder.SetAutofillFormEvent(static_cast<int>(form_event))
+      .SetFormTypes(FormTypesToBitVector(form_types))
+      .SetMillisecondsSinceFormParsed(
+          MillisecondsSinceFormParsed(form_parsed_timestamp))
+      .Record(ukm_recorder_);
+}
+
 bool AutofillMetrics::FormInteractionsUkmLogger::CanLog() const {
   return ukm_recorder_ != nullptr;
 }
@@ -1912,7 +1925,10 @@
   // Use the pinned timestamp as the current time if it's set.
   base::TimeTicks now =
       pinned_timestamp_.is_null() ? base::TimeTicks::Now() : pinned_timestamp_;
-  return (now - form_parsed_timestamp).InMilliseconds();
+
+  return ukm::GetExponentialBucketMin(
+      (now - form_parsed_timestamp).InMilliseconds(),
+      kAutofillEventDataBucketSpacing);
 }
 
 AutofillMetrics::UkmTimestampPin::UkmTimestampPin(
diff --git a/components/autofill/core/browser/autofill_metrics.h b/components/autofill/core/browser/autofill_metrics.h
index f30924f..a9c1c0c 100644
--- a/components/autofill/core/browser/autofill_metrics.h
+++ b/components/autofill/core/browser/autofill_metrics.h
@@ -18,6 +18,7 @@
 #include "components/autofill/core/browser/credit_card.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/browser/form_types.h"
+#include "components/autofill/core/browser/metrics/form_events.h"
 #include "components/autofill/core/browser/sync_utils.h"
 #include "components/autofill/core/common/form_field_data.h"
 #include "components/autofill/core/common/signatures_util.h"
@@ -778,8 +779,6 @@
     void LogSuggestionsShown(const FormStructure& form,
                              const AutofillField& field,
                              const base::TimeTicks& form_parsed_timestamp);
-    void LogSelectedMaskedServerCard(
-        const base::TimeTicks& form_parsed_timestamp);
     void LogDidFillSuggestion(int record_type,
                               bool is_for_credit_card,
                               const FormStructure& form,
@@ -802,6 +801,9 @@
                           AutofillFormSubmittedState state,
                           const base::TimeTicks& form_parsed_timestamp,
                           FormSignature form_signature);
+    void LogFormEvent(FormEvent form_event,
+                      const std::set<FormType>& form_types,
+                      const base::TimeTicks& form_parsed_timestamp);
 
     // Log whether the autofill decided to skip or to fill each
     // hidden/representational field.
diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc
index 868cf6f6..87afa30 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -73,8 +73,6 @@
 using UkmDeveloperEngagementType = ukm::builders::Autofill_DeveloperEngagement;
 using UkmInteractedWithFormType = ukm::builders::Autofill_InteractedWithForm;
 using UkmSuggestionsShownType = ukm::builders::Autofill_SuggestionsShown;
-using UkmSelectedMaskedServerCardType =
-    ukm::builders::Autofill_SelectedMaskedServerCard;
 using UkmSuggestionFilledType = ukm::builders::Autofill_SuggestionFilled;
 using UkmTextFieldDidChangeType = ukm::builders::Autofill_TextFieldDidChange;
 using UkmLogHiddenRepresentationalFieldSkipDecisionType =
@@ -84,6 +82,7 @@
 using UkmFormSubmittedType = ukm::builders::Autofill_FormSubmitted;
 using UkmFieldTypeValidationType = ukm::builders::Autofill_FieldTypeValidation;
 using UkmFieldFillStatusType = ukm::builders::Autofill_FieldFillStatus;
+using UkmFormEventType = ukm::builders::Autofill_FormEvent;
 
 using ExpectedUkmMetrics =
     std::vector<std::vector<std::pair<const char*, int64_t>>>;
@@ -136,10 +135,10 @@
                UkmSuggestionFilledType::kMillisecondsSinceFormParsedName));
 }
 
-void VerifyFormInteractionUkm(const ukm::TestAutoSetUkmRecorder& ukm_recorder,
-                              const FormData& form,
-                              const char* event_name,
-                              const ExpectedUkmMetrics& expected_metrics) {
+void VerifyUkm(const ukm::TestAutoSetUkmRecorder& ukm_recorder,
+               const FormData& form,
+               const char* event_name,
+               const ExpectedUkmMetrics& expected_metrics) {
   auto entries = ukm_recorder.GetEntriesByName(event_name);
 
   EXPECT_LE(entries.size(), expected_metrics.size());
@@ -159,16 +158,15 @@
                          bool is_for_credit_card,
                          bool has_upi_vpa_field,
                          const std::set<FormType>& form_types) {
-  VerifyFormInteractionUkm(
-      ukm_recorder, form, UkmFormSubmittedType::kEntryName,
-      {{{UkmFormSubmittedType::kAutofillFormSubmittedStateName, state},
-        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-        {UkmFormSubmittedType::kIsForCreditCardName, is_for_credit_card},
-        {UkmFormSubmittedType::kHasUpiVpaFieldName, has_upi_vpa_field},
-        {UkmFormSubmittedType::kFormTypesName,
-         AutofillMetrics::FormTypesToBitVector(form_types)},
-        {UkmFormSubmittedType::kFormSignatureName,
-         Collapse(CalculateFormSignature(form))}}});
+  VerifyUkm(ukm_recorder, form, UkmFormSubmittedType::kEntryName,
+            {{{UkmFormSubmittedType::kAutofillFormSubmittedStateName, state},
+              {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+              {UkmFormSubmittedType::kIsForCreditCardName, is_for_credit_card},
+              {UkmFormSubmittedType::kHasUpiVpaFieldName, has_upi_vpa_field},
+              {UkmFormSubmittedType::kFormTypesName,
+               AutofillMetrics::FormTypesToBitVector(form_types)},
+              {UkmFormSubmittedType::kFormSignatureName,
+               Collapse(CalculateFormSignature(form))}}});
 }
 
 void AppendFieldFillStatusUkm(const FormData& form,
@@ -474,8 +472,8 @@
                          AutofillMetricsIFrameTest,
                          testing::Bool());
 
-// Test parameter indicates if the metrics are being logged for a form in an
-// iframe or the main frame. True means the form is in the main frame.
+// Test parameter indicates if the metrics are being logged for a form
+// with a companyname field specified.
 class AutofillMetricsCompanyTest : public AutofillMetricsTest,
                                    public testing::WithParamInterface<bool> {
  public:
@@ -893,7 +891,7 @@
         autofill_manager_->MakeFrontendID(std::string(), guid));
   }
 
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form,
       UkmLogHiddenRepresentationalFieldSkipDecisionType::kEntryName,
       {{{UkmLogHiddenRepresentationalFieldSkipDecisionType::kFormSignatureName,
@@ -1036,7 +1034,7 @@
                 .size(),
             (size_t)2);
 
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form,
       UkmLogRepeatedServerTypePredictionRationalized::kEntryName,
       {{{UkmLogRepeatedServerTypePredictionRationalized::kFormSignatureName,
@@ -1151,7 +1149,7 @@
                 .size(),
             (size_t)3);
 
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form,
       UkmLogRepeatedServerTypePredictionRationalized::kEntryName,
       {{{UkmLogRepeatedServerTypePredictionRationalized::kFormSignatureName,
@@ -1639,9 +1637,8 @@
   ExpectedUkmMetrics expected_ukm_metrics;
   AppendFieldTypeUkm(form, heuristic_types, server_types, actual_types,
                      &expected_ukm_metrics);
-  VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                           UkmFieldTypeValidationType::kEntryName,
-                           expected_ukm_metrics);
+  VerifyUkm(test_ukm_recorder_, form, UkmFieldTypeValidationType::kEntryName,
+            expected_ukm_metrics);
 
   // Validate the total samples and the crossed (predicted-to-actual) samples.
   for (const auto& source : prediction_sources) {
@@ -3122,7 +3119,7 @@
                      "Autofill_FormSubmitted_NonFillable"));
   }
 
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
       {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
         {UkmTextFieldDidChangeType::kHeuristicTypeName, CREDIT_CARD_NAME_FULL},
@@ -3143,7 +3140,7 @@
   // Expect 2 |FORM_EVENT_LOCAL_SUGGESTION_FILLED| events. First, from
   // call to |external_delegate_->DidAcceptSuggestion|. Second, from call to
   // |autofill_manager_->FillOrPreviewForm|.
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
       {{{UkmSuggestionFilledType::kRecordTypeName, CreditCard::LOCAL_CARD},
         {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
@@ -3285,7 +3282,7 @@
                      "Autofill_FormSubmitted_NonFillable"));
   }
 
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
       {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
         {UkmTextFieldDidChangeType::kHeuristicTypeName, ADDRESS_HOME_STATE},
@@ -3306,24 +3303,23 @@
   // Expect 2 |FORM_EVENT_LOCAL_SUGGESTION_FILLED| events. First, from
   // call to |external_delegate_->DidAcceptSuggestion|. Second, from call to
   // |autofill_manager_->FillOrPreviewForm|.
-  VerifyFormInteractionUkm(
-      test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
-      {{{UkmSuggestionFilledType::kRecordTypeName,
-         AutofillProfile::LOCAL_PROFILE},
-        {UkmSuggestionFilledType::kIsForCreditCardName, false},
-        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-        {UkmSuggestionFilledType::kFieldSignatureName,
-         Collapse(CalculateFieldSignatureForField(form.fields.front()))},
-        {UkmSuggestionFilledType::kFormSignatureName,
-         Collapse(CalculateFormSignature(form))}},
-       {{UkmSuggestionFilledType::kRecordTypeName,
-         AutofillProfile::LOCAL_PROFILE},
-        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-        {UkmSuggestionFilledType::kIsForCreditCardName, false},
-        {UkmSuggestionsShownType::kFieldSignatureName,
-         Collapse(CalculateFieldSignatureForField(form.fields.front()))},
-        {UkmSuggestionsShownType::kFormSignatureName,
-         Collapse(CalculateFormSignature(form))}}});
+  VerifyUkm(test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
+            {{{UkmSuggestionFilledType::kRecordTypeName,
+               AutofillProfile::LOCAL_PROFILE},
+              {UkmSuggestionFilledType::kIsForCreditCardName, false},
+              {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+              {UkmSuggestionFilledType::kFieldSignatureName,
+               Collapse(CalculateFieldSignatureForField(form.fields.front()))},
+              {UkmSuggestionFilledType::kFormSignatureName,
+               Collapse(CalculateFormSignature(form))}},
+             {{UkmSuggestionFilledType::kRecordTypeName,
+               AutofillProfile::LOCAL_PROFILE},
+              {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+              {UkmSuggestionFilledType::kIsForCreditCardName, false},
+              {UkmSuggestionsShownType::kFieldSignatureName,
+               Collapse(CalculateFieldSignatureForField(form.fields.front()))},
+              {UkmSuggestionsShownType::kFormSignatureName,
+               Collapse(CalculateFormSignature(form))}}});
   // Expect |NON_FILLABLE_FORM_OR_NEW_DATA| in |AutofillFormSubmittedState|
   // because |field.value| is empty in |DeterminePossibleFieldTypesForUpload|.
   VerifySubmitFormUkm(test_ukm_recorder_, form,
@@ -4674,7 +4670,7 @@
         credit_card_form_events_frame_histogram_,
         FORM_EVENT_SUGGESTION_SHOWN_WILL_SUBMIT_ONCE, 1);
 
-    VerifyFormInteractionUkm(
+    VerifyUkm(
         test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
         {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
           {UkmTextFieldDidChangeType::kHeuristicTypeName, CREDIT_CARD_NUMBER},
@@ -4722,7 +4718,7 @@
         credit_card_form_events_frame_histogram_,
         FORM_EVENT_SUGGESTION_SHOWN_WILL_SUBMIT_ONCE, 1);
 
-    VerifyFormInteractionUkm(
+    VerifyUkm(
         test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
         {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
           {UkmTextFieldDidChangeType::kHeuristicTypeName, CREDIT_CARD_NUMBER},
@@ -4769,7 +4765,7 @@
         credit_card_form_events_frame_histogram_,
         FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 1);
 
-    VerifyFormInteractionUkm(
+    VerifyUkm(
         test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
         {{{UkmSuggestionFilledType::kRecordTypeName, CreditCard::LOCAL_CARD},
           {UkmSuggestionFilledType::kIsForCreditCardName, true},
@@ -4815,7 +4811,7 @@
         credit_card_form_events_frame_histogram_,
         FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 1);
 
-    VerifyFormInteractionUkm(
+    VerifyUkm(
         test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
         {{{UkmSuggestionFilledType::kRecordTypeName,
            CreditCard::FULL_SERVER_CARD},
@@ -4862,19 +4858,15 @@
         credit_card_form_events_frame_histogram_,
         FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED_ONCE, 1);
 
-    VerifyFormInteractionUkm(
-        test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
-        {{{UkmSuggestionFilledType::kRecordTypeName,
-           CreditCard::MASKED_SERVER_CARD},
-          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-          {UkmSuggestionFilledType::kIsForCreditCardName, true},
-          {UkmSuggestionFilledType::kFieldSignatureName,
-           Collapse(CalculateFieldSignatureForField(form.fields.back()))},
-          {UkmSuggestionFilledType::kFormSignatureName,
-           Collapse(CalculateFormSignature(form))}}});
-    VerifyFormInteractionUkm(
-        test_ukm_recorder_, form, UkmSelectedMaskedServerCardType::kEntryName,
-        {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
+    VerifyUkm(test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
+              {{{UkmSuggestionFilledType::kRecordTypeName,
+                 CreditCard::MASKED_SERVER_CARD},
+                {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+                {UkmSuggestionFilledType::kIsForCreditCardName, true},
+                {UkmSuggestionFilledType::kFieldSignatureName,
+                 Collapse(CalculateFieldSignatureForField(form.fields.back()))},
+                {UkmSuggestionFilledType::kFormSignatureName,
+                 Collapse(CalculateFormSignature(form))}}});
     VerifySubmitFormUkm(test_ukm_recorder_, form,
                         AutofillMetrics::NON_FILLABLE_FORM_OR_NEW_DATA,
                         /*is_for_credit_card=*/true,
@@ -4912,7 +4904,7 @@
     autofill_manager_->OnFormSubmitted(form, false,
                                        SubmissionSource::FORM_SUBMISSION);
 
-    VerifyFormInteractionUkm(
+    VerifyUkm(
         test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
         {{{UkmFormSubmittedType::kAutofillFormSubmittedStateName,
            AutofillMetrics::NON_FILLABLE_FORM_OR_NEW_DATA},
@@ -5076,7 +5068,7 @@
             FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_WILL_SUBMIT_ONCE,
         0);
 
-    VerifyFormInteractionUkm(
+    VerifyUkm(
         test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
         {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
           {UkmTextFieldDidChangeType::kHeuristicTypeName, CREDIT_CARD_NUMBER},
@@ -5494,6 +5486,17 @@
   autofill_manager_->OnFormsSeen(forms, base::TimeTicks());
   histogram_tester.ExpectUniqueSample("Autofill.FormEvents.Address.WithNoData",
                                       FORM_EVENT_DID_PARSE_FORM, 1);
+
+  // Check if FormEvent UKM is logged properly
+  auto entries =
+      test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+  EXPECT_EQ(1u, entries.size());
+  VerifyUkm(
+      test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+      {{{UkmFormEventType::kAutofillFormEventName, FORM_EVENT_DID_PARSE_FORM},
+        {UkmFormEventType::kFormTypesName,
+         AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
 }
 
 // Test that we log interacted form events for address.
@@ -5528,10 +5531,23 @@
         0, form, field, gfx::RectF(), /*autoselect_first_suggestion=*/false);
     histogram_tester.ExpectUniqueSample("Autofill.FormEvents.Address",
                                         FORM_EVENT_INTERACTED_ONCE, 1);
+
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(1u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_INTERACTED_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5543,6 +5559,17 @@
         1, form, field, gfx::RectF(), /*autoselect_first_suggestion=*/false);
     histogram_tester.ExpectUniqueSample("Autofill.FormEvents.Address",
                                         FORM_EVENT_INTERACTED_ONCE, 1);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(1u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_INTERACTED_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 }
 
@@ -5581,10 +5608,28 @@
                                        FORM_EVENT_POPUP_SUPPRESSED, 1);
     histogram_tester.ExpectBucketCount("Autofill.FormEvents.Address",
                                        FORM_EVENT_POPUP_SUPPRESSED_ONCE, 1);
+
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(2u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_POPUP_SUPPRESSED},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_POPUP_SUPPRESSED_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5596,6 +5641,28 @@
                                        FORM_EVENT_POPUP_SUPPRESSED, 2);
     histogram_tester.ExpectBucketCount("Autofill.FormEvents.Address",
                                        FORM_EVENT_POPUP_SUPPRESSED_ONCE, 1);
+
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(3u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_POPUP_SUPPRESSED},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_POPUP_SUPPRESSED_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_POPUP_SUPPRESSED},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 }
 
@@ -5639,10 +5706,27 @@
     EXPECT_EQ(0, histogram_tester.GetTotalCountsForPrefix(
                      "Autofill.FormEvents.CreditCard")
                      ["Autofill.FormEvents.CreditCard.BankNameDisplayed"]);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(2u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_SUGGESTIONS_SHOWN},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_SUGGESTIONS_SHOWN_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5659,10 +5743,32 @@
     EXPECT_EQ(0, histogram_tester.GetTotalCountsForPrefix(
                      "Autofill.FormEvents.CreditCard")
                      ["Autofill.FormEvents.CreditCard.BankNameDisplayed"]);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(3u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_SUGGESTIONS_SHOWN},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_SUGGESTIONS_SHOWN_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_SUGGESTIONS_SHOWN},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5679,6 +5785,10 @@
     EXPECT_EQ(0, histogram_tester.GetTotalCountsForPrefix(
                      "Autofill.FormEvents.CreditCard")
                      ["Autofill.FormEvents.CreditCard.BankNameDisplayed"]);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(0u, entries.size());
   }
 }
 
@@ -5721,10 +5831,27 @@
     histogram_tester.ExpectBucketCount("Autofill.FormEvents.Address",
                                        FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE,
                                        1);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(2u, entries.size());
+    VerifyUkm(
+        test_ukm_recorder_, form, UkmFormEventType::kEntryName,
+        {{{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_LOCAL_SUGGESTION_FILLED},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}},
+         {{UkmFormEventType::kAutofillFormEventName,
+           FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE},
+          {UkmFormEventType::kFormTypesName,
+           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
+          {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
   }
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5883,6 +6010,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5946,6 +6074,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -5988,6 +6117,11 @@
         "Autofill.FormEvents.Address",
             FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SUBMITTED_ONCE,
         0);
+
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(2u, entries.size());
   }
 }
 
@@ -6035,6 +6169,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -6055,6 +6190,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -6078,6 +6214,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -6121,10 +6258,15 @@
         "Autofill.FormEvents.Address",
             FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SUBMITTED_ONCE,
         0);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(3u, entries.size());
   }
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
 
   {
@@ -6166,6 +6308,10 @@
         "Autofill.FormEvents.Address",
             FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SUBMITTED_ONCE,
         0);
+    // Check if FormEvent UKM is logged properly
+    auto entries =
+        test_ukm_recorder_.GetEntriesByName(UkmFormEventType::kEntryName);
+    EXPECT_EQ(2u, entries.size());
   }
 }
 
@@ -6209,6 +6355,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
   RecreateCreditCards(true /* include_local_credit_card */,
                       false /* include_masked_server_credit_card */,
@@ -6226,6 +6373,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
   RecreateCreditCards(false /* include_local_credit_card */,
                       true /* include_masked_server_credit_card */,
@@ -6243,6 +6391,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
   RecreateCreditCards(false /* include_local_credit_card */,
                       false /* include_masked_server_credit_card */,
@@ -6260,6 +6409,7 @@
 
   // Reset the autofill manager state.
   autofill_manager_->Reset();
+  PurgeUKM();
   autofill_manager_->AddSeenForm(form, field_types, field_types);
   RecreateCreditCards(true /* include_local_credit_card */,
                       false /* include_masked_server_credit_card */,
@@ -6422,14 +6572,12 @@
               {FormType::ADDRESS_FORM, FormType::UNKNOWN_FORM_TYPE})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 
   // Non fillable form.
@@ -6459,14 +6607,12 @@
               {FormType::ADDRESS_FORM, FormType::UNKNOWN_FORM_TYPE})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 
   // Fillable form.
@@ -6501,14 +6647,12 @@
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
 
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 
   // Autofilled none with suggestions shown.
@@ -6524,18 +6668,17 @@
     EXPECT_EQ(1, user_action_tester.GetActionCount(
                      "Autofill_FormSubmitted_FilledNone_SuggestionsShown"));
 
-    VerifyFormInteractionUkm(
-        test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
-        {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-          {UkmSuggestionsShownType::kFieldSignatureName,
-           Collapse(CalculateFieldSignatureForField(form.fields[2]))},
-          {UkmSuggestionsShownType::kFormSignatureName,
-           Collapse(CalculateFormSignature(form))},
-          {UkmTextFieldDidChangeType::kHeuristicTypeName,
-           PHONE_HOME_WHOLE_NUMBER},
-          {UkmTextFieldDidChangeType::kHtmlFieldTypeName,
-           HTML_TYPE_UNSPECIFIED},
-          {UkmTextFieldDidChangeType::kServerTypeName, NO_SERVER_DATA}}});
+    VerifyUkm(test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
+              {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+                {UkmSuggestionsShownType::kFieldSignatureName,
+                 Collapse(CalculateFieldSignatureForField(form.fields[2]))},
+                {UkmSuggestionsShownType::kFormSignatureName,
+                 Collapse(CalculateFormSignature(form))},
+                {UkmTextFieldDidChangeType::kHeuristicTypeName,
+                 PHONE_HOME_WHOLE_NUMBER},
+                {UkmTextFieldDidChangeType::kHtmlFieldTypeName,
+                 HTML_TYPE_UNSPECIFIED},
+                {UkmTextFieldDidChangeType::kServerTypeName, NO_SERVER_DATA}}});
 
     expected_form_submission_ukm_metrics.push_back(
         {{UkmFormSubmittedType::kAutofillFormSubmittedStateName,
@@ -6548,14 +6691,12 @@
               {FormType::ADDRESS_FORM, FormType::UNKNOWN_FORM_TYPE})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 
   // Mark one of the fields as autofilled.
@@ -6585,14 +6726,12 @@
               {FormType::ADDRESS_FORM, FormType::UNKNOWN_FORM_TYPE})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 
   // Mark all of the fillable fields as autofilled.
@@ -6623,14 +6762,12 @@
               {FormType::ADDRESS_FORM, FormType::UNKNOWN_FORM_TYPE})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 
   // Clear out the third field's value.
@@ -6668,14 +6805,12 @@
               {FormType::ADDRESS_FORM, FormType::UNKNOWN_FORM_TYPE})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 }
 
@@ -6743,14 +6878,12 @@
           AutofillMetrics::FormTypesToBitVector({FormType::ADDRESS_FORM})},
          {UkmFormSubmittedType::kFormSignatureName,
           Collapse(CalculateFormSignature(form))}});
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFormSubmittedType::kEntryName,
-                             expected_form_submission_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFormSubmittedType::kEntryName,
+              expected_form_submission_ukm_metrics);
 
     AppendFieldFillStatusUkm(form, &expected_field_fill_status_ukm_metrics);
-    VerifyFormInteractionUkm(test_ukm_recorder_, form,
-                             UkmFieldFillStatusType::kEntryName,
-                             expected_field_fill_status_ukm_metrics);
+    VerifyUkm(test_ukm_recorder_, form, UkmFieldFillStatusType::kEntryName,
+              expected_field_fill_status_ukm_metrics);
   }
 }
 
@@ -7160,12 +7293,11 @@
 
   autofill_manager_->Reset();
 
-  VerifyFormInteractionUkm(
-      test_ukm_recorder_, form, UkmInteractedWithFormType::kEntryName,
-      {{{UkmInteractedWithFormType::kIsForCreditCardName, false},
-        {UkmInteractedWithFormType::kLocalRecordTypeCountName, 0},
-        {UkmInteractedWithFormType::kServerRecordTypeCountName, 0}}});
-  VerifyFormInteractionUkm(
+  VerifyUkm(test_ukm_recorder_, form, UkmInteractedWithFormType::kEntryName,
+            {{{UkmInteractedWithFormType::kIsForCreditCardName, false},
+              {UkmInteractedWithFormType::kLocalRecordTypeCountName, 0},
+              {UkmInteractedWithFormType::kServerRecordTypeCountName, 0}}});
+  VerifyUkm(
       test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
       {{{UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
         {UkmTextFieldDidChangeType::kHeuristicTypeName,
@@ -7202,24 +7334,23 @@
          Collapse(CalculateFieldSignatureForField(form.fields[1]))},
         {UkmSuggestionsShownType::kFormSignatureName,
          Collapse(CalculateFormSignature(form))}}});
-  VerifyFormInteractionUkm(
-      test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
-      {{{UkmSuggestionFilledType::kRecordTypeName,
-         AutofillProfile::LOCAL_PROFILE},
-        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-        {UkmSuggestionFilledType::kIsForCreditCardName, false},
-        {UkmSuggestionFilledType::kFieldSignatureName,
-         Collapse(CalculateFieldSignatureForField(form.fields[0]))},
-        {UkmSuggestionFilledType::kFormSignatureName,
-         Collapse(CalculateFormSignature(form))}},
-       {{UkmSuggestionFilledType::kRecordTypeName,
-         AutofillProfile::LOCAL_PROFILE},
-        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
-        {UkmSuggestionFilledType::kFieldSignatureName,
-         Collapse(CalculateFieldSignatureForField(form.fields[2]))},
-        {UkmSuggestionFilledType::kFormSignatureName,
-         Collapse(CalculateFormSignature(form))}}});
-  VerifyFormInteractionUkm(
+  VerifyUkm(test_ukm_recorder_, form, UkmSuggestionFilledType::kEntryName,
+            {{{UkmSuggestionFilledType::kRecordTypeName,
+               AutofillProfile::LOCAL_PROFILE},
+              {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+              {UkmSuggestionFilledType::kIsForCreditCardName, false},
+              {UkmSuggestionFilledType::kFieldSignatureName,
+               Collapse(CalculateFieldSignatureForField(form.fields[0]))},
+              {UkmSuggestionFilledType::kFormSignatureName,
+               Collapse(CalculateFormSignature(form))}},
+             {{UkmSuggestionFilledType::kRecordTypeName,
+               AutofillProfile::LOCAL_PROFILE},
+              {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0},
+              {UkmSuggestionFilledType::kFieldSignatureName,
+               Collapse(CalculateFieldSignatureForField(form.fields[2]))},
+              {UkmSuggestionFilledType::kFormSignatureName,
+               Collapse(CalculateFormSignature(form))}}});
+  VerifyUkm(
       test_ukm_recorder_, form, UkmTextFieldDidChangeType::kEntryName,
       {{{UkmTextFieldDidChangeType::kFieldTypeGroupName, NAME},
         {UkmTextFieldDidChangeType::kHeuristicTypeName, NAME_FULL},
@@ -8123,7 +8254,7 @@
   // Simulate and Autofill query on credit card name field.
   autofill_manager_->DidShowSuggestions(true /* is_new_popup */, form,
                                         form.fields[0]);
-  VerifyFormInteractionUkm(
+  VerifyUkm(
       test_ukm_recorder_, form, UkmSuggestionsShownType::kEntryName,
       {{{UkmSuggestionsShownType::kMillisecondsSinceFormParsedName, 0},
         {UkmSuggestionsShownType::kHeuristicTypeName, CREDIT_CARD_NAME_FULL},
@@ -8434,12 +8565,19 @@
 // Verify that we correctly log FormEvent metrics with the appropriate sync
 // state.
 TEST_F(AutofillMetricsTest, FormEventMetrics_BySyncState) {
+  FormData form;
+  FormStructure form_structure(form);
+  std::vector<FormData> forms(1, form);
+  autofill_manager_->OnFormsSeen(forms, TimeTicks::Now());
+  autofill_manager_->Reset();
+
   {
     base::HistogramTester histogram_tester;
     AddressFormEventLogger logger(
         /*is_in_main_frame=*/true,
         /*form_interactions_ukm_logger=*/nullptr);
-    logger.OnDidSeeFillableDynamicForm(AutofillSyncSigninState::kSignedOut);
+    logger.OnDidSeeFillableDynamicForm(AutofillSyncSigninState::kSignedOut,
+                                       form_structure);
     histogram_tester.ExpectBucketCount(
         "Autofill.FormEvents.Address.WithNoData.SignedOut",
         FORM_EVENT_DID_SEE_FILLABLE_DYNAMIC_FORM, 1);
@@ -8449,7 +8587,7 @@
     AddressFormEventLogger logger(
         /*is_in_main_frame=*/true,
         /*form_interactions_ukm_logger=*/nullptr);
-    logger.OnDidRefill(AutofillSyncSigninState::kSignedIn);
+    logger.OnDidRefill(AutofillSyncSigninState::kSignedIn, form_structure);
     histogram_tester.ExpectBucketCount(
         "Autofill.FormEvents.Address.WithNoData.SignedIn",
         FORM_EVENT_DID_DYNAMIC_REFILL, 1);
diff --git a/components/autofill/core/browser/metrics/address_form_event_logger.cc b/components/autofill/core/browser/metrics/address_form_event_logger.cc
index 9d3d47d..06674d12 100644
--- a/components/autofill/core/browser/metrics/address_form_event_logger.cc
+++ b/components/autofill/core/browser/metrics/address_form_event_logger.cc
@@ -35,9 +35,9 @@
       /*is_for_for_credit_card=*/false, form, field);
 
   if (record_type == AutofillProfile::SERVER_PROFILE) {
-    Log(FORM_EVENT_SERVER_SUGGESTION_FILLED);
+    Log(FORM_EVENT_SERVER_SUGGESTION_FILLED, form);
   } else {
-    Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED);
+    Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED, form);
   }
 
   if (!has_logged_suggestion_filled_) {
@@ -46,7 +46,8 @@
         record_type == AutofillProfile::SERVER_PROFILE;
     Log(record_type == AutofillProfile::SERVER_PROFILE
             ? FORM_EVENT_SERVER_SUGGESTION_FILLED_ONCE
-            : FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE);
+            : FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE,
+        form);
   }
 
   base::RecordAction(
@@ -54,20 +55,23 @@
 }
 
 void AddressFormEventLogger::OnDidSeeFillableDynamicForm(
-    AutofillSyncSigninState sync_state) {
+    AutofillSyncSigninState sync_state,
+    const FormStructure& form) {
   sync_state_ = sync_state;
-  Log(FORM_EVENT_DID_SEE_FILLABLE_DYNAMIC_FORM);
+  Log(FORM_EVENT_DID_SEE_FILLABLE_DYNAMIC_FORM, form);
 }
 
-void AddressFormEventLogger::OnDidRefill(AutofillSyncSigninState sync_state) {
+void AddressFormEventLogger::OnDidRefill(AutofillSyncSigninState sync_state,
+                                         const FormStructure& form) {
   sync_state_ = sync_state;
-  Log(FORM_EVENT_DID_DYNAMIC_REFILL);
+  Log(FORM_EVENT_DID_DYNAMIC_REFILL, form);
 }
 
 void AddressFormEventLogger::OnSubsequentRefillAttempt(
-    AutofillSyncSigninState sync_state) {
+    AutofillSyncSigninState sync_state,
+    const FormStructure& form) {
   sync_state_ = sync_state;
-  Log(FORM_EVENT_DYNAMIC_CHANGE_AFTER_REFILL);
+  Log(FORM_EVENT_DYNAMIC_CHANGE_AFTER_REFILL, form);
 }
 
 void AddressFormEventLogger::RecordPollSuggestions() {
diff --git a/components/autofill/core/browser/metrics/address_form_event_logger.h b/components/autofill/core/browser/metrics/address_form_event_logger.h
index c44d979..a115ffb 100644
--- a/components/autofill/core/browser/metrics/address_form_event_logger.h
+++ b/components/autofill/core/browser/metrics/address_form_event_logger.h
@@ -25,11 +25,14 @@
                            const AutofillField& field,
                            AutofillSyncSigninState sync_state);
 
-  void OnDidSeeFillableDynamicForm(AutofillSyncSigninState sync_state);
+  void OnDidSeeFillableDynamicForm(AutofillSyncSigninState sync_state,
+                                   const FormStructure& form);
 
-  void OnDidRefill(AutofillSyncSigninState sync_state);
+  void OnDidRefill(AutofillSyncSigninState sync_state,
+                   const FormStructure& form);
 
-  void OnSubsequentRefillAttempt(AutofillSyncSigninState sync_state);
+  void OnSubsequentRefillAttempt(AutofillSyncSigninState sync_state,
+                                 const FormStructure& form);
 
  protected:
   void RecordPollSuggestions() override;
@@ -39,4 +42,4 @@
 
 }  // namespace autofill
 
-#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_ADDRESS_FORM_EVENT_LOGGER_H_
\ No newline at end of file
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_ADDRESS_FORM_EVENT_LOGGER_H_
diff --git a/components/autofill/core/browser/metrics/credit_card_form_event_logger.cc b/components/autofill/core/browser/metrics/credit_card_form_event_logger.cc
index bd316d0..ea19e73 100644
--- a/components/autofill/core/browser/metrics/credit_card_form_event_logger.cc
+++ b/components/autofill/core/browser/metrics/credit_card_form_event_logger.cc
@@ -34,16 +34,14 @@
 CreditCardFormEventLogger::~CreditCardFormEventLogger() = default;
 
 void CreditCardFormEventLogger::OnDidSelectMaskedServerCardSuggestion(
-    const base::TimeTicks& form_parsed_timestamp,
+    const FormStructure& form,
     AutofillSyncSigninState sync_state) {
   sync_state_ = sync_state;
-  form_interactions_ukm_logger_->LogSelectedMaskedServerCard(
-      form_parsed_timestamp);
 
-  Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SELECTED);
+  Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SELECTED, form);
   if (!has_logged_masked_server_card_suggestion_selected_) {
     has_logged_masked_server_card_suggestion_selected_ = true;
-    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SELECTED_ONCE);
+    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SELECTED_ONCE, form);
   }
 }
 
@@ -64,11 +62,11 @@
       /*is_for_credit_card=*/true, form, field);
 
   if (record_type == CreditCard::MASKED_SERVER_CARD)
-    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED);
+    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED, form);
   else if (record_type == CreditCard::FULL_SERVER_CARD)
-    Log(FORM_EVENT_SERVER_SUGGESTION_FILLED);
+    Log(FORM_EVENT_SERVER_SUGGESTION_FILLED, form);
   else
-    Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED);
+    Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED, form);
 
   if (!has_logged_suggestion_filled_) {
     has_logged_suggestion_filled_ = true;
@@ -78,17 +76,17 @@
     logged_suggestion_filled_was_masked_server_card_ =
         record_type == CreditCard::MASKED_SERVER_CARD;
     if (record_type == CreditCard::MASKED_SERVER_CARD) {
-      Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED_ONCE);
+      Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED_ONCE, form);
       if (has_logged_bank_name_available_) {
         Log(FORM_EVENT_SERVER_SUGGESTION_FILLED_WITH_BANK_NAME_AVAILABLE_ONCE);
       }
     } else if (record_type == CreditCard::FULL_SERVER_CARD) {
-      Log(FORM_EVENT_SERVER_SUGGESTION_FILLED_ONCE);
+      Log(FORM_EVENT_SERVER_SUGGESTION_FILLED_ONCE, form);
       if (has_logged_bank_name_available_) {
         Log(FORM_EVENT_SERVER_SUGGESTION_FILLED_WITH_BANK_NAME_AVAILABLE_ONCE);
       }
     } else {
-      Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE);
+      Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE, form);
     }
   }
 
@@ -110,27 +108,27 @@
       base::UserMetricsAction("Autofill_ShowedCreditCardSuggestions"));
 }
 
-void CreditCardFormEventLogger::LogWillSubmitForm() {
+void CreditCardFormEventLogger::LogWillSubmitForm(const FormStructure& form) {
   if (!has_logged_suggestion_filled_) {
-    Log(FORM_EVENT_NO_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_NO_SUGGESTION_WILL_SUBMIT_ONCE, form);
   } else if (logged_suggestion_filled_was_masked_server_card_) {
-    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_WILL_SUBMIT_ONCE, form);
   } else if (logged_suggestion_filled_was_server_data_) {
-    Log(FORM_EVENT_SERVER_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_SERVER_SUGGESTION_WILL_SUBMIT_ONCE, form);
   } else {
-    Log(FORM_EVENT_LOCAL_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_LOCAL_SUGGESTION_WILL_SUBMIT_ONCE, form);
   }
 }
 
-void CreditCardFormEventLogger::LogFormSubmitted() {
+void CreditCardFormEventLogger::LogFormSubmitted(const FormStructure& form) {
   if (!has_logged_suggestion_filled_) {
-    Log(FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, form);
   } else if (logged_suggestion_filled_was_masked_server_card_) {
-    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SUBMITTED_ONCE, form);
   } else if (logged_suggestion_filled_was_server_data_) {
-    Log(FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, form);
   } else {
-    Log(FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, form);
   }
 }
 
@@ -152,7 +150,7 @@
   if (!has_logged_suggestion_filled_) {
     const CreditCard credit_card =
         client_->GetFormDataImporter()->ExtractCreditCardFromForm(form);
-    Log(GetCardNumberStatusFormEvent(credit_card));
+    Log(GetCardNumberStatusFormEvent(credit_card), form);
   }
 }
 
diff --git a/components/autofill/core/browser/metrics/credit_card_form_event_logger.h b/components/autofill/core/browser/metrics/credit_card_form_event_logger.h
index 21d1230b..67a1632 100644
--- a/components/autofill/core/browser/metrics/credit_card_form_event_logger.h
+++ b/components/autofill/core/browser/metrics/credit_card_form_event_logger.h
@@ -43,7 +43,7 @@
   }
 
   void OnDidSelectMaskedServerCardSuggestion(
-      const base::TimeTicks& form_parsed_timestamp,
+      const FormStructure& form,
       AutofillSyncSigninState sync_state);
 
   void SetBankNameAvailable();
@@ -62,8 +62,8 @@
   void RecordShowSuggestions() override;
 
   // FormEventLoggerBase virtual overrides.
-  void LogWillSubmitForm() override;
-  void LogFormSubmitted() override;
+  void LogWillSubmitForm(const FormStructure& form) override;
+  void LogFormSubmitted(const FormStructure& form) override;
   void LogUkmInteractedWithForm(FormSignature form_signature) override;
   void OnSuggestionsShownOnce() override;
   void OnSuggestionsShownSubmittedOnce(const FormStructure& form) override;
@@ -88,4 +88,4 @@
 
 }  // namespace autofill
 
-#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_CREDIT_CARD_FORM_EVENT_LOGGER_H_
\ No newline at end of file
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_CREDIT_CARD_FORM_EVENT_LOGGER_H_
diff --git a/components/autofill/core/browser/metrics/form_event_logger_base.cc b/components/autofill/core/browser/metrics/form_event_logger_base.cc
index d68bb03c..99025b5 100644
--- a/components/autofill/core/browser/metrics/form_event_logger_base.cc
+++ b/components/autofill/core/browser/metrics/form_event_logger_base.cc
@@ -34,13 +34,13 @@
 FormEventLoggerBase::~FormEventLoggerBase() = default;
 
 void FormEventLoggerBase::OnDidInteractWithAutofillableForm(
-    FormSignature form_signature,
+    const FormStructure& form,
     AutofillSyncSigninState sync_state) {
   sync_state_ = sync_state;
   if (!has_logged_interacted_) {
     has_logged_interacted_ = true;
-    LogUkmInteractedWithForm(form_signature);
-    Log(FORM_EVENT_INTERACTED_ONCE);
+    LogUkmInteractedWithForm(form.form_signature());
+    Log(FORM_EVENT_INTERACTED_ONCE, form);
   }
 }
 
@@ -58,17 +58,17 @@
   }
 }
 
-void FormEventLoggerBase::OnDidParseForm() {
-  Log(FORM_EVENT_DID_PARSE_FORM);
+void FormEventLoggerBase::OnDidParseForm(const FormStructure& form) {
+  Log(FORM_EVENT_DID_PARSE_FORM, form);
   RecordParseForm();
 }
 
 void FormEventLoggerBase::OnPopupSuppressed(const FormStructure& form,
                                             const AutofillField& field) {
-  Log(FORM_EVENT_POPUP_SUPPRESSED);
+  Log(FORM_EVENT_POPUP_SUPPRESSED, form);
   if (!has_logged_popup_suppressed_) {
     has_logged_popup_suppressed_ = true;
-    Log(FORM_EVENT_POPUP_SUPPRESSED_ONCE);
+    Log(FORM_EVENT_POPUP_SUPPRESSED_ONCE, form);
   }
 }
 
@@ -81,17 +81,18 @@
   form_interactions_ukm_logger_->LogSuggestionsShown(form, field,
                                                      form_parsed_timestamp);
 
-  Log(FORM_EVENT_SUGGESTIONS_SHOWN);
+  Log(FORM_EVENT_SUGGESTIONS_SHOWN, form);
   if (!has_logged_suggestions_shown_) {
     has_logged_suggestions_shown_ = true;
-    Log(FORM_EVENT_SUGGESTIONS_SHOWN_ONCE);
+    Log(FORM_EVENT_SUGGESTIONS_SHOWN_ONCE, form);
     OnSuggestionsShownOnce();
   }
 
   RecordShowSuggestions();
 }
 
-void FormEventLoggerBase::OnWillSubmitForm(AutofillSyncSigninState sync_state) {
+void FormEventLoggerBase::OnWillSubmitForm(AutofillSyncSigninState sync_state,
+                                           const FormStructure& form) {
   sync_state_ = sync_state;
   // Not logging this kind of form if we haven't logged a user interaction.
   if (!has_logged_interacted_)
@@ -102,10 +103,10 @@
     return;
   has_logged_will_submit_ = true;
 
-  LogWillSubmitForm();
+  LogWillSubmitForm(form);
 
   if (has_logged_suggestions_shown_) {
-    Log(FORM_EVENT_SUGGESTION_SHOWN_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_SUGGESTION_SHOWN_WILL_SUBMIT_ONCE, form);
   }
 
   base::RecordAction(base::UserMetricsAction("Autofill_OnWillSubmitForm"));
@@ -124,19 +125,26 @@
     return;
   has_logged_submitted_ = true;
 
-  LogFormSubmitted();
+  LogFormSubmitted(form);
 
   if (has_logged_suggestions_shown_ || force_logging) {
-    Log(FORM_EVENT_SUGGESTION_SHOWN_SUBMITTED_ONCE);
+    Log(FORM_EVENT_SUGGESTION_SHOWN_SUBMITTED_ONCE, form);
     OnSuggestionsShownSubmittedOnce(form);
   }
 }
 
-void FormEventLoggerBase::Log(FormEvent event) const {
+void FormEventLoggerBase::Log(FormEvent event,
+                              const FormStructure& form) const {
   DCHECK_LT(event, NUM_FORM_EVENTS);
   std::string name("Autofill.FormEvents." + form_type_name_);
   base::UmaHistogramEnumeration(name, event, NUM_FORM_EVENTS);
 
+  // Log UKM metrics for only autofillable form events.
+  if (form.IsAutofillable()) {
+    form_interactions_ukm_logger_->LogFormEvent(event, form.GetFormTypes(),
+                                                form.form_parsed_timestamp());
+  }
+
   // Log again in a different histogram so that iframes can be analyzed on
   // their own.
   base::UmaHistogramEnumeration(
@@ -161,23 +169,23 @@
       NUM_FORM_EVENTS);
 }
 
-void FormEventLoggerBase::LogWillSubmitForm() {
+void FormEventLoggerBase::LogWillSubmitForm(const FormStructure& form) {
   if (!has_logged_suggestion_filled_) {
-    Log(FORM_EVENT_NO_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_NO_SUGGESTION_WILL_SUBMIT_ONCE, form);
   } else if (logged_suggestion_filled_was_server_data_) {
-    Log(FORM_EVENT_SERVER_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_SERVER_SUGGESTION_WILL_SUBMIT_ONCE, form);
   } else {
-    Log(FORM_EVENT_LOCAL_SUGGESTION_WILL_SUBMIT_ONCE);
+    Log(FORM_EVENT_LOCAL_SUGGESTION_WILL_SUBMIT_ONCE, form);
   }
 }
 
-void FormEventLoggerBase::LogFormSubmitted() {
+void FormEventLoggerBase::LogFormSubmitted(const FormStructure& form) {
   if (!has_logged_suggestion_filled_) {
-    Log(FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, form);
   } else if (logged_suggestion_filled_was_server_data_) {
-    Log(FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, form);
   } else {
-    Log(FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE);
+    Log(FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, form);
   }
 }
 
diff --git a/components/autofill/core/browser/metrics/form_event_logger_base.h b/components/autofill/core/browser/metrics/form_event_logger_base.h
index be198e7..173df3b 100644
--- a/components/autofill/core/browser/metrics/form_event_logger_base.h
+++ b/components/autofill/core/browser/metrics/form_event_logger_base.h
@@ -36,13 +36,13 @@
     local_record_type_count_ = local_record_type_count;
   }
 
-  void OnDidInteractWithAutofillableForm(FormSignature form_signature,
+  void OnDidInteractWithAutofillableForm(const FormStructure& form,
                                          AutofillSyncSigninState sync_state);
 
   void OnDidPollSuggestions(const FormFieldData& field,
                             AutofillSyncSigninState sync_state);
 
-  void OnDidParseForm();
+  void OnDidParseForm(const FormStructure& form);
 
   void OnPopupSuppressed(const FormStructure& form, const AutofillField& field);
 
@@ -51,7 +51,8 @@
                             const base::TimeTicks& form_parsed_timestamp,
                             AutofillSyncSigninState sync_state);
 
-  void OnWillSubmitForm(AutofillSyncSigninState sync_state);
+  void OnWillSubmitForm(AutofillSyncSigninState sync_state,
+                        const FormStructure& form);
 
   void OnFormSubmitted(bool force_logging,
                        AutofillSyncSigninState sync_state,
@@ -60,14 +61,14 @@
  protected:
   virtual ~FormEventLoggerBase();
 
-  void Log(FormEvent event) const;
+  void Log(FormEvent event, const FormStructure& form) const;
 
   virtual void RecordPollSuggestions() = 0;
   virtual void RecordParseForm() = 0;
   virtual void RecordShowSuggestions() = 0;
 
-  virtual void LogWillSubmitForm();
-  virtual void LogFormSubmitted();
+  virtual void LogWillSubmitForm(const FormStructure& form);
+  virtual void LogFormSubmitted(const FormStructure& form);
 
   // Only used for UKM backward compatibility since it depends on IsCreditCard.
   // TODO (crbug.com/925913): Remove IsCreditCard from UKM logs amd replace with
diff --git a/components/autofill_assistant/browser/actions/autofill_action_unittest.cc b/components/autofill_assistant/browser/actions/autofill_action_unittest.cc
index f0e0a1f..5110a38c 100644
--- a/components/autofill_assistant/browser/actions/autofill_action_unittest.cc
+++ b/components/autofill_assistant/browser/actions/autofill_action_unittest.cc
@@ -35,7 +35,7 @@
 class MockPersonalDataManager : public autofill::PersonalDataManager {
  public:
   MockPersonalDataManager() : PersonalDataManager("en-US") {}
-  ~MockPersonalDataManager() override{};
+  ~MockPersonalDataManager() override {}
 
   // PersonalDataManager:
   std::string SaveImportedProfile(
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index 5d03b19..8028870 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -41,6 +41,46 @@
    "dns_api_endpoint": "argon2021.ct.googleapis.com"
   },
   {
+   "description": "Google 'Xenon2019' log",
+   "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/XyDwqzXL9i2GTjMYkqaEyiRL0Dy9sHq/BTebFdshbvCaXXEh6mjUK0Yy+AsDcI4MpzF1l7Kded2MD5zi420gA==",
+   "url": "ct.googleapis.com/logs/xenon2019/",
+   "maximum_merge_delay": 86400,
+   "operated_by": [
+    0
+   ],
+   "dns_api_endpoint": "xenon2019.ct.googleapis.com"
+  },
+  {
+   "description": "Google 'Xenon2020' log",
+   "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZU75VqjyzSTgFZKAnWg1QeYfFFIRZTMK7q3kWWZsmHhQdrBYnHRZ3OA4kUeUx0JN+xX+dSgt1ruqUhhl7jOvmw==",
+   "url": "ct.googleapis.com/logs/xenon2020/",
+   "maximum_merge_delay": 86400,
+   "operated_by": [
+    0
+   ],
+   "dns_api_endpoint": "xenon2020.ct.googleapis.com"
+  },
+  {
+   "description": "Google 'Xenon2021' log",
+   "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAER+1MInu8Q39BwDZ5Rp9TwXhwm3ktvgJzpk/r7dDgGk7ZacMm3ljfcoIvP1E72T8jvyLT1bvdapylajZcTH6W5g==",
+   "url": "ct.googleapis.com/logs/xenon2021/",
+   "maximum_merge_delay": 86400,
+   "operated_by": [
+    0
+   ],
+   "dns_api_endpoint": "xenon2021.ct.googleapis.com"
+  },
+  {
+   "description": "Google 'Xenon2022' log",
+   "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+WS9FSxAYlCVEzg8xyGwOrmPonoV14nWjjETAIdZvLvukPzIWBMKv6tDNlQjpIHNrUcUt1igRPpqoKDXw2MeKw==",
+   "url": "ct.googleapis.com/logs/xenon2022/",
+   "maximum_merge_delay": 86400,
+   "operated_by": [
+    0
+   ],
+   "dns_api_endpoint": "xenon2022.ct.googleapis.com"
+  },
+  {
    "description": "Google 'Aviator' log",
    "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1/TMabLkDpCjiupacAlP7xNi0I1JYP8bQFAHDG1xhtolSY1l4QgNRzRrvSe8liE+NPWHdjGxfx3JhTsN9x8/6Q==",
    "url": "ct.googleapis.com/aviator/",
diff --git a/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.cc b/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.cc
index 8844e3d..11b8f252 100644
--- a/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.cc
+++ b/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.cc
@@ -76,6 +76,14 @@
   if (params::IsWarmupURL(response_url))
     return;
 
+  MaybeRetry(proxy_server, response_head.headers.get(), net::OK, defer);
+}
+
+void DataReductionProxyURLLoaderThrottle::MaybeRetry(
+    const net::ProxyServer& proxy_server,
+    const net::HttpResponseHeaders* headers,
+    net::Error net_error,
+    bool* defer) {
   // The set of data reduction proxy servers to mark as bad prior to
   // restarting the request.
   std::vector<net::ProxyServer> bad_proxies;
@@ -83,10 +91,6 @@
   // TODO(https://crbug.com/721403): Implement retry due to authentication
   // failure.
 
-  // TODO(https://crbug.com/721403): Should be calling this for cases where the
-  // request failed with an error too.
-  net::Error net_error = net::OK;
-
   // TODO(https://crbug.com/721403): Need the actual bad proxies map. Since
   // this is only being used for some metrics logging not a big deal.
   net::ProxyRetryInfoMap proxy_retry_info;
@@ -97,8 +101,8 @@
 
   DataReductionProxyBypassProtocol protocol;
   pending_restart_ = protocol.MaybeBypassProxyAndPrepareToRetry(
-      request_method_, url_chain_, response_head.headers.get(),
-      response_head.proxy_server, net_error, proxy_retry_info,
+      request_method_, url_chain_, headers, proxy_server, net_error,
+      proxy_retry_info,
       manager_->FindConfiguredDataReductionProxy(proxy_server), &bypass_type,
       &data_reduction_proxy_info, &bad_proxies, &pending_restart_load_flags_);
 
@@ -130,6 +134,13 @@
                          is_main_frame_);
 }
 
+void DataReductionProxyURLLoaderThrottle::WillOnCompleteWithError(
+    const network::URLLoaderCompletionStatus& status,
+    bool* defer) {
+  MaybeRetry(status.proxy_server, nullptr,
+             static_cast<net::Error>(status.error_code), defer);
+}
+
 void DataReductionProxyURLLoaderThrottle::MarkProxiesAsBad(
     const std::vector<net::ProxyServer>& bad_proxies,
     base::TimeDelta bypass_duration) {
diff --git a/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.h b/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.h
index fc46145..d8d7eda 100644
--- a/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.h
+++ b/components/data_reduction_proxy/content/common/data_reduction_proxy_url_loader_throttle.h
@@ -45,8 +45,16 @@
   void WillProcessResponse(const GURL& response_url,
                            network::ResourceResponseHead* response_head,
                            bool* defer) override;
+  void WillOnCompleteWithError(const network::URLLoaderCompletionStatus& status,
+                               bool* defer) override;
 
  private:
+  // Retry the request bypassing proxies or falling back to next proxy based on
+  // |net_error| and the response headers.
+  void MaybeRetry(const net::ProxyServer& proxy_server,
+                  const net::HttpResponseHeaders* headers,
+                  net::Error net_error,
+                  bool* defer);
   // Marks |bad_proxies| to be bypassed for |bypass_duration|. Once that action
   // has completed will call OnMarkProxiesAsBadComplete().
   void MarkProxiesAsBad(const std::vector<net::ProxyServer>& bad_proxies,
diff --git a/components/leveldb_proto/internal/shared_proto_database.cc b/components/leveldb_proto/internal/shared_proto_database.cc
index 028553d..574b38c 100644
--- a/components/leveldb_proto/internal/shared_proto_database.cc
+++ b/components/leveldb_proto/internal/shared_proto_database.cc
@@ -18,13 +18,15 @@
 
 namespace {
 
-const char kMetadataDatabaseName[] = "metadata";
+const char kMetadataDatabaseName[] = "Metadata";
 const base::FilePath::CharType kMetadataDatabasePath[] =
     FILE_PATH_LITERAL("metadata");
 const int kMaxInitMetaDatabaseAttempts = 3;
 
 const char kGlobalMetadataKey[] = "__global";
 
+const char kSharedProtoDatabaseUmaName[] = "SharedDb";
+
 }  // namespace
 
 // static
@@ -321,6 +323,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(on_task_runner_);
   auto options = CreateSimpleOptions();
   options.create_if_missing = create_shared_db_if_missing;
+  db_wrapper_->SetMetricsId(kSharedProtoDatabaseUmaName);
   // |db_wrapper_| uses the same SequencedTaskRunner that Init is called on,
   // so OnDatabaseInit will be called on the same sequence after Init.
   // This means any callers to Init using the same TaskRunner can guarantee that
diff --git a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc
index 40dcaf63..93e43a8 100644
--- a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc
+++ b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc
@@ -73,7 +73,7 @@
 
 class MockInstanceIDDriver : public InstanceIDDriver {
  public:
-  MockInstanceIDDriver() : InstanceIDDriver(/*gcm_driver=*/nullptr){};
+  MockInstanceIDDriver() : InstanceIDDriver(/*gcm_driver=*/nullptr) {}
   ~MockInstanceIDDriver() override = default;
 
   MOCK_METHOD1(GetInstanceID, InstanceID*(const std::string& app_id));
diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
index f91a1d4a..ec5c26d 100644
--- a/components/ntp_tiles/BUILD.gn
+++ b/components/ntp_tiles/BUILD.gn
@@ -114,6 +114,7 @@
     "//testing/gmock",
     "//testing/gtest",
     "//ui/base",
+    "//ui/base:test_support",
     "//ui/gfx:test_support",
   ]
 }
diff --git a/components/ntp_tiles/icon_cacher_impl_unittest.cc b/components/ntp_tiles/icon_cacher_impl_unittest.cc
index c9fd3dbe..93f0150 100644
--- a/components/ntp_tiles/icon_cacher_impl_unittest.cc
+++ b/components/ntp_tiles/icon_cacher_impl_unittest.cc
@@ -32,6 +32,7 @@
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/resource/mock_resource_bundle_delegate.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_paths.h"
 #include "ui/gfx/image/image_unittest_util.h"
@@ -53,36 +54,6 @@
 namespace {
 using MockImageDecoder = image_fetcher::MockImageDecoder;
 
-// This class provides methods to inject an image resource where a real resource
-// would be necessary otherwise. All other methods have return values that allow
-// the normal implementation to proceed.
-class MockResourceDelegate : public ui::ResourceBundle::Delegate {
- public:
-  ~MockResourceDelegate() override {}
-
-  MOCK_METHOD1(GetImageNamed, gfx::Image(int resource_id));
-  MOCK_METHOD1(GetNativeImageNamed, gfx::Image(int resource_id));
-
-  MOCK_METHOD2(GetPathForResourcePack,
-               base::FilePath(const base::FilePath& pack_path,
-                              ui::ScaleFactor scale_factor));
-
-  MOCK_METHOD2(GetPathForLocalePack,
-               base::FilePath(const base::FilePath& pack_path,
-                              const std::string& locale));
-
-  MOCK_METHOD2(LoadDataResourceBytes,
-               base::RefCountedMemory*(int resource_id,
-                                       ui::ScaleFactor scale_factor));
-
-  MOCK_METHOD3(GetRawDataResource,
-               bool(int resource_id,
-                    ui::ScaleFactor scale_factor,
-                    base::StringPiece* value));
-
-  MOCK_METHOD2(GetLocalizedString, bool(int message_id, base::string16* value));
-};
-
 ACTION(FailFetch) {
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(*arg2), gfx::Image(),
@@ -215,7 +186,7 @@
   PopularSites::Site site_;
   std::unique_ptr<MockImageFetcher> image_fetcher_;
   std::unique_ptr<MockImageDecoder> image_decoder_;
-  NiceMock<MockResourceDelegate> mock_resource_delegate_;
+  NiceMock<ui::MockResourceBundleDelegate> mock_resource_delegate_;
 };
 
 TEST_F(IconCacherTestPopularSites, LargeCached) {
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 6ce9bfb..e107acb 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -8597,6 +8597,8 @@
 
           If this policy is unset, a default scale factor is used.
 
+          This policy only takes effect if the <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME">PowerSmartDimEnabled</ph> is disabled. Otherwise, this policy is ignored because the screen dim delay is deteremined by a machine-learning model.
+
           The scale factor must be 100% or more. Values that would make the screen dim delay in presentation mode shorter than the regular screen dim delay are not allowed.''',
     },
     {
@@ -8656,6 +8658,8 @@
 
           If this policy is unset, a default scale factor is used.
 
+          This policy only takes effect if the <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME">PowerSmartDimEnabled</ph> policy is disabled. Otherwise, this policy is ignored because the screen dim delay is deteremined by a machine-learning model.
+
           The scale factor must be 100% or more.''',
     },
     {
diff --git a/components/previews/content/previews_optimization_guide.cc b/components/previews/content/previews_optimization_guide.cc
index 2caf0e3..a20e0868 100644
--- a/components/previews/content/previews_optimization_guide.cc
+++ b/components/previews/content/previews_optimization_guide.cc
@@ -199,10 +199,11 @@
   if (manual_config) {
     // Allow |UpdateHints| to block startup so that the first navigation gets
     // the hints when a command line hint proto is provided.
-    UpdateHints(PreviewsHints::CreateFromHintsConfiguration(
-        std::move(manual_config),
-        hint_cache_->MaybeCreateComponentUpdateData(
-            base::Version(kManualConfigComponentVersion))));
+    UpdateHints(base::OnceClosure(),
+                PreviewsHints::CreateFromHintsConfiguration(
+                    std::move(manual_config),
+                    hint_cache_->MaybeCreateComponentUpdateData(
+                        base::Version(kManualConfigComponentVersion))));
   }
   // Register as an observer regardless of hint proto override usage. This is
   // needed as a signal during testing.
@@ -232,10 +233,12 @@
       base::BindOnce(&PreviewsHints::CreateFromHintsComponent, info,
                      hint_cache_->MaybeCreateComponentUpdateData(info.version)),
       base::BindOnce(&PreviewsOptimizationGuide::UpdateHints,
-                     ui_weak_ptr_factory_.GetWeakPtr()));
+                     ui_weak_ptr_factory_.GetWeakPtr(),
+                     std::move(next_update_closure_)));
 }
 
 void PreviewsOptimizationGuide::UpdateHints(
+    base::OnceClosure update_closure,
     std::unique_ptr<PreviewsHints> hints) {
   DCHECK(ui_task_runner_->BelongsToCurrentThread());
   hints_ = std::move(hints);
@@ -243,16 +246,18 @@
     hints_->Initialize(
         hint_cache_.get(),
         base::BindOnce(&PreviewsOptimizationGuide::OnHintsUpdated,
-                       ui_weak_ptr_factory_.GetWeakPtr()));
+                       ui_weak_ptr_factory_.GetWeakPtr(),
+                       std::move(update_closure)));
   } else {
-    OnHintsUpdated();
+    OnHintsUpdated(std::move(update_closure));
   }
 }
 
-void PreviewsOptimizationGuide::OnHintsUpdated() {
+void PreviewsOptimizationGuide::OnHintsUpdated(
+    base::OnceClosure update_closure) {
   DCHECK(ui_task_runner_->BelongsToCurrentThread());
-  if (!next_update_closure_.is_null())
-    std::move(next_update_closure_).Run();
+  if (!update_closure.is_null())
+    std::move(update_closure).Run();
 
   // Record the result of updating the hints. This is used as a signal for the
   // hints being fully processed in testing.
diff --git a/components/previews/content/previews_optimization_guide.h b/components/previews/content/previews_optimization_guide.h
index 8f8cafd3..d001eed 100644
--- a/components/previews/content/previews_optimization_guide.h
+++ b/components/previews/content/previews_optimization_guide.h
@@ -91,7 +91,8 @@
 
   PreviewsHints* GetHintsForTesting() { return hints_.get(); }
 
-  // |next_update_closure| is called the next time the hints have been updated.
+  // |next_update_closure| is called the next time OnHintsComponentAvailable is
+  // called and the corresponding hints have been updated.
   void ListenForNextUpdateForTesting(base::OnceClosure next_update_closure);
 
  private:
@@ -101,11 +102,14 @@
   void OnHintCacheInitialized();
 
   // Updates the hints to the latest hints sent by the Component Updater.
-  void UpdateHints(std::unique_ptr<PreviewsHints> hints);
+  // |update_closure| is called once the hints are updated.
+  void UpdateHints(base::OnceClosure update_closure,
+                   std::unique_ptr<PreviewsHints> hints);
 
   // Called when the hints have been fully updated with the latest hints from
   // the Component Updater. This is used as a signal during tests.
-  void OnHintsUpdated();
+  // |update_closure| is called immediately if not null.
+  void OnHintsUpdated(base::OnceClosure update_closure);
 
   // Callback when a hint is loaded.
   void OnLoadedHint(base::OnceClosure callback,
diff --git a/components/rappor/log_uploader_unittest.cc b/components/rappor/log_uploader_unittest.cc
index 56c87cf..ab761a88 100644
--- a/components/rappor/log_uploader_unittest.cc
+++ b/components/rappor/log_uploader_unittest.cc
@@ -12,7 +12,6 @@
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
 #include "net/http/http_util.h"
-#include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
 #include "services/network/test/test_url_loader_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -67,23 +66,19 @@
  public:
   LogUploaderTest()
       : scoped_task_environment_(
-            base::test::ScopedTaskEnvironment::MainThreadType::UI),
-        test_shared_loader_factory_(
-            base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
-                &test_url_loader_factory_)) {}
+            base::test::ScopedTaskEnvironment::MainThreadType::UI) {}
 
  protected:
   // Required for base::ThreadTaskRunnerHandle::Get().
   base::test::ScopedTaskEnvironment scoped_task_environment_;
   network::TestURLLoaderFactory test_url_loader_factory_;
-  scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(LogUploaderTest);
 };
 
 TEST_F(LogUploaderTest, Success) {
-  TestLogUploader uploader(test_shared_loader_factory_);
+  TestLogUploader uploader(test_url_loader_factory_.GetSafeWeakWrapper());
   test_url_loader_factory_.AddResponse(kTestServerURL, "");
 
   uploader.QueueLog("log1");
@@ -93,7 +88,7 @@
 }
 
 TEST_F(LogUploaderTest, Rejection) {
-  TestLogUploader uploader(test_shared_loader_factory_);
+  TestLogUploader uploader(test_url_loader_factory_.GetSafeWeakWrapper());
 
   network::ResourceResponseHead response_head;
   std::string headers("HTTP/1.1 400 Bad Request\nContent-type: text/html\n\n");
@@ -110,7 +105,7 @@
 }
 
 TEST_F(LogUploaderTest, Failure) {
-  TestLogUploader uploader(test_shared_loader_factory_);
+  TestLogUploader uploader(test_url_loader_factory_.GetSafeWeakWrapper());
 
   network::ResourceResponseHead response_head;
   std::string headers(
diff --git a/components/signin/core/browser/fake_signin_manager.cc b/components/signin/core/browser/fake_signin_manager.cc
index 953ff28..25d76a9 100644
--- a/components/signin/core/browser/fake_signin_manager.cc
+++ b/components/signin/core/browser/fake_signin_manager.cc
@@ -12,18 +12,6 @@
 #include "components/signin/core/browser/signin_metrics.h"
 #include "components/signin/core/browser/signin_pref_names.h"
 
-FakeSigninManagerBase::FakeSigninManagerBase(
-    SigninClient* client,
-    ProfileOAuth2TokenService* token_service,
-    AccountTrackerService* account_tracker_service)
-    : SigninManagerBase(client, token_service, account_tracker_service) {}
-
-FakeSigninManagerBase::~FakeSigninManagerBase() {}
-
-void FakeSigninManagerBase::SignIn(const std::string& account_id) {
-  SetAuthenticatedAccountId(account_id);
-}
-
 #if !defined(OS_CHROMEOS)
 
 FakeSigninManager::FakeSigninManager(
@@ -47,8 +35,7 @@
                     token_service,
                     account_tracker_service,
                     cookie_manager_service,
-                    account_consistency),
-      token_service_(token_service) {}
+                    account_consistency) {}
 
 FakeSigninManager::~FakeSigninManager() {}
 
@@ -67,11 +54,6 @@
           signin_metrics::SignoutDelete::IGNORE_METRIC);
 }
 
-void FakeSigninManager::FailSignin(const GoogleServiceAuthError& error) {
-  for (auto& observer : observer_list_)
-    observer.GoogleSigninFailed(error);
-}
-
 void FakeSigninManager::OnSignoutDecisionReached(
     signin_metrics::ProfileSignout signout_source_metric,
     signin_metrics::SignoutDelete signout_delete_metric,
@@ -92,12 +74,12 @@
   authenticated_account_id_.clear();
   switch (remove_option) {
     case RemoveAccountsOption::kRemoveAllAccounts:
-      if (token_service_)
-        token_service_->RevokeAllCredentials();
+      if (token_service())
+        token_service()->RevokeAllCredentials();
       break;
     case RemoveAccountsOption::kRemoveAuthenticatedAccountIfInError:
-      if (token_service_ && token_service_->RefreshTokenHasError(account_id))
-        token_service_->RevokeCredentials(account_id);
+      if (token_service() && token_service()->RefreshTokenHasError(account_id))
+        token_service()->RevokeCredentials(account_id);
       break;
     case RemoveAccountsOption::kKeepAllAccounts:
       // Do nothing.
diff --git a/components/signin/core/browser/fake_signin_manager.h b/components/signin/core/browser/fake_signin_manager.h
index a04d04e..826e25a1 100644
--- a/components/signin/core/browser/fake_signin_manager.h
+++ b/components/signin/core/browser/fake_signin_manager.h
@@ -15,16 +15,6 @@
 
 // SigninManager to use for testing.
 
-class FakeSigninManagerBase : public SigninManagerBase {
- public:
-  FakeSigninManagerBase(SigninClient* client,
-                        ProfileOAuth2TokenService* token_service,
-                        AccountTrackerService* account_tracker_service);
-  ~FakeSigninManagerBase() override;
-
-  void SignIn(const std::string& account_id);
-};
-
 #if !defined(OS_CHROMEOS)
 
 // A signin manager that bypasses actual authentication routines with servers
@@ -48,19 +38,12 @@
 
   void ForceSignOut();
 
-  void FailSignin(const GoogleServiceAuthError& error);
-
  protected:
   void OnSignoutDecisionReached(
       signin_metrics::ProfileSignout signout_source_metric,
       signin_metrics::SignoutDelete signout_delete_metric,
       RemoveAccountsOption remove_option,
       SigninClient::SignoutDecision signout_decision) override;
-
-  // Username specified in StartSignInWithRefreshToken() call.
-  std::string username_;
-
-  ProfileOAuth2TokenService* token_service_;
 };
 
 #endif  // !defined (OS_CHROMEOS)
diff --git a/components/sync/driver/test_sync_service.cc b/components/sync/driver/test_sync_service.cc
index dc9c512..09f30f2 100644
--- a/components/sync/driver/test_sync_service.cc
+++ b/components/sync/driver/test_sync_service.cc
@@ -113,6 +113,11 @@
   user_settings_.SetIsUsingSecondaryPassphrase(enabled);
 }
 
+void TestSyncService::FireStateChanged() {
+  for (auto& observer : observers_)
+    observer.OnStateChanged(this);
+}
+
 SyncUserSettings* TestSyncService::GetUserSettings() {
   return &user_settings_;
 }
@@ -180,12 +185,16 @@
 
 void TestSyncService::ReadyForStartChanged(ModelType type) {}
 
-void TestSyncService::AddObserver(SyncServiceObserver* observer) {}
+void TestSyncService::AddObserver(SyncServiceObserver* observer) {
+  observers_.AddObserver(observer);
+}
 
-void TestSyncService::RemoveObserver(SyncServiceObserver* observer) {}
+void TestSyncService::RemoveObserver(SyncServiceObserver* observer) {
+  observers_.RemoveObserver(observer);
+}
 
 bool TestSyncService::HasObserver(const SyncServiceObserver* observer) const {
-  return false;
+  return observers_.HasObserver(observer);
 }
 
 void TestSyncService::AddPreferenceProvider(
diff --git a/components/sync/driver/test_sync_service.h b/components/sync/driver/test_sync_service.h
index e7bd283..fa1788d77 100644
--- a/components/sync/driver/test_sync_service.h
+++ b/components/sync/driver/test_sync_service.h
@@ -9,6 +9,7 @@
 #include <string>
 
 #include "base/macros.h"
+#include "base/observer_list.h"
 #include "components/signin/core/browser/account_info.h"
 #include "components/sync/driver/sync_service.h"
 #include "components/sync/driver/test_sync_user_settings.h"
@@ -46,6 +47,8 @@
   void SetPassphraseRequiredForDecryption(bool required);
   void SetIsUsingSecondaryPassphrase(bool enabled);
 
+  void FireStateChanged();
+
   // SyncService implementation.
   syncer::SyncUserSettings* GetUserSettings() override;
   const syncer::SyncUserSettings* GetUserSettings() const override;
@@ -121,6 +124,8 @@
 
   SyncCycleSnapshot last_cycle_snapshot_;
 
+  base::ObserverList<syncer::SyncServiceObserver>::Unchecked observers_;
+
   GURL sync_service_url_;
 
   DISALLOW_COPY_AND_ASSIGN(TestSyncService);
diff --git a/components/sync/syncable/model_type.cc b/components/sync/syncable/model_type.cc
index daab81ba..e398d6ad 100644
--- a/components/sync/syncable/model_type.cc
+++ b/components/sync/syncable/model_type.cc
@@ -31,24 +31,24 @@
 namespace syncer {
 
 struct ModelTypeInfo {
-  ModelType model_type;
+  const ModelType model_type;
   // Model Type notification string.
   // This needs to match the corresponding proto message name in sync.proto. It
   // is also used to identify the model type in the SyncModelType
   // histogram_suffix in histograms.xml. Must always be kept in sync.
-  const char* notification_type;
+  const char* const notification_type;
   // Root tag for Model Type
   // This should be the same as the model type but all lowercase.
-  const char* root_tag;
+  const char* const root_tag;
   // String value for Model Type
   // This should be the same as the model type but space separated and the
   // first letter of every word capitalized.
-  const char* model_type_string;
+  const char* const model_type_string;
   // Field number of the model type specifics in EntitySpecifics.
-  int specifics_field_number;
+  const int specifics_field_number;
   // Model type value from SyncModelTypes enum in enums.xml. Must always be in
   // sync with the enum.
-  int model_type_histogram_val;
+  const int model_type_histogram_val;
 };
 
 // Below struct entries are in the same order as their definition in the
diff --git a/components/viz/service/display/dc_layer_overlay.cc b/components/viz/service/display/dc_layer_overlay.cc
index bcaf4678..826e07f 100644
--- a/components/viz/service/display/dc_layer_overlay.cc
+++ b/components/viz/service/display/dc_layer_overlay.cc
@@ -40,6 +40,7 @@
 DCLayerResult FromYUVQuad(const YUVVideoDrawQuad* quad,
                           const gfx::Transform& transform_to_root_target,
                           bool has_hw_overlay_support,
+                          int current_frame_processed_overlay_count,
                           DisplayResourceProvider* resource_provider,
                           DCLayerOverlay* dc_layer) {
   // Check that resources are overlay compatible first so that subsequent
@@ -61,6 +62,22 @@
           ui::ProtectedVideoType::kSoftwareProtected) {
     return DC_LAYER_FAILED_NO_HW_OVERLAY_SUPPORT;
   }
+
+  if (!quad->shared_quad_state->quad_to_target_transform
+           .Preserves2dAxisAlignment() &&
+      quad->protected_video_type !=
+          ui::ProtectedVideoType::kHardwareProtected &&
+      !base::FeatureList::IsEnabled(
+          features::kDirectCompositionComplexOverlays)) {
+    return DC_LAYER_FAILED_COMPLEX_TRANSFORM;
+  }
+
+  if (current_frame_processed_overlay_count > 0 &&
+      quad->protected_video_type !=
+          ui::ProtectedVideoType::kHardwareProtected) {
+    return DC_LAYER_FAILED_TOO_MANY_OVERLAYS;
+  }
+
   // Direct composition path only supports single NV12 buffer, or two buffers
   // one each for Y and UV planes.
   DCHECK(quad->y_plane_resource_id() && quad->u_plane_resource_id());
@@ -95,6 +112,24 @@
   return DC_LAYER_SUCCESS;
 }
 
+DCLayerResult IsUnderlayAllowed(const QuadList::Iterator& it,
+                                bool is_root,
+                                const DCLayerOverlay& dc_layer) {
+  if (!dc_layer.RequiresOverlay()) {
+    if (!base::FeatureList::IsEnabled(features::kDirectCompositionUnderlays)) {
+      return DC_LAYER_FAILED_OCCLUDED;
+    }
+    if (!is_root && !base::FeatureList::IsEnabled(
+                        features::kDirectCompositionNonrootOverlays)) {
+      return DC_LAYER_FAILED_NON_ROOT;
+    }
+    if (it->shared_quad_state->opacity < 1.0f) {
+      return DC_LAYER_FAILED_TRANSPARENT;
+    }
+  }
+  return DC_LAYER_SUCCESS;
+}
+
 // This returns the smallest rectangle in target space that contains the quad.
 gfx::RectF ClippedQuadRectangle(const DrawQuad* quad) {
   gfx::RectF quad_rect = cc::MathUtil::MapClippedRect(
@@ -182,20 +217,24 @@
     DisplayResourceProvider* resource_provider,
     const gfx::RectF& display_rect,
     RenderPassList* render_passes,
-    gfx::Rect* overlay_damage_rect,
     gfx::Rect* damage_rect,
     DCLayerOverlayList* dc_layer_overlays) {
-  processed_overlay_in_frame_ = false;
   pass_punch_through_rects_.clear();
   for (auto& pass : *render_passes) {
     bool is_root = (pass == render_passes->back());
     ProcessRenderPass(resource_provider, display_rect, pass.get(), is_root,
-                      overlay_damage_rect,
                       is_root ? damage_rect : &pass->damage_rect,
                       dc_layer_overlays);
   }
 }
 
+void DCLayerOverlayProcessor::ClearOverlayState() {
+  previous_frame_underlay_rect_ = gfx::Rect();
+  previous_frame_underlay_occlusion_ = gfx::Rect();
+  previous_frame_overlay_rect_union_ = gfx::Rect();
+  previous_frame_processed_overlay_count_ = 0;
+}
+
 QuadList::Iterator DCLayerOverlayProcessor::ProcessRenderPassDrawQuad(
     RenderPass* render_pass,
     gfx::Rect* damage_rect,
@@ -294,7 +333,6 @@
     const gfx::RectF& display_rect,
     RenderPass* render_pass,
     bool is_root,
-    gfx::Rect* overlay_damage_rect,
     gfx::Rect* damage_rect,
     DCLayerOverlayList* dc_layer_overlays) {
   gfx::Rect this_frame_underlay_rect;
@@ -318,10 +356,11 @@
     auto uma_protected_video_type = ui::ProtectedVideoType::kClear;
     switch (it->material) {
       case DrawQuad::YUV_VIDEO_CONTENT:
-        result =
-            FromYUVQuad(YUVVideoDrawQuad::MaterialCast(*it),
-                        render_pass->transform_to_root_target,
-                        has_hw_overlay_support_, resource_provider, &dc_layer);
+        result = FromYUVQuad(YUVVideoDrawQuad::MaterialCast(*it),
+                             render_pass->transform_to_root_target,
+                             has_hw_overlay_support_,
+                             current_frame_processed_overlay_count_,
+                             resource_provider, &dc_layer);
         uma_protected_video_type =
             YUVVideoDrawQuad::MaterialCast(*it)->protected_video_type;
         break;
@@ -334,24 +373,40 @@
       continue;
     }
 
-    if (!it->shared_quad_state->quad_to_target_transform
-             .Preserves2dAxisAlignment() &&
-        !dc_layer.RequiresOverlay() &&
-        !base::FeatureList::IsEnabled(
-            features::kDirectCompositionComplexOverlays)) {
-      RecordDCLayerResult(DC_LAYER_FAILED_COMPLEX_TRANSFORM,
-                          dc_layer.protected_video_type);
-      continue;
+    gfx::Rect quad_rectangle_in_target_space =
+        gfx::ToEnclosingRect(ClippedQuadRectangle(*it));
+    bool has_occluding_surface_damage = false;
+    gfx::RectF occlusion_bounding_box = GetOcclusionBounds(
+        gfx::RectF(quad_rectangle_in_target_space), quad_list->begin(), it,
+        &has_occluding_surface_damage);
+    // Non-root video is always treated as underlay.
+    bool is_overlay = occlusion_bounding_box.IsEmpty() && is_root;
+
+    // Skip quad if it's an underlay and underlays are not allowed
+    if (!is_overlay) {
+      result = IsUnderlayAllowed(it, is_root, dc_layer);
+      if (result != DC_LAYER_SUCCESS) {
+        RecordDCLayerResult(result, uma_protected_video_type);
+        continue;
+      }
     }
 
-    // These rects are in quad target space.
-    gfx::Rect quad_rectangle = gfx::ToEnclosingRect(ClippedQuadRectangle(*it));
-    bool has_occluding_surface_damage = false;
-    gfx::RectF occlusion_bounding_box =
-        GetOcclusionBounds(gfx::RectF(quad_rectangle), quad_list->begin(), it,
-                           &has_occluding_surface_damage);
+    // Quad is always promoted to either an underlay or an overlay after this
+    // point. It should not fail.
 
-    bool processed_overlay = false;
+    // If the current overlay has changed in size/position from the
+    // previous frame, we have to add the overlay quads from the previous frame
+    // to the damage rect for GL compositor. It's hard to optimize the case with
+    // multiple overlays. So always add the overlay rects back in this case.
+    // This is only done once at the first overlay/underlay.
+    if (current_frame_processed_overlay_count_ == 0 && is_root &&
+        !previous_frame_overlay_rect_union_.IsEmpty()) {
+      if (quad_rectangle_in_target_space !=
+              previous_frame_overlay_rect_union_ ||
+          previous_frame_processed_overlay_count_ > 1)
+        damage_rect->Union(previous_frame_overlay_rect_union_);
+      previous_frame_overlay_rect_union_ = gfx::Rect();
+    }
 
     // Underlays are less efficient, so attempt regular overlays first. Only
     // check root render pass because we can only check for occlusion within a
@@ -361,37 +416,48 @@
     // overlays for protected video, but don't calculate damage differently.
     // TODO(magchen): Collect all overlay candidates, and filter the list at the
     // end to find the best candidates (largest size?).
-    if (is_root &&
-        (!processed_overlay_in_frame_ || dc_layer.RequiresOverlay()) &&
-        ProcessForOverlay(display_rect, quad_list, quad_rectangle,
-                          occlusion_bounding_box, &it, damage_rect)) {
+    if (is_overlay) {
+      ProcessForOverlay(display_rect, quad_list, quad_rectangle_in_target_space,
+                        &it, damage_rect);
       // ProcessForOverlay makes the iterator point to the next value on
       // success.
       next_it = it;
-      processed_overlay = true;
-    } else if (ProcessForUnderlay(display_rect, render_pass, quad_rectangle,
-                                  occlusion_bounding_box, it, is_root,
-                                  has_occluding_surface_damage, damage_rect,
-                                  &this_frame_underlay_rect,
-                                  &this_frame_underlay_occlusion, &dc_layer)) {
-      processed_overlay = true;
+    } else {
+      ProcessForUnderlay(display_rect, render_pass,
+                         quad_rectangle_in_target_space, occlusion_bounding_box,
+                         it, is_root, has_occluding_surface_damage, damage_rect,
+                         &this_frame_underlay_rect,
+                         &this_frame_underlay_occlusion, &dc_layer);
     }
 
-    if (processed_overlay) {
-      gfx::Rect rect_in_root = cc::MathUtil::MapEnclosingClippedRect(
-          render_pass->transform_to_root_target, quad_rectangle);
-      overlay_damage_rect->Union(rect_in_root);
+    gfx::Rect rect_in_root = cc::MathUtil::MapEnclosingClippedRect(
+        render_pass->transform_to_root_target, quad_rectangle_in_target_space);
+    current_frame_overlay_rect_union_.Union(rect_in_root);
 
-      RecordDCLayerResult(DC_LAYER_SUCCESS, dc_layer.protected_video_type);
-      dc_layer_overlays->push_back(dc_layer);
+    RecordDCLayerResult(DC_LAYER_SUCCESS, dc_layer.protected_video_type);
+    dc_layer_overlays->push_back(dc_layer);
 
-      // Only allow one overlay unless non-root overlays are enabled.
-      // TODO(magchen): We want to produce all overlay candidates, and then
-      // choose the best one.
-      processed_overlay_in_frame_ = true;
-    }
+    // Only allow one overlay unless it's hardware protected video.
+    // TODO(magchen): We want to produce all overlay candidates, and then
+    // choose the best one.
+    current_frame_processed_overlay_count_++;
   }
+
+  // Update previous frame state after processing root pass
   if (is_root) {
+    // If there is no overlay in this frame, previous_frame_overlay_rect_union_
+    // will be added to the damage_rect here for GL composition because the
+    // overlay image from the previous frame is missing in the GL composition
+    // path. If any overlay is found in this frame, the previous overlay rects
+    // would have been handled above and previous_frame_overlay_rect_union_
+    // becomes empty.
+    damage_rect->Union(previous_frame_overlay_rect_union_);
+    previous_frame_overlay_rect_union_ = current_frame_overlay_rect_union_;
+    current_frame_overlay_rect_union_ = gfx::Rect();
+    previous_frame_processed_overlay_count_ =
+        current_frame_processed_overlay_count_;
+    current_frame_processed_overlay_count_ = 0;
+
     damage_rect->Intersect(gfx::ToEnclosingRect(display_rect));
     previous_display_rect_ = display_rect;
     previous_frame_underlay_rect_ = this_frame_underlay_rect;
@@ -399,15 +465,11 @@
   }
 }
 
-bool DCLayerOverlayProcessor::ProcessForOverlay(
-    const gfx::RectF& display_rect,
-    QuadList* quad_list,
-    const gfx::Rect& quad_rectangle,
-    const gfx::RectF& occlusion_bounding_box,
-    QuadList::Iterator* it,
-    gfx::Rect* damage_rect) {
-  if (!occlusion_bounding_box.IsEmpty())
-    return false;
+void DCLayerOverlayProcessor::ProcessForOverlay(const gfx::RectF& display_rect,
+                                                QuadList* quad_list,
+                                                const gfx::Rect& quad_rectangle,
+                                                QuadList::Iterator* it,
+                                                gfx::Rect* damage_rect) {
   // The quad is on top, so promote it to an overlay and remove all damage
   // underneath it.
   bool display_rect_changed = (display_rect != previous_display_rect_);
@@ -418,10 +480,9 @@
     damage_rect->Subtract(quad_rectangle);
   }
   *it = quad_list->EraseAndInvalidateAllPointers(*it);
-  return true;
 }
 
-bool DCLayerOverlayProcessor::ProcessForUnderlay(
+void DCLayerOverlayProcessor::ProcessForUnderlay(
     const gfx::RectF& display_rect,
     RenderPass* render_pass,
     const gfx::Rect& quad_rectangle,
@@ -433,31 +494,6 @@
     gfx::Rect* this_frame_underlay_rect,
     gfx::Rect* this_frame_underlay_occlusion,
     DCLayerOverlay* dc_layer) {
-  if (!dc_layer->RequiresOverlay()) {
-    if (!base::FeatureList::IsEnabled(features::kDirectCompositionUnderlays)) {
-      RecordDCLayerResult(DC_LAYER_FAILED_OCCLUDED,
-                          dc_layer->protected_video_type);
-      return false;
-    }
-    if (!is_root && !base::FeatureList::IsEnabled(
-                        features::kDirectCompositionNonrootOverlays)) {
-      RecordDCLayerResult(DC_LAYER_FAILED_NON_ROOT,
-                          dc_layer->protected_video_type);
-      return false;
-    }
-    if (it->shared_quad_state->opacity < 1.0f) {
-      RecordDCLayerResult(DC_LAYER_FAILED_TRANSPARENT,
-                          dc_layer->protected_video_type);
-      return false;
-    }
-    // Record this UMA only after we're absolutely sure this quad could be an
-    // underlay.
-    if (processed_overlay_in_frame_) {
-      RecordDCLayerResult(DC_LAYER_FAILED_TOO_MANY_OVERLAYS,
-                          dc_layer->protected_video_type);
-      return false;
-    }
-  }
   // TODO(magchen): Assign decreasing z-order so that underlays processed
   // earlier, and hence which are above the subsequent underlays, are placed
   // above in the direct composition visual tree.
@@ -505,8 +541,9 @@
   bool is_axis_aligned =
       shared_quad_state->quad_to_target_transform.Preserves2dAxisAlignment();
 
-  if (is_root && !processed_overlay_in_frame_ && is_axis_aligned && is_opaque &&
-      !underlay_rect_changed && !display_rect_changed) {
+  if (is_root && current_frame_processed_overlay_count_ == 0 &&
+      is_axis_aligned && is_opaque && !underlay_rect_changed &&
+      !display_rect_changed) {
     // If this underlay rect is the same as for last frame, subtract its area
     // from the damage of the main surface, as the cleared area was already
     // cleared last frame. Add back the damage from the occluded area for this
@@ -533,13 +570,16 @@
     // Entire replacement quad must be redrawn.
     // TODO(sunnyps): We should avoid this extra damage if we knew that the
     // video was the only thing damaging this render surface.
+    // TODO(magchen): non-root quad_rectangle should be transformed to root
+    // target space
     damage_rect->Union(quad_rectangle);
   }
 
   // We only compare current frame's first root pass underlay with the previous
   // frame's first root pass underlay. Non-opaque regions can have different
   // alpha from one frame to another so this optimization doesn't work.
-  if (is_root && !processed_overlay_in_frame_ && is_axis_aligned && is_opaque) {
+  if (is_root && current_frame_processed_overlay_count_ == 0 &&
+      is_axis_aligned && is_opaque) {
     *this_frame_underlay_rect = quad_rectangle;
     *this_frame_underlay_occlusion =
         gfx::ToEnclosingRect(occlusion_bounding_box);
@@ -550,8 +590,6 @@
   // RPDQ target (parent render pass) in ProcessRenderPassDrawQuad().
   pass_punch_through_rects_[render_pass->id].push_back(
       gfx::ToEnclosingRect(ClippedQuadRectangle(*it)));
-
-  return true;
 }
 
 }  // namespace viz
diff --git a/components/viz/service/display/dc_layer_overlay.h b/components/viz/service/display/dc_layer_overlay.h
index 8f70836c..0fe4e8d 100644
--- a/components/viz/service/display/dc_layer_overlay.h
+++ b/components/viz/service/display/dc_layer_overlay.h
@@ -75,14 +75,15 @@
   void Process(DisplayResourceProvider* resource_provider,
                const gfx::RectF& display_rect,
                RenderPassList* render_passes,
-               gfx::Rect* overlay_damage_rect,
                gfx::Rect* damage_rect,
                DCLayerOverlayList* dc_layer_overlays);
-  void ClearOverlayState() {
-    previous_frame_underlay_rect_ = gfx::Rect();
-    previous_frame_underlay_occlusion_ = gfx::Rect();
-  }
+  void ClearOverlayState();
   void SetHasHwOverlaySupport() { has_hw_overlay_support_ = true; }
+  // This is the damage contribution due to previous frame's overlays which can
+  // be empty.
+  gfx::Rect previous_frame_overlay_damage_contribution() {
+    return previous_frame_overlay_rect_union_;
+  }
 
  private:
   // Returns an iterator to the element after |it|.
@@ -94,16 +95,14 @@
                          const gfx::RectF& display_rect,
                          RenderPass* render_pass,
                          bool is_root,
-                         gfx::Rect* overlay_damage_rect,
                          gfx::Rect* damage_rect,
                          DCLayerOverlayList* dc_layer_overlays);
-  bool ProcessForOverlay(const gfx::RectF& display_rect,
+  void ProcessForOverlay(const gfx::RectF& display_rect,
                          QuadList* quad_list,
                          const gfx::Rect& quad_rectangle,
-                         const gfx::RectF& occlusion_bounding_box,
                          QuadList::Iterator* it,
                          gfx::Rect* damage_rect);
-  bool ProcessForUnderlay(const gfx::RectF& display_rect,
+  void ProcessForUnderlay(const gfx::RectF& display_rect,
                           RenderPass* render_pass,
                           const gfx::Rect& quad_rectangle,
                           const gfx::RectF& occlusion_bounding_box,
@@ -118,7 +117,11 @@
   gfx::Rect previous_frame_underlay_rect_;
   gfx::Rect previous_frame_underlay_occlusion_;
   gfx::RectF previous_display_rect_;
-  bool processed_overlay_in_frame_ = false;
+  // previous and current overlay_rect_union_ include both overlay and underlay
+  gfx::Rect previous_frame_overlay_rect_union_;
+  gfx::Rect current_frame_overlay_rect_union_;
+  int previous_frame_processed_overlay_count_ = 0;
+  int current_frame_processed_overlay_count_ = 0;
   bool has_hw_overlay_support_ = true;
 
   // Store information about clipped punch-through rects in target space for
diff --git a/components/viz/service/display/overlay_processor.cc b/components/viz/service/display/overlay_processor.cc
index 68e4fc2..80443fd 100644
--- a/components/viz/service/display/overlay_processor.cc
+++ b/components/viz/service/display/overlay_processor.cc
@@ -109,9 +109,9 @@
   if (!overlay_validator || !overlay_validator->AllowDCLayerOverlays())
     return false;
 
-  dc_processor_.Process(
-      resource_provider, gfx::RectF(render_passes->back()->output_rect),
-      render_passes, &overlay_damage_rect_, damage_rect, dc_layer_overlays);
+  dc_processor_.Process(resource_provider,
+                        gfx::RectF(render_passes->back()->output_rect),
+                        render_passes, damage_rect, dc_layer_overlays);
 
   DCHECK(overlay_candidates->empty());
   return true;
@@ -150,7 +150,12 @@
   // CALayers because the framebuffer would be missing the removed quads'
   // contents.
   if (!render_pass->copy_requests.empty()) {
+    damage_rect->Union(
+        dc_processor_.previous_frame_overlay_damage_contribution());
+    // Update damage rect before calling ClearOverlayState, otherwise
+    // previous_frame_overlay_rect_union will be empty.
     dc_processor_.ClearOverlayState();
+
     return;
   }
 
diff --git a/components/viz/service/display/overlay_unittest.cc b/components/viz/service/display/overlay_unittest.cc
index e7a9569..24df05f 100644
--- a/components/viz/service/display/overlay_unittest.cc
+++ b/components/viz/service/display/overlay_unittest.cc
@@ -2455,7 +2455,89 @@
     // The underlay rectangle is the same, so the damage for first video quad is
     // contained within the combined occluding rects for this and the last
     // frame. Second video quad also adds its damage.
-    EXPECT_EQ(gfx::Rect(1, 2, 255, 254), damage_rect_);
+
+    // This is calculated by carving out the underlay rect size from the
+    // damage_rect, adding back the quads on top and then the overlay/underlay
+    // rects from the previous frame. The damage rect carried over from  the
+    // revious frame with multiple overlays cannot be skipped.
+    EXPECT_EQ(gfx::Rect(0, 0, 256, 256), damage_rect_);
+  }
+}
+
+TEST_F(DCLayerOverlayTest, DamageRectWithoutVideoDamage) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndEnableFeature(features::kDirectCompositionUnderlays);
+  {
+    std::unique_ptr<RenderPass> pass = CreateRenderPass();
+    // Occluding quad fully contained in video rect.
+    CreateOpaqueQuadAt(resource_provider_.get(),
+                       pass->shared_quad_state_list.back(), pass.get(),
+                       gfx::Rect(0, 3, 100, 100), SK_ColorWHITE);
+    // Non-occluding quad fully outside video rect
+    CreateOpaqueQuadAt(resource_provider_.get(),
+                       pass->shared_quad_state_list.back(), pass.get(),
+                       gfx::Rect(210, 210, 20, 20), SK_ColorWHITE);
+    // Underlay video quad
+    auto* video_quad = CreateFullscreenCandidateYUVVideoQuad(
+        resource_provider_.get(), child_resource_provider_.get(),
+        child_provider_.get(), pass->shared_quad_state_list.back(), pass.get());
+    video_quad->rect = gfx::Rect(0, 0, 200, 200);
+    video_quad->visible_rect = video_quad->rect;
+
+    DCLayerOverlayList dc_layer_list;
+    OverlayCandidateList overlay_list;
+    OverlayProcessor::FilterOperationsMap render_pass_filters;
+    OverlayProcessor::FilterOperationsMap render_pass_backdrop_filters;
+    // Damage rect fully outside video quad
+    damage_rect_ = gfx::Rect(210, 210, 20, 20);
+    RenderPassList pass_list;
+    pass_list.push_back(std::move(pass));
+    overlay_processor_->ProcessForOverlays(
+        resource_provider_.get(), &pass_list, GetIdentityColorMatrix(),
+        render_pass_filters, render_pass_backdrop_filters, &overlay_list,
+        nullptr, &dc_layer_list, &damage_rect_, &content_bounds_);
+    EXPECT_EQ(0U, overlay_list.size());
+    EXPECT_EQ(1U, dc_layer_list.size());
+    EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
+    EXPECT_EQ(-1, dc_layer_list.back().z_order);
+    // All rects must be redrawn at the first frame.
+    EXPECT_EQ(gfx::Rect(0, 0, 230, 230), damage_rect_);
+  }
+  {
+    std::unique_ptr<RenderPass> pass = CreateRenderPass();
+    // Occluding quad fully contained in video rect.
+    CreateOpaqueQuadAt(resource_provider_.get(),
+                       pass->shared_quad_state_list.back(), pass.get(),
+                       gfx::Rect(0, 3, 100, 100), SK_ColorWHITE);
+    // Non-occluding quad fully outside video rect
+    CreateOpaqueQuadAt(resource_provider_.get(),
+                       pass->shared_quad_state_list.back(), pass.get(),
+                       gfx::Rect(210, 210, 20, 20), SK_ColorWHITE);
+    // Underlay video quad
+    auto* video_quad = CreateFullscreenCandidateYUVVideoQuad(
+        resource_provider_.get(), child_resource_provider_.get(),
+        child_provider_.get(), pass->shared_quad_state_list.back(), pass.get());
+    video_quad->rect = gfx::Rect(0, 0, 200, 200);
+    video_quad->visible_rect = video_quad->rect;
+
+    DCLayerOverlayList dc_layer_list;
+    OverlayCandidateList overlay_list;
+    OverlayProcessor::FilterOperationsMap render_pass_filters;
+    OverlayProcessor::FilterOperationsMap render_pass_backdrop_filters;
+    // Damage rect fully outside video quad
+    damage_rect_ = gfx::Rect(210, 210, 20, 20);
+    RenderPassList pass_list;
+    pass_list.push_back(std::move(pass));
+    overlay_processor_->ProcessForOverlays(
+        resource_provider_.get(), &pass_list, GetIdentityColorMatrix(),
+        render_pass_filters, render_pass_backdrop_filters, &overlay_list,
+        nullptr, &dc_layer_list, &damage_rect_, &content_bounds_);
+    EXPECT_EQ(0U, overlay_list.size());
+    EXPECT_EQ(1U, dc_layer_list.size());
+    EXPECT_EQ(0U, output_surface_->bind_framebuffer_count());
+    EXPECT_EQ(-1, dc_layer_list.back().z_order);
+    // Only the non-overlay damaged rect need to be drawn by the gl compositor
+    EXPECT_EQ(gfx::Rect(210, 210, 20, 20), damage_rect_);
   }
 }
 
@@ -2584,8 +2666,10 @@
   EXPECT_EQ(gfx::Rect(0, 0, 256, 256), pass_list[0]->damage_rect);
   EXPECT_EQ(gfx::Rect(), pass_list[1]->damage_rect);
   EXPECT_EQ(gfx::Rect(0, 100, 256, 156), root_damage_rect);
+  // Overlay damage handling is done entirely within DCOverlayProcessor so this
+  // is expected to return an empty rect
   gfx::Rect overlay_damage = overlay_processor_->GetAndResetOverlayDamage();
-  EXPECT_EQ(gfx::Rect(0, 100, 256, 256), overlay_damage);
+  EXPECT_EQ(gfx::Rect(0, 0, 0, 0), overlay_damage);
 
   EXPECT_EQ(1u, pass_list[0]->quad_list.size());
   EXPECT_EQ(DrawQuad::SOLID_COLOR,
diff --git a/components/viz/service/frame_sinks/surface_synchronization_unittest.cc b/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
index 41d8528..91dd4be1 100644
--- a/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
+++ b/components/viz/service/frame_sinks/surface_synchronization_unittest.cc
@@ -3171,4 +3171,46 @@
   EXPECT_FALSE(child_surface6->HasActiveFrame());
 }
 
+// Tests that in cases where a pending-deletion surface (surface A) is
+// activated during anothother surface (surface B)'s deletion, we don't attempt
+// to delete surface A twice.
+TEST_F(SurfaceSynchronizationTest, SurfaceActivationDuringDeletion) {
+  const SurfaceId child_id1 = MakeSurfaceId(kChildFrameSink1, 1, 1);
+  // Child-initiated synchronization event:
+  const SurfaceId child_id2 = MakeSurfaceId(kChildFrameSink1, 1, 2);
+
+  // Submit a CompositorFrame to |child_id1|.
+  child_support1().SubmitCompositorFrame(child_id1.local_surface_id(),
+                                         MakeDefaultCompositorFrame());
+
+  // Child 1 should not yet be active.
+  Surface* child_surface1 = GetSurfaceForId(child_id1);
+  ASSERT_NE(nullptr, child_surface1);
+  EXPECT_FALSE(child_surface1->HasPendingFrame());
+  EXPECT_TRUE(child_surface1->HasActiveFrame());
+
+  // Submit a CompositorFrame to |child_id2|.
+  child_support1().SubmitCompositorFrame(child_id2.local_surface_id(),
+                                         MakeDefaultCompositorFrame());
+
+  // Child 2 should not yet be active.
+  Surface* child_surface2 = GetSurfaceForId(child_id2);
+  ASSERT_NE(nullptr, child_surface2);
+  EXPECT_TRUE(child_surface2->HasPendingFrame());
+  EXPECT_FALSE(child_surface2->HasActiveFrame());
+
+  // Evict |child_id2|. both surfaces should be marked for deletion.
+  child_support1().EvictSurface(child_id1.local_surface_id());
+  EXPECT_TRUE(IsMarkedForDestruction(child_id1));
+  EXPECT_TRUE(IsMarkedForDestruction(child_id2));
+
+  // Garbage collect to delete the above surfaces. This will activate
+  // |child_id2|, which will cause it to attempt re-deletion.
+  ExpireAllTemporaryReferencesAndGarbageCollect();
+
+  // Neither should still be marked for deletion.
+  EXPECT_FALSE(IsMarkedForDestruction(child_id1));
+  EXPECT_FALSE(IsMarkedForDestruction(child_id2));
+}
+
 }  // namespace viz
diff --git a/components/viz/service/surfaces/surface_manager.cc b/components/viz/service/surfaces/surface_manager.cc
index 6abb9ff..6edbe8e6 100644
--- a/components/viz/service/surfaces/surface_manager.cc
+++ b/components/viz/service/surfaces/surface_manager.cc
@@ -206,6 +206,17 @@
   // ~Surface() draw callback could modify |surfaces_to_destroy_|.
   for (const SurfaceId& surface_id : surfaces_to_delete)
     DestroySurfaceInternal(surface_id);
+
+  // Run another pass over surfaces_to_delete, all of which have just been
+  // deleted, making sure they are not present in |surfaces_to_destroy_|. This
+  // is necessary as ~Surface may re-add already-in-destruction surfaces to the
+  // set and we need to avoid double-deletion.
+  // TODO(ericrk): Removing surfaces both here and above allows for
+  // GarbageCollectSurfaces re-entrancy, which is exercised in tests and is
+  // hard to prove can't happen in the wild. Evaluate whether we should allow
+  // re-entrancy, and if not just remove here.
+  for (const SurfaceId& surface_id : surfaces_to_delete)
+    surfaces_to_destroy_.erase(surface_id);
 }
 
 const base::flat_set<SurfaceId>& SurfaceManager::GetSurfacesReferencedByParent(
diff --git a/content/browser/font_unique_name_lookup/font_unique_name_lookup.h b/content/browser/font_unique_name_lookup/font_unique_name_lookup.h
index 8e6352fd..d76b635 100644
--- a/content/browser/font_unique_name_lookup/font_unique_name_lookup.h
+++ b/content/browser/font_unique_name_lookup/font_unique_name_lookup.h
@@ -97,9 +97,7 @@
   }
 
   // Returns the storage location of the table cache protobuf file.
-  base::FilePath TableCacheFilePathForTesting() {
-    return TableCacheFilePath();
-  };
+  base::FilePath TableCacheFilePathForTesting() { return TableCacheFilePath(); }
 
  private:
   // Scan the font file at |font_file_path| and given |ttc_index| and extract
diff --git a/content/browser/font_unique_name_lookup/font_unique_name_lookup_unittest.cc b/content/browser/font_unique_name_lookup/font_unique_name_lookup_unittest.cc
index 329da1f..7679118 100644
--- a/content/browser/font_unique_name_lookup/font_unique_name_lookup_unittest.cc
+++ b/content/browser/font_unique_name_lookup/font_unique_name_lookup_unittest.cc
@@ -195,7 +195,7 @@
   uint16_t num_tables =
       static_cast<uint16_t>(num_tables_bytes[0] + (num_tables_bytes[1] << 8));
   return num_tables;
-};
+}
 
 const size_t kOffsetTableRecords = 13;
 const size_t kSizeOneTableRecord = 16;
diff --git a/content/browser/memory/memory_monitor_android.h b/content/browser/memory/memory_monitor_android.h
index 2e123672..58b6981 100644
--- a/content/browser/memory/memory_monitor_android.h
+++ b/content/browser/memory/memory_monitor_android.h
@@ -29,7 +29,7 @@
   class Delegate {
    public:
     Delegate() {}
-    virtual ~Delegate() {};
+    virtual ~Delegate() {}
 
     // Get MemoryInfo. Implementations should fill |out| accordingly.
     virtual void GetMemoryInfo(MemoryInfo* out) = 0;
diff --git a/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc b/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc
index 9e167cdd..07a388ce 100644
--- a/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc
+++ b/content/browser/renderer_host/dwrite_font_lookup_table_builder_win.cc
@@ -85,7 +85,7 @@
 class ScopedAutoSignal {
  public:
   ScopedAutoSignal(base::WaitableEvent* waitable_event)
-      : waitable_event_(waitable_event){};
+      : waitable_event_(waitable_event) {}
   ~ScopedAutoSignal() { waitable_event_->Signal(); }
 
  private:
@@ -99,7 +99,7 @@
 DWriteFontLookupTableBuilder::FontFileWithUniqueNames::FontFileWithUniqueNames(
     blink::FontUniqueNameTable_UniqueFont&& font,
     std::vector<std::string>&& names)
-    : font_entry(std::move(font)), extracted_names(std::move(names)){};
+    : font_entry(std::move(font)), extracted_names(std::move(names)) {}
 
 DWriteFontLookupTableBuilder::FontFileWithUniqueNames::
     ~FontFileWithUniqueNames() = default;
diff --git a/content/browser/renderer_host/legacy_render_widget_host_win.h b/content/browser/renderer_host/legacy_render_widget_host_win.h
index 8edccb109..3be08b1 100644
--- a/content/browser/renderer_host/legacy_render_widget_host_win.h
+++ b/content/browser/renderer_host/legacy_render_widget_host_win.h
@@ -60,7 +60,7 @@
                               ATL::CWindow,
                               ATL::CWinTraits<WS_CHILD>> {
  public:
-  DECLARE_WND_CLASS_EX(L"Chrome_RenderWidgetHostHWND", CS_DBLCLKS, 0);
+  DECLARE_WND_CLASS_EX(L"Chrome_RenderWidgetHostHWND", CS_DBLCLKS, 0)
 
   typedef ATL::CWindowImpl<LegacyRenderWidgetHostHWND,
                            ATL::CWindow,
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 4d93d58f..6361d4d93 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -6772,7 +6772,7 @@
     : public RenderWidgetHostViewAuraTest {
  public:
   RenderWidgetHostViewAuraKeyboardTest() = default;
-  ~RenderWidgetHostViewAuraKeyboardTest() override{};
+  ~RenderWidgetHostViewAuraKeyboardTest() override {}
   void SetUp() override {
     input_method_ = new RenderWidgetHostViewAuraKeyboardMockInputMethod();
     // transfers ownership.
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc
index c3b969f..a03f775 100644
--- a/content/browser/service_worker/embedded_worker_instance.cc
+++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -295,7 +295,7 @@
   // Create a RendererPreferenceWatcher to observe updates in the preferences.
   blink::mojom::RendererPreferenceWatcherPtr watcher_ptr;
   params->preference_watcher_request = mojo::MakeRequest(&watcher_ptr);
-  GetContentClient()->browser()->RegisterRendererPreferenceWatcherForWorkers(
+  GetContentClient()->browser()->RegisterRendererPreferenceWatcher(
       process_manager->browser_context(), std::move(watcher_ptr));
 
   // Continue to OnSetupCompleted on the IO thread.
diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc
index 5b13ef9..b3dc1dde 100644
--- a/content/browser/service_worker/embedded_worker_test_helper.cc
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc
@@ -374,13 +374,6 @@
   std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
 }
 
-void EmbeddedWorkerTestHelper::OnCookieChangeEvent(
-    const net::CanonicalCookie& cookie,
-    ::network::mojom::CookieChangeCause cause,
-    blink::mojom::ServiceWorker::DispatchCookieChangeEventCallback callback) {
-  std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
-}
-
 void EmbeddedWorkerTestHelper::OnFetchEvent(
     int /* embedded_worker_id */,
     blink::mojom::FetchAPIRequestPtr /* request */,
@@ -397,24 +390,6 @@
   std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
 }
 
-void EmbeddedWorkerTestHelper::OnNotificationClickEvent(
-    const std::string& notification_id,
-    const blink::PlatformNotificationData& notification_data,
-    int action_index,
-    const base::Optional<base::string16>& reply,
-    blink::mojom::ServiceWorker::DispatchNotificationClickEventCallback
-        callback) {
-  std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
-}
-
-void EmbeddedWorkerTestHelper::OnNotificationCloseEvent(
-    const std::string& notification_id,
-    const blink::PlatformNotificationData& notification_data,
-    blink::mojom::ServiceWorker::DispatchNotificationCloseEventCallback
-        callback) {
-  std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
-}
-
 void EmbeddedWorkerTestHelper::OnAbortPaymentEvent(
     payments::mojom::PaymentHandlerResponseCallbackPtr response_callback,
     blink::mojom::ServiceWorker::DispatchAbortPaymentEventCallback callback) {
@@ -505,16 +480,6 @@
                      std::move(callback)));
 }
 
-void EmbeddedWorkerTestHelper::OnCookieChangeEventStub(
-    const net::CanonicalCookie& cookie,
-    ::network::mojom::CookieChangeCause cause,
-    blink::mojom::ServiceWorker::DispatchCookieChangeEventCallback callback) {
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&EmbeddedWorkerTestHelper::OnCookieChangeEvent,
-                     AsWeakPtr(), cookie, cause, std::move(callback)));
-}
-
 void EmbeddedWorkerTestHelper::OnFetchEventStub(
     int embedded_worker_id,
     blink::mojom::FetchAPIRequestPtr request,
@@ -529,32 +494,6 @@
                      std::move(finish_callback)));
 }
 
-void EmbeddedWorkerTestHelper::OnNotificationClickEventStub(
-    const std::string& notification_id,
-    const blink::PlatformNotificationData& notification_data,
-    int action_index,
-    const base::Optional<base::string16>& reply,
-    blink::mojom::ServiceWorker::DispatchNotificationClickEventCallback
-        callback) {
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&EmbeddedWorkerTestHelper::OnNotificationClickEvent,
-                     AsWeakPtr(), notification_id, notification_data,
-                     action_index, reply, std::move(callback)));
-}
-
-void EmbeddedWorkerTestHelper::OnNotificationCloseEventStub(
-    const std::string& notification_id,
-    const blink::PlatformNotificationData& notification_data,
-    blink::mojom::ServiceWorker::DispatchNotificationCloseEventCallback
-        callback) {
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindOnce(&EmbeddedWorkerTestHelper::OnNotificationCloseEvent,
-                     AsWeakPtr(), notification_id, notification_data,
-                     std::move(callback)));
-}
-
 void EmbeddedWorkerTestHelper::OnPushEventStub(
     base::Optional<std::string> payload,
     blink::mojom::ServiceWorker::DispatchPushEventCallback callback) {
diff --git a/content/browser/service_worker/embedded_worker_test_helper.h b/content/browser/service_worker/embedded_worker_test_helper.h
index de50556..6159846 100644
--- a/content/browser/service_worker/embedded_worker_test_helper.h
+++ b/content/browser/service_worker/embedded_worker_test_helper.h
@@ -25,9 +25,7 @@
 #include "content/browser/service_worker/service_worker_test_utils.h"
 #include "content/browser/url_loader_factory_getter.h"
 #include "mojo/public/cpp/bindings/binding.h"
-#include "net/cookies/cookie_change_dispatcher.h"
 #include "net/http/http_response_info.h"
-#include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "third_party/blink/public/common/service_worker/service_worker_status_code.h"
 #include "third_party/blink/public/mojom/service_worker/embedded_worker.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker.mojom.h"
@@ -35,10 +33,6 @@
 #include "third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom.h"
 #include "url/gurl.h"
 
-namespace blink {
-struct PlatformNotificationData;
-}
-
 namespace content {
 
 class EmbeddedWorkerRegistry;
@@ -188,28 +182,12 @@
       blink::mojom::BackgroundFetchRegistrationPtr registration,
       blink::mojom::ServiceWorker::DispatchBackgroundFetchSuccessEventCallback
           callback);
-  virtual void OnCookieChangeEvent(
-      const net::CanonicalCookie& cookie,
-      ::network::mojom::CookieChangeCause cause,
-      blink::mojom::ServiceWorker::DispatchCookieChangeEventCallback callback);
   virtual void OnFetchEvent(
       int embedded_worker_id,
       blink::mojom::FetchAPIRequestPtr request,
       blink::mojom::FetchEventPreloadHandlePtr preload_handle,
       blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
       blink::mojom::ServiceWorker::DispatchFetchEventCallback finish_callback);
-  virtual void OnNotificationClickEvent(
-      const std::string& notification_id,
-      const blink::PlatformNotificationData& notification_data,
-      int action_index,
-      const base::Optional<base::string16>& reply,
-      blink::mojom::ServiceWorker::DispatchNotificationClickEventCallback
-          callback);
-  virtual void OnNotificationCloseEvent(
-      const std::string& notification_id,
-      const blink::PlatformNotificationData& notification_data,
-      blink::mojom::ServiceWorker::DispatchNotificationCloseEventCallback
-          callback);
   virtual void OnPushEvent(
       base::Optional<std::string> payload,
       blink::mojom::ServiceWorker::DispatchPushEventCallback callback);
@@ -268,10 +246,6 @@
       blink::mojom::BackgroundFetchRegistrationPtr registration,
       blink::mojom::ServiceWorker::DispatchBackgroundFetchSuccessEventCallback
           callback);
-  void OnCookieChangeEventStub(
-      const net::CanonicalCookie& cookie,
-      ::network::mojom::CookieChangeCause cause,
-      blink::mojom::ServiceWorker::DispatchCookieChangeEventCallback callback);
   void OnExtendableMessageEventStub(
       blink::mojom::ExtendableMessageEventPtr event,
       blink::mojom::ServiceWorker::DispatchExtendableMessageEventCallback
@@ -282,18 +256,6 @@
       blink::mojom::FetchEventPreloadHandlePtr preload_handle,
       blink::mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
       blink::mojom::ServiceWorker::DispatchFetchEventCallback finish_callback);
-  void OnNotificationClickEventStub(
-      const std::string& notification_id,
-      const blink::PlatformNotificationData& notification_data,
-      int action_index,
-      const base::Optional<base::string16>& reply,
-      blink::mojom::ServiceWorker::DispatchNotificationClickEventCallback
-          callback);
-  void OnNotificationCloseEventStub(
-      const std::string& notification_id,
-      const blink::PlatformNotificationData& notification_data,
-      blink::mojom::ServiceWorker::DispatchNotificationCloseEventCallback
-          callback);
   void OnPushEventStub(
       base::Optional<std::string> payload,
       blink::mojom::ServiceWorker::DispatchPushEventCallback callback);
diff --git a/content/browser/service_worker/fake_service_worker.cc b/content/browser/service_worker/fake_service_worker.cc
index 77f09a5..9865ca06 100644
--- a/content/browser/service_worker/fake_service_worker.cc
+++ b/content/browser/service_worker/fake_service_worker.cc
@@ -101,7 +101,7 @@
     const net::CanonicalCookie& cookie,
     ::network::mojom::CookieChangeCause cause,
     DispatchCookieChangeEventCallback callback) {
-  helper_->OnCookieChangeEventStub(cookie, cause, std::move(callback));
+  std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
 }
 
 void FakeServiceWorker::DispatchFetchEvent(
@@ -120,17 +120,14 @@
     int action_index,
     const base::Optional<base::string16>& reply,
     DispatchNotificationClickEventCallback callback) {
-  helper_->OnNotificationClickEventStub(notification_id, notification_data,
-                                        action_index, reply,
-                                        std::move(callback));
+  std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
 }
 
 void FakeServiceWorker::DispatchNotificationCloseEvent(
     const std::string& notification_id,
     const blink::PlatformNotificationData& notification_data,
     DispatchNotificationCloseEventCallback callback) {
-  helper_->OnNotificationCloseEventStub(notification_id, notification_data,
-                                        std::move(callback));
+  std::move(callback).Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED);
 }
 
 void FakeServiceWorker::DispatchPushEvent(
diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc
index adaed7d..ba5c33e 100644
--- a/content/browser/service_worker/service_worker_database.cc
+++ b/content/browser/service_worker/service_worker_database.cc
@@ -1518,6 +1518,11 @@
     out->script_type = static_cast<blink::mojom::ScriptType>(value);
   }
 
+  if (data.has_script_response_time()) {
+    out->script_response_time = base::Time::FromDeltaSinceWindowsEpoch(
+        base::TimeDelta::FromMicroseconds(data.script_response_time()));
+  }
+
   if (data.has_update_via_cache()) {
     auto value = data.update_via_cache();
     if (!ServiceWorkerRegistrationData_ServiceWorkerUpdateViaCacheType_IsValid(
@@ -1551,6 +1556,9 @@
   data.set_has_fetch_handler(registration.has_fetch_handler);
   data.set_last_update_check_time(
       registration.last_update_check.ToInternalValue());
+  data.set_script_response_time(
+      registration.script_response_time.ToDeltaSinceWindowsEpoch()
+          .InMicroseconds());
   data.set_resources_total_size_bytes(registration.resources_total_size_bytes);
   if (registration.origin_trial_tokens) {
     ServiceWorkerOriginTrialInfo* info = data.mutable_origin_trial_tokens();
diff --git a/content/browser/service_worker/service_worker_database.h b/content/browser/service_worker/service_worker_database.h
index d2a5ae0..79f82fe 100644
--- a/content/browser/service_worker/service_worker_database.h
+++ b/content/browser/service_worker/service_worker_database.h
@@ -78,6 +78,7 @@
     bool is_active;
     bool has_fetch_handler;
     base::Time last_update_check;
+    base::Time script_response_time;
     base::Optional<blink::TrialTokenValidator::FeatureToTokensMap>
         origin_trial_tokens;
     blink::mojom::NavigationPreloadState navigation_preload_state;
diff --git a/content/browser/service_worker/service_worker_database.proto b/content/browser/service_worker/service_worker_database.proto
index 767477c..51416f9c 100644
--- a/content/browser/service_worker/service_worker_database.proto
+++ b/content/browser/service_worker/service_worker_database.proto
@@ -68,6 +68,10 @@
   optional ServiceWorkerUpdateViaCacheType update_via_cache = 14
       [default = IMPORTS];
   optional ServiceWorkerScriptType script_type = 15 [default = CLASSIC];
+
+  // The time when the browser received the service worker main script,
+  // serialized by Time::ToDeltaSinceWindowsEpoch().
+  optional int64 script_response_time = 16;
 }
 
 message ServiceWorkerResourceRecord {
diff --git a/content/browser/service_worker/service_worker_database_unittest.cc b/content/browser/service_worker/service_worker_database_unittest.cc
index 5a6044d5..5cc0a66 100644
--- a/content/browser/service_worker/service_worker_database_unittest.cc
+++ b/content/browser/service_worker/service_worker_database_unittest.cc
@@ -79,6 +79,7 @@
   EXPECT_EQ(expected.used_features, actual.used_features);
   EXPECT_EQ(expected.resources_total_size_bytes,
             actual.resources_total_size_bytes);
+  EXPECT_EQ(expected.script_response_time, actual.script_response_time);
 }
 
 void VerifyResourceRecords(const std::vector<Resource>& expected,
@@ -461,6 +462,7 @@
   data1.script = URL(origin1, "/script1.js");
   data1.version_id = 1000;
   data1.resources_total_size_bytes = 100;
+  data1.script_response_time = base::Time::FromJsTime(0);
   std::vector<Resource> resources1;
   resources1.push_back(CreateResource(1, data1.script, 100));
   ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
@@ -483,6 +485,7 @@
   data2.script = URL(origin2, "/script2.js");
   data2.version_id = 2000;
   data2.resources_total_size_bytes = 200;
+  data2.script_response_time = base::Time::FromJsTime(42);
   std::vector<Resource> resources2;
   resources2.push_back(CreateResource(2, data2.script, 200));
   ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
@@ -505,6 +508,7 @@
   data3.script = URL(origin3, "/script3.js");
   data3.version_id = 3000;
   data3.resources_total_size_bytes = 300;
+  data3.script_response_time = base::Time::FromJsTime(420);
   std::vector<Resource> resources3;
   resources3.push_back(CreateResource(3, data3.script, 300));
   ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
@@ -518,6 +522,7 @@
   data4.script = URL(origin3, "/script4.js");
   data4.version_id = 4000;
   data4.resources_total_size_bytes = 400;
+  data4.script_response_time = base::Time::FromJsTime(4200);
   std::vector<Resource> resources4;
   resources4.push_back(CreateResource(4, data4.script, 400));
   ASSERT_EQ(ServiceWorkerDatabase::STATUS_OK,
diff --git a/content/browser/service_worker/service_worker_storage.cc b/content/browser/service_worker/service_worker_storage.cc
index db7587f..408acca 100644
--- a/content/browser/service_worker/service_worker_storage.cc
+++ b/content/browser/service_worker/service_worker_storage.cc
@@ -444,6 +444,7 @@
   if (version->origin_trial_tokens())
     data.origin_trial_tokens = *version->origin_trial_tokens();
   data.navigation_preload_state = registration->navigation_preload_state();
+  data.script_response_time = version->GetInfo().script_response_time;
   for (const blink::mojom::WebFeature feature : version->used_features())
     data.used_features.insert(static_cast<uint32_t>(feature));
 
@@ -1433,6 +1434,8 @@
       info.active_version.script_url = registration_data.script;
       info.active_version.version_id = registration_data.version_id;
       info.active_version.registration_id = registration_data.registration_id;
+      info.active_version.script_response_time =
+          registration_data.script_response_time;
       info.active_version.fetch_handler_existence =
           registration_data.has_fetch_handler
               ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
@@ -1442,6 +1445,8 @@
       info.waiting_version.script_url = registration_data.script;
       info.waiting_version.version_id = registration_data.version_id;
       info.waiting_version.registration_id = registration_data.registration_id;
+      info.waiting_version.script_response_time =
+          registration_data.script_response_time;
       info.waiting_version.fetch_handler_existence =
           registration_data.has_fetch_handler
               ? ServiceWorkerVersion::FetchHandlerExistence::EXISTS
@@ -1652,6 +1657,7 @@
     }
     version->set_used_features(std::move(used_features));
   }
+  version->set_script_response_time_for_devtools(data.script_response_time);
 
   if (version->status() == ServiceWorkerVersion::ACTIVATED)
     registration->SetActiveVersion(version);
diff --git a/content/browser/service_worker/service_worker_storage_unittest.cc b/content/browser/service_worker/service_worker_storage_unittest.cc
index e5624a51..003f57d 100644
--- a/content/browser/service_worker/service_worker_storage_unittest.cc
+++ b/content/browser/service_worker/service_worker_storage_unittest.cc
@@ -1956,7 +1956,6 @@
 
   EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk,
             StoreRegistration(registration, version));
-
   // Simulate browser shutdown and restart.
   registration = nullptr;
   version = nullptr;
@@ -2007,6 +2006,51 @@
   EXPECT_EQ("true", state.header);
 }
 
+// Tests storing the script response time for DevTools.
+TEST_F(ServiceWorkerStorageDiskTest, ScriptResponseTime) {
+  // Make a registration.
+  LazyInitialize();
+  const GURL kScope("https://example.com/scope");
+  const GURL kScript("https://example.com/script.js");
+  scoped_refptr<ServiceWorkerRegistration> registration =
+      CreateLiveRegistrationAndVersion(kScope, kScript);
+  ServiceWorkerVersion* version = registration->waiting_version();
+
+  // Give it a main script response info.
+  net::HttpResponseInfo http_info;
+  http_info.headers =
+      base::MakeRefCounted<net::HttpResponseHeaders>("HTTP/1.1 200 OK");
+  http_info.response_time = base::Time::FromJsTime(19940123);
+  version->SetMainScriptHttpResponseInfo(http_info);
+  EXPECT_TRUE(version->main_script_http_info_);
+  EXPECT_EQ(http_info.response_time,
+            version->script_response_time_for_devtools_);
+  EXPECT_EQ(http_info.response_time, version->GetInfo().script_response_time);
+
+  // Store the registration.
+  EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk,
+            StoreRegistration(registration, version));
+
+  // Simulate browser shutdown and restart.
+  registration = nullptr;
+  version = nullptr;
+  InitializeTestHelper();
+  LazyInitialize();
+
+  // Read the registration. The main script's response time should be gettable.
+  scoped_refptr<ServiceWorkerRegistration> found_registration;
+  EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk,
+            FindRegistrationForDocument(kScope, &found_registration));
+  ASSERT_TRUE(found_registration);
+  auto* waiting_version = found_registration->waiting_version();
+  ASSERT_TRUE(waiting_version);
+  EXPECT_FALSE(waiting_version->main_script_http_info_);
+  EXPECT_EQ(http_info.response_time,
+            waiting_version->script_response_time_for_devtools_);
+  EXPECT_EQ(http_info.response_time,
+            waiting_version->GetInfo().script_response_time);
+}
+
 TEST_F(ServiceWorkerStorageDiskTest, RegisteredOriginCount) {
   {
     base::HistogramTester histogram_tester;
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
index c5b62a2..395ed6d 100644
--- a/content/browser/service_worker/service_worker_version.cc
+++ b/content/browser/service_worker/service_worker_version.cc
@@ -371,9 +371,16 @@
                                 host->web_contents_getter(),
                                 host->provider_type())));
   }
+
+  info.script_response_time = script_response_time_for_devtools_;
   if (!main_script_http_info_)
     return info;
-  info.script_response_time = main_script_http_info_->response_time;
+  // If the service worker hasn't started, then |main_script_http_info_| is not
+  // set, so we use |script_response_time_for_devtools_| to populate |info|. If
+  // the worker has started, this value should match with the timestamp stored
+  // in |main_script_http_info_|.
+  DCHECK_EQ(info.script_response_time, main_script_http_info_->response_time);
+
   if (main_script_http_info_->headers)
     main_script_http_info_->headers->GetLastModifiedValue(
         &info.script_last_modified);
@@ -879,6 +886,7 @@
 
 void ServiceWorkerVersion::SetMainScriptHttpResponseInfo(
     const net::HttpResponseInfo& http_info) {
+  script_response_time_for_devtools_ = http_info.response_time;
   main_script_http_info_.reset(new net::HttpResponseInfo(http_info));
 
   // Updates |origin_trial_tokens_| if it is not set yet. This happens when:
diff --git a/content/browser/service_worker/service_worker_version.h b/content/browser/service_worker/service_worker_version.h
index f3192c6..7e76628 100644
--- a/content/browser/service_worker/service_worker_version.h
+++ b/content/browser/service_worker/service_worker_version.h
@@ -94,6 +94,10 @@
 FORWARD_DECLARE_TEST(ServiceWorkerVersionTest, StartRequestWithNullContext);
 }  // namespace service_worker_version_unittest
 
+namespace service_worker_storage_unittest {
+FORWARD_DECLARE_TEST(ServiceWorkerStorageDiskTest, ScriptResponseTime);
+}  // namespace service_worker_storage_unittest
+
 namespace service_worker_registration_unittest {
 class ServiceWorkerActivationTest;
 }  // namespace service_worker_registration_unittest
@@ -490,6 +494,10 @@
     return used_features_;
   }
 
+  void set_script_response_time_for_devtools(base::Time response_time) {
+    script_response_time_for_devtools_ = std::move(response_time);
+  }
+
   static bool IsInstalled(ServiceWorkerVersion::Status status);
   static std::string VersionStatusToString(ServiceWorkerVersion::Status status);
 
@@ -603,6 +611,9 @@
   FRIEND_TEST_ALL_PREFIXES(
       service_worker_version_unittest::ServiceWorkerVersionTest,
       MixedRequestTimeouts);
+  FRIEND_TEST_ALL_PREFIXES(
+      service_worker_storage_unittest::ServiceWorkerStorageDiskTest,
+      ScriptResponseTime);
   FRIEND_TEST_ALL_PREFIXES(ServiceWorkerURLRequestJobTest, EarlyResponse);
   FRIEND_TEST_ALL_PREFIXES(ServiceWorkerURLRequestJobTest, CancelRequest);
 
@@ -930,6 +941,14 @@
 
   std::unique_ptr<net::HttpResponseInfo> main_script_http_info_;
 
+  // DevTools requires each service worker's script receive time, even for
+  // the ones that haven't started. However, a ServiceWorkerVersion's field
+  // |main_script_http_info_| is not set until starting up. Rather than
+  // reading HttpResponseInfo for all service workers from disk cache and
+  // populating |main_script_http_info_| just in order to expose that timestamp,
+  // we provide that timestamp here.
+  base::Time script_response_time_for_devtools_;
+
   std::unique_ptr<blink::TrialTokenValidator::FeatureToTokensMap>
       origin_trial_tokens_;
 
diff --git a/content/browser/worker_host/shared_worker_host.cc b/content/browser/worker_host/shared_worker_host.cc
index cd242e1..a7bebd7 100644
--- a/content/browser/worker_host/shared_worker_host.cc
+++ b/content/browser/worker_host/shared_worker_host.cc
@@ -224,7 +224,7 @@
   blink::mojom::RendererPreferenceWatcherPtr watcher_ptr;
   blink::mojom::RendererPreferenceWatcherRequest preference_watcher_request =
       mojo::MakeRequest(&watcher_ptr);
-  GetContentClient()->browser()->RegisterRendererPreferenceWatcherForWorkers(
+  GetContentClient()->browser()->RegisterRendererPreferenceWatcher(
       RenderProcessHost::FromID(process_id_)->GetBrowserContext(),
       std::move(watcher_ptr));
 
diff --git a/content/common/throttling_url_loader.cc b/content/common/throttling_url_loader.cc
index f4af1a4..300efe2 100644
--- a/content/common/throttling_url_loader.cc
+++ b/content/common/throttling_url_loader.cc
@@ -614,6 +614,31 @@
   DCHECK_EQ(DEFERRED_NONE, deferred_stage_);
   DCHECK(!loader_completed_);
 
+  // Only dispatch WillOnCompleteWithError() if status is not OK.
+  if (!throttles_.empty() && status.error_code != net::OK) {
+    pending_restart_flags_ = 0;
+    has_pending_restart_ = false;
+    bool deferred = false;
+    for (auto& entry : throttles_) {
+      auto* throttle = entry.throttle.get();
+      bool throttle_deferred = false;
+      throttle->WillOnCompleteWithError(status, &throttle_deferred);
+      if (!HandleThrottleResult(throttle, throttle_deferred, &deferred))
+        return;
+    }
+
+    if (deferred) {
+      deferred_stage_ = DEFERRED_COMPLETE;
+      client_binding_.PauseIncomingMethodCallProcessing();
+      return;
+    }
+
+    if (has_pending_restart_) {
+      RestartWithFlagsNow();
+      return;
+    }
+  }
+
   // This is the last expected message. Pipe closure before this is an error
   // (see OnClientConnectionError). After this it is expected and should be
   // ignored. The owner of |this| is expected to destroy |this| when
@@ -680,6 +705,17 @@
       // Note: |this| may be deleted here.
       break;
     }
+    case DEFERRED_COMPLETE: {
+      // TODO(eroman): For simplicity we require throttles that defer during
+      // WillOnCompleteWithError() to do a restart. We could support deferring
+      // and choosing not to restart if needed, however the current consumers
+      // don't need that.
+      CHECK(has_pending_restart_);
+
+      RestartWithFlagsNow();
+      // Note: |this| may be deleted here.
+      break;
+    }
     default:
       NOTREACHED();
       break;
diff --git a/content/common/throttling_url_loader.h b/content/common/throttling_url_loader.h
index 6255f8ff..11c806f 100644
--- a/content/common/throttling_url_loader.h
+++ b/content/common/throttling_url_loader.h
@@ -151,7 +151,8 @@
     DEFERRED_START,
     DEFERRED_REDIRECT,
     DEFERRED_BEFORE_RESPONSE,
-    DEFERRED_RESPONSE
+    DEFERRED_RESPONSE,
+    DEFERRED_COMPLETE
   };
   DeferredStage deferred_stage_ = DEFERRED_NONE;
   bool loader_completed_ = false;
diff --git a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
index fc024927e..50e74eb7 100644
--- a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
@@ -45,11 +45,12 @@
     @VisibleForTesting
     static final int STARTUP_FAILURE = 1;
 
-    @IntDef({BROWSER_START_TYPE_FULL_BROWSER, BROWSER_START_TYPE_SERVICE_MANAGER_ONLY})
+    @IntDef({BrowserStartType.FULL_BROWSER, BrowserStartType.SERVICE_MANAGER_ONLY})
     @Retention(RetentionPolicy.SOURCE)
-    public @interface BrowserStartType {}
-    private static final int BROWSER_START_TYPE_FULL_BROWSER = 0;
-    private static final int BROWSER_START_TYPE_SERVICE_MANAGER_ONLY = 1;
+    public @interface BrowserStartType {
+        int FULL_BROWSER = 0;
+        int SERVICE_MANAGER_ONLY = 1;
+    }
 
     private static BrowserStartupControllerImpl sInstance;
 
@@ -114,7 +115,7 @@
     // once the browser is fully started, or when the ServiceManager is started and there is no
     // outstanding requests to start the full browser.
     @BrowserStartType
-    private int mCurrentBrowserStartType = BROWSER_START_TYPE_FULL_BROWSER;
+    private int mCurrentBrowserStartType = BrowserStartType.FULL_BROWSER;
 
     // If the app is only started with the ServiceManager, whether it needs to launch full browser
     // funcionalities now.
@@ -202,7 +203,7 @@
         // If the browser process is launched with ServiceManager only, we need to relaunch the full
         // process in serviceManagerStarted() if such a request was received.
         mLaunchFullBrowserAfterServiceManagerStart |=
-                (mCurrentBrowserStartType == BROWSER_START_TYPE_SERVICE_MANAGER_ONLY)
+                (mCurrentBrowserStartType == BrowserStartType.SERVICE_MANAGER_ONLY)
                 && !startServiceManagerOnly;
         if (!mHasStartedInitializingBrowserProcess) {
             // This is the first time we have been asked to start the browser process. We set the
@@ -217,8 +218,8 @@
                     ThreadUtils.assertOnUiThread();
                     if (mHasCalledContentStart) return;
                     mCurrentBrowserStartType = startServiceManagerOnly
-                            ? BROWSER_START_TYPE_SERVICE_MANAGER_ONLY
-                            : BROWSER_START_TYPE_FULL_BROWSER;
+                            ? BrowserStartType.SERVICE_MANAGER_ONLY
+                            : BrowserStartType.FULL_BROWSER;
                     if (contentStart() > 0) {
                         // Failed. The callbacks may not have run, so run them.
                         enqueueCallbackExecution(STARTUP_FAILURE);
@@ -228,7 +229,7 @@
         } else if (mServiceManagerStarted && mLaunchFullBrowserAfterServiceManagerStart) {
             // If we missed the serviceManagerStarted() call, launch the full browser now if needed.
             // Otherwise, serviceManagerStarted() will handle the full browser launch.
-            mCurrentBrowserStartType = BROWSER_START_TYPE_FULL_BROWSER;
+            mCurrentBrowserStartType = BrowserStartType.FULL_BROWSER;
             if (contentStart() > 0) enqueueCallbackExecution(STARTUP_FAILURE);
         }
     }
@@ -247,14 +248,14 @@
 
             boolean startedSuccessfully = true;
             if (!mHasCalledContentStart) {
-                mCurrentBrowserStartType = BROWSER_START_TYPE_FULL_BROWSER;
+                mCurrentBrowserStartType = BrowserStartType.FULL_BROWSER;
                 if (contentStart() > 0) {
                     // Failed. The callbacks may not have run, so run them.
                     enqueueCallbackExecution(STARTUP_FAILURE);
                     startedSuccessfully = false;
                 }
-            } else if (mCurrentBrowserStartType == BROWSER_START_TYPE_SERVICE_MANAGER_ONLY) {
-                mCurrentBrowserStartType = BROWSER_START_TYPE_FULL_BROWSER;
+            } else if (mCurrentBrowserStartType == BrowserStartType.SERVICE_MANAGER_ONLY) {
+                mCurrentBrowserStartType = BrowserStartType.FULL_BROWSER;
                 if (contentStart() > 0) {
                     enqueueCallbackExecution(STARTUP_FAILURE);
                     startedSuccessfully = false;
@@ -277,7 +278,7 @@
      */
     int contentStart() {
         boolean startServiceManagerOnly =
-                mCurrentBrowserStartType == BROWSER_START_TYPE_SERVICE_MANAGER_ONLY;
+                mCurrentBrowserStartType == BrowserStartType.SERVICE_MANAGER_ONLY;
         int result = contentMainStart(startServiceManagerOnly);
         mHasCalledContentStart = true;
         // No need to launch the full browser again if we are launching full browser now.
@@ -322,12 +323,12 @@
         if (mLaunchFullBrowserAfterServiceManagerStart) {
             // If startFullBrowser() fails, execute the callbacks right away. Otherwise,
             // callbacks will be deferred until browser startup completes.
-            mCurrentBrowserStartType = BROWSER_START_TYPE_FULL_BROWSER;
+            mCurrentBrowserStartType = BrowserStartType.FULL_BROWSER;
             if (contentStart() > 0) enqueueCallbackExecution(STARTUP_FAILURE);
             return;
         }
 
-        if (mCurrentBrowserStartType == BROWSER_START_TYPE_SERVICE_MANAGER_ONLY) {
+        if (mCurrentBrowserStartType == BrowserStartType.SERVICE_MANAGER_ONLY) {
             executeServiceManagerCallbacks(STARTUP_SUCCESS);
         }
         recordStartupUma();
diff --git a/content/public/android/java/src/org/chromium/content/browser/ServicificationStartupUma.java b/content/public/android/java/src/org/chromium/content/browser/ServicificationStartupUma.java
index a11fcc4..ee573f43 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ServicificationStartupUma.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ServicificationStartupUma.java
@@ -20,7 +20,6 @@
     @IntDef({ServicificationStartup.CHROME_COLD, ServicificationStartup.CHROME_HALF_WARM,
             ServicificationStartup.SERVICE_MANAGER_COLD,
             ServicificationStartup.SERVICE_MANAGER_WARM})
-
     @Retention(RetentionPolicy.SOURCE)
     public @interface ServicificationStartup {
         // Cold start of Chrome as a full browser.
@@ -32,11 +31,11 @@
         // Warm start of only ServiceManager when the ServiceManager is already running.
         int SERVICE_MANAGER_WARM = 3;
 
-        int COUNT = 4;
+        int NUM_ENTRIES = 4;
     }
 
     // Caches the pending commits before the native is initialized.
-    private int[] mPendingCommits = new int[ServicificationStartup.COUNT];
+    private int[] mPendingCommits = new int[ServicificationStartup.NUM_ENTRIES];
     private boolean mIsNativeInitialized;
 
     private final static ServicificationStartupUma sInstance = new ServicificationStartupUma();
@@ -93,7 +92,7 @@
     public void commit() {
         mIsNativeInitialized = true;
 
-        for (int i = 0; i < ServicificationStartup.COUNT; i++) {
+        for (int i = 0; i < ServicificationStartup.NUM_ENTRIES; i++) {
             if (mPendingCommits[i] > 0) {
                 for (int count = 0; count < mPendingCommits[i]; count++) {
                     recordStartupMode(i);
@@ -109,6 +108,6 @@
 
     private void recordStartupMode(@ServicificationStartup int startupMode) {
         RecordHistogram.recordEnumeratedHistogram(
-                "Servicification.Startup", startupMode, ServicificationStartup.COUNT);
+                "Servicification.Startup", startupMode, ServicificationStartup.NUM_ENTRIES);
     }
 }
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index 57b25c9..2426808 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -894,7 +894,7 @@
   return true;
 }
 
-void ContentBrowserClient::RegisterRendererPreferenceWatcherForWorkers(
+void ContentBrowserClient::RegisterRendererPreferenceWatcher(
     BrowserContext* browser_context,
     blink::mojom::RendererPreferenceWatcherPtr watcher) {
   // |browser_context| may be null (e.g. during shutdown of a service worker).
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index fcfc85b..8b47fdeb 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1412,9 +1412,8 @@
   // This is called on the IO thread.
   virtual bool IsSafeRedirectTarget(const GURL& url, ResourceContext* context);
 
-  // Registers the watcher to observe updates in RendererPreferences. The
-  // watchers are for shared workers and service workers.
-  virtual void RegisterRendererPreferenceWatcherForWorkers(
+  // Registers the watcher to observe updates in RendererPreferences.
+  virtual void RegisterRendererPreferenceWatcher(
       BrowserContext* browser_context,
       blink::mojom::RendererPreferenceWatcherPtr watcher);
 
diff --git a/content/public/common/url_loader_throttle.cc b/content/public/common/url_loader_throttle.cc
index 39390ac..1d172cb 100644
--- a/content/public/common/url_loader_throttle.cc
+++ b/content/public/common/url_loader_throttle.cc
@@ -54,6 +54,10 @@
     const network::ResourceResponseHead& response_head,
     bool* defer) {}
 
+void URLLoaderThrottle::WillOnCompleteWithError(
+    const network::URLLoaderCompletionStatus& status,
+    bool* defer) {}
+
 URLLoaderThrottle::URLLoaderThrottle() {}
 
 }  // namespace content
diff --git a/content/public/common/url_loader_throttle.h b/content/public/common/url_loader_throttle.h
index e58acd2f..7a0c3471 100644
--- a/content/public/common/url_loader_throttle.h
+++ b/content/public/common/url_loader_throttle.h
@@ -156,6 +156,11 @@
       const network::ResourceResponseHead& response_head,
       bool* defer);
 
+  // Called if there is a non-OK net::Error in the completion status.
+  virtual void WillOnCompleteWithError(
+      const network::URLLoaderCompletionStatus& status,
+      bool* defer);
+
   void set_delegate(Delegate* delegate) { delegate_ = delegate; }
 
  protected:
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 43b44e5..846a66c 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -3074,6 +3074,14 @@
     settings.wait_for_all_pipeline_stages_before_draw = true;
     settings.enable_latency_recovery = false;
   }
+#if defined(OS_ANDROID)
+  if (features::IsSurfaceSynchronizationEnabled()) {
+    // TODO(crbug.com/933846): LatencyRecovery is causing jank on Android.
+    // Disable in viz mode for now, with plant o disable more widely once
+    // viz launches.
+    settings.enable_latency_recovery = false;
+  }
+#endif
 
   settings.enable_image_animation_resync =
       !cmd.HasSwitch(switches::kDisableImageAnimationResync);
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
index 6369d5f3..4e731fd 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -324,7 +324,8 @@
           mojo::MakeRequest(&subresource_loaders->default_factory_info()));
       network_service_connection_error_handler_holder_
           .set_connection_error_handler(base::BindOnce(
-              &ServiceWorkerContextClient::StopWorker, base::Unretained(this)));
+              &ServiceWorkerContextClient::StopWorkerOnMainThread,
+              base::Unretained(this)));
     }
 
     loader_factories_ = base::MakeRefCounted<HostChildURLLoaderFactoryBundle>(
@@ -353,12 +354,12 @@
   }
 }
 
-void ServiceWorkerContextClient::WorkerReadyForInspection() {
+void ServiceWorkerContextClient::WorkerReadyForInspectionOnMainThread() {
   CHECK(main_thread_task_runner_->RunsTasksInCurrentSequence());
   (*instance_host_)->OnReadyForInspection();
 }
 
-void ServiceWorkerContextClient::WorkerContextFailedToStart() {
+void ServiceWorkerContextClient::WorkerContextFailedToStartOnMainThread() {
   CHECK(main_thread_task_runner_->RunsTasksInCurrentSequence());
   CHECK(!proxy_);
   RecordDebugLog("WorkerContextFailedToStart");
@@ -366,16 +367,16 @@
   (*instance_host_)->OnStopped();
 
   TRACE_EVENT_NESTABLE_ASYNC_END1("ServiceWorker", "ServiceWorkerContextClient",
-                                  this, "Status", "WorkerContextFailedToStart");
+                                  this, "Status",
+                                  "WorkerContextFailedToStartOnMainThread");
 
   owner_->WorkerContextDestroyed();
 }
 
-void ServiceWorkerContextClient::FailedToLoadInstalledClassicScript() {
+void ServiceWorkerContextClient::FailedToLoadClassicScript() {
   CHECK(worker_task_runner_->RunsTasksInCurrentSequence());
   TRACE_EVENT_NESTABLE_ASYNC_END1("ServiceWorker", "LOAD_SCRIPT", this,
-                                  "Status",
-                                  "FailedToLoadInstalledClassicScript");
+                                  "Status", "FailedToLoadClassicScript");
   // Cleanly send an OnStopped() message instead of just breaking the
   // Mojo connection on termination, for consistency with the other
   // startup failure paths.
@@ -398,14 +399,14 @@
   // eventually destroys |this|.
 }
 
-void ServiceWorkerContextClient::WorkerScriptLoaded() {
+void ServiceWorkerContextClient::WorkerScriptLoadedOnMainThread() {
   CHECK(main_thread_task_runner_->RunsTasksInCurrentSequence());
   CHECK(!is_starting_installed_worker_);
   (*instance_host_)->OnScriptLoaded();
   TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "LOAD_SCRIPT", this);
 }
 
-void ServiceWorkerContextClient::InstalledWorkerScriptLoaded() {
+void ServiceWorkerContextClient::WorkerScriptLoadedOnWorkerThread() {
   CHECK(worker_task_runner_->RunsTasksInCurrentSequence());
   CHECK(is_starting_installed_worker_);
   TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "LOAD_SCRIPT", this);
@@ -965,7 +966,7 @@
 }
 
 std::unique_ptr<blink::WebServiceWorkerNetworkProvider>
-ServiceWorkerContextClient::CreateServiceWorkerNetworkProvider() {
+ServiceWorkerContextClient::CreateServiceWorkerNetworkProviderOnMainThread() {
   CHECK(main_thread_task_runner_->RunsTasksInCurrentSequence());
   return std::make_unique<ServiceWorkerNetworkProviderForServiceWorker>(
       service_worker_provider_info_->provider_id,
@@ -973,7 +974,7 @@
 }
 
 scoped_refptr<blink::WebWorkerFetchContext>
-ServiceWorkerContextClient::CreateServiceWorkerFetchContext(
+ServiceWorkerContextClient::CreateServiceWorkerFetchContextOnMainThread(
     blink::WebServiceWorkerNetworkProvider* provider) {
   CHECK(main_thread_task_runner_->RunsTasksInCurrentSequence());
   CHECK(preference_watcher_request_.is_pending());
@@ -1603,10 +1604,12 @@
 }
 
 void ServiceWorkerContextClient::Ping(PingCallback callback) {
+  CHECK(worker_task_runner_->RunsTasksInCurrentSequence());
   std::move(callback).Run();
 }
 
 void ServiceWorkerContextClient::SetIdleTimerDelayToZero() {
+  CHECK(worker_task_runner_->RunsTasksInCurrentSequence());
   CHECK(blink::ServiceWorkerUtils::IsServicificationEnabled());
   CHECK(context_);
   CHECK(context_->timeout_timer);
@@ -1658,7 +1661,7 @@
   return context_->timeout_timer->did_idle_timeout();
 }
 
-void ServiceWorkerContextClient::StopWorker() {
+void ServiceWorkerContextClient::StopWorkerOnMainThread() {
   RecordDebugLog("StopWorker");
   CHECK(main_thread_task_runner_->RunsTasksInCurrentSequence());
   owner_->StopWorker();
diff --git a/content/renderer/service_worker/service_worker_context_client.h b/content/renderer/service_worker/service_worker_context_client.h
index b2d96aafe..d5d746f 100644
--- a/content/renderer/service_worker/service_worker_context_client.h
+++ b/content/renderer/service_worker/service_worker_context_client.h
@@ -97,12 +97,12 @@
   ~ServiceWorkerContextClient() override;
 
   // WebServiceWorkerContextClient overrides.
-  void WorkerReadyForInspection() override;
-  void WorkerContextFailedToStart() override;
-  void FailedToLoadInstalledClassicScript() override;
+  void WorkerReadyForInspectionOnMainThread() override;
+  void WorkerContextFailedToStartOnMainThread() override;
+  void FailedToLoadClassicScript() override;
   void FailedToFetchModuleScript() override;
-  void WorkerScriptLoaded() override;
-  void InstalledWorkerScriptLoaded() override;
+  void WorkerScriptLoadedOnMainThread() override;
+  void WorkerScriptLoadedOnWorkerThread() override;
   void WorkerContextStarted(
       blink::WebServiceWorkerContextProxy* proxy) override;
   void WillEvaluateScript() override;
@@ -189,8 +189,9 @@
       int payment_request_id,
       blink::mojom::ServiceWorkerEventStatus status) override;
   std::unique_ptr<blink::WebServiceWorkerNetworkProvider>
-  CreateServiceWorkerNetworkProvider() override;
-  scoped_refptr<blink::WebWorkerFetchContext> CreateServiceWorkerFetchContext(
+  CreateServiceWorkerNetworkProviderOnMainThread() override;
+  scoped_refptr<blink::WebWorkerFetchContext>
+  CreateServiceWorkerFetchContextOnMainThread(
       blink::WebServiceWorkerNetworkProvider*) override;
   int WillStartTask() override;
   void DidEndTask(int task_id) override;
@@ -359,7 +360,7 @@
   bool RequestedTermination() const;
 
   // Stops the worker context. Called on the main thread.
-  void StopWorker();
+  void StopWorkerOnMainThread();
 
   base::WeakPtr<ServiceWorkerContextClient> GetWeakPtr();
 
@@ -368,8 +369,11 @@
   ServiceWorkerTimeoutTimer* GetTimeoutTimerForTesting();
 
   // TODO(crbug.com/907311): Remove after we identified the cause of crash.
-  void RecordDebugLog(const char* message);
-  void CrashWithDebugLog(const std::string& reason);
+  // Guarded by the lock because these are called from both the main thread
+  // and the worker thread.
+  void RecordDebugLog(const char* message) LOCKS_EXCLUDED(debug_log_lock_);
+  void CrashWithDebugLog(const std::string& reason)
+      LOCKS_EXCLUDED(debug_log_lock_);
 
   const int64_t service_worker_version_id_;
   const GURL service_worker_scope_;
diff --git a/content/test/content_test_launcher.cc b/content/test/content_test_launcher.cc
index 839ef8f1..5bbbbb0 100644
--- a/content/test/content_test_launcher.cc
+++ b/content/test/content_test_launcher.cc
@@ -45,7 +45,7 @@
 #if defined(OS_ANDROID)
 std::unique_ptr<base::MessagePump> CreateMessagePumpForUI() {
   return std::unique_ptr<base::MessagePump>(new NestedMessagePumpAndroid());
-};
+}
 #endif
 
 class ContentBrowserTestSuite : public ContentTestSuiteBase {
diff --git a/content/test/dwrite_font_fake_sender_win.cc b/content/test/dwrite_font_fake_sender_win.cc
index 9a2b1ba..2e2db962 100644
--- a/content/test/dwrite_font_fake_sender_win.cc
+++ b/content/test/dwrite_font_fake_sender_win.cc
@@ -129,7 +129,7 @@
 }
 
 void FakeFontCollection::GetUniqueNameLookupTable(
-    GetUniqueNameLookupTableCallback callback){};
+    GetUniqueNameLookupTableCallback callback) {}
 
 FakeFontCollection::~FakeFontCollection() = default;
 
diff --git a/content/test/gpu/gpu_tests/power_measurement_integration_test.py b/content/test/gpu/gpu_tests/power_measurement_integration_test.py
index 2a4261b6..9be83a4 100644
--- a/content/test/gpu/gpu_tests/power_measurement_integration_test.py
+++ b/content/test/gpu/gpu_tests/power_measurement_integration_test.py
@@ -210,6 +210,9 @@
     pass
 
 class PowerMeasurementIntegrationTest(gpu_integration_test.GpuIntegrationTest):
+
+  _url_mode = None
+
   @classmethod
   def Name(cls):
     return 'power'
@@ -264,6 +267,7 @@
     if options.url is not None:
       # This is for local testing convenience only and is not to be added to
       # any bots.
+      cls._url_mode = True
       yield ('URL', options.url,
              {'test_func': 'URL',
               'repeat': options.repeat,
@@ -276,6 +280,7 @@
               'resolution': options.resolution,
               'bypass_ipg': options.bypass_ipg})
     else:
+      cls._url_mode = False
       yield ('Basic', '-',
              {'test_func': 'Basic',
               'bypass_ipg': options.bypass_ipg})
@@ -310,7 +315,9 @@
     path_util.SetupTelemetryPaths()
     cls.CustomizeBrowserArgs(cls._AddDefaultArgs([]))
     cls.StartBrowser()
-    cls.SetStaticServerDirs(_DATA_PATHS)
+    assert cls._url_mode is not None
+    if not cls._url_mode:
+      cls.SetStaticServerDirs(_DATA_PATHS)
 
   def RunActualGpuTest(self, test_path, *args):
     test_params = args[0]
diff --git a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
index 8634fb3..0b715ea 100644
--- a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
+++ b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
@@ -330,7 +330,7 @@
         ['passthrough', 'opengl'], bug=602688)
     self.Fail('conformance2/state/gl-get-calls.html', ['passthrough', 'opengl'],
         bug=602688)
-    self.Flaky('conformance2/vertex_arrays/vertex-array-object.html',
+    self.Fail('conformance2/vertex_arrays/vertex-array-object.html',
         ['passthrough', 'opengl'], bug=920265)
     self.Fail('deqp/functional/gles3/integerstatequery.html',
         ['passthrough', 'opengl'], bug=602688)
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
index 7cc9353d..7bd250c 100644
--- a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
+++ b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
@@ -131,6 +131,10 @@
     self.Skip('conformance/rendering/texture-switch-performance.html',
         bug=735483)
 
+    # Too flaky with ANGLE's OpenGL backend to just mark Flaky
+    self.Fail('conformance/extensions/oes-vertex-array-object.html',
+        ['win', 'opengl'], bug=920033)
+
     # Passthrough command decoder / OpenGL
     self.Fail('conformance/renderbuffers/framebuffer-test.html',
         ['passthrough', 'opengl'], bug=665521)
@@ -340,8 +344,6 @@
         ['win10', 'intel', 'opengl', 'no_passthrough'], bug=680797)
     self.Fail('conformance/extensions/oes-texture-half-float-with-canvas.html',
         ['win10', 'intel', 'opengl', 'no_passthrough'], bug=680797)
-    self.Fail('conformance/extensions/oes-vertex-array-object.html',
-        ['win10', 'intel', 'opengl'], bug=680797)
     self.Fail('conformance/glsl/bugs/' +
         'array-of-struct-with-int-first-position.html',
         ['win10', 'intel', 'opengl'], bug=680797)
diff --git a/device/bluetooth/test/bluetooth_test_win.cc b/device/bluetooth/test/bluetooth_test_win.cc
index f5a63a8..962621b 100644
--- a/device/bluetooth/test/bluetooth_test_win.cc
+++ b/device/bluetooth/test/bluetooth_test_win.cc
@@ -161,7 +161,7 @@
       IBluetoothAdapterStatics** statics) const override {
     auto adapter_statics = Make<FakeBluetoothAdapterStaticsWinrt>(adapter_);
     return adapter_statics.CopyTo(statics);
-  };
+  }
 
   HRESULT
   GetDeviceInformationStaticsActivationFactory(
@@ -169,7 +169,7 @@
     auto device_information_statics =
         Make<FakeDeviceInformationStaticsWinrt>(device_information_);
     return device_information_statics.CopyTo(statics);
-  };
+  }
 
   HRESULT ActivateBluetoothAdvertisementLEWatcherInstance(
       IBluetoothLEAdvertisementWatcher** instance) const override {
diff --git a/device/fido/win/fake_webauthn_api.cc b/device/fido/win/fake_webauthn_api.cc
index d741cb7..e6e2c59 100644
--- a/device/fido/win/fake_webauthn_api.cc
+++ b/device/fido/win/fake_webauthn_api.cc
@@ -58,7 +58,7 @@
 const wchar_t* FakeWinWebAuthnApi::GetErrorName(HRESULT hr) {
   DCHECK(is_available_);
   return L"not implemented";
-};
+}
 
 ScopedFakeWinWebAuthnApi::ScopedFakeWinWebAuthnApi() : FakeWinWebAuthnApi() {
   WinWebAuthnApi::SetDefaultForTesting(this);
diff --git a/device/fido/win/type_conversions_unittest.cc b/device/fido/win/type_conversions_unittest.cc
index ab02c1c..48ec108 100644
--- a/device/fido/win/type_conversions_unittest.cc
+++ b/device/fido/win/type_conversions_unittest.cc
@@ -126,7 +126,7 @@
               test.cbor_attestation_statement);
     EXPECT_EQ(response->transport_used(), test.expected_transport);
   }
-};
+}
 
 }  // namespace
 }  // namespace device
diff --git a/device/fido/win/webauthn_api.cc b/device/fido/win/webauthn_api.cc
index 7e88a47..719ad10 100644
--- a/device/fido/win/webauthn_api.cc
+++ b/device/fido/win/webauthn_api.cc
@@ -152,7 +152,7 @@
   const wchar_t* GetErrorName(HRESULT hr) override {
     DCHECK(is_bound_);
     return get_error_name_(hr);
-  };
+  }
 
  private:
   std::pair<HRESULT, ScopedCredentialAttestation>
diff --git a/device/vr/windows/compositor_base.cc b/device/vr/windows/compositor_base.cc
index ed69fed..9e110f56 100644
--- a/device/vr/windows/compositor_base.cc
+++ b/device/vr/windows/compositor_base.cc
@@ -24,7 +24,7 @@
 void XRDeviceAbstraction::HandleDeviceLost() {}
 bool XRDeviceAbstraction::PreComposite() {
   return true;
-};
+}
 void XRDeviceAbstraction::OnLayerBoundsChanged() {}
 
 XRCompositorCommon::OutstandingFrame::OutstandingFrame() = default;
@@ -154,7 +154,7 @@
   source_size_ = source_size;
 
   OnLayerBoundsChanged();
-};
+}
 
 void XRCompositorCommon::RequestSession(
     base::OnceCallback<void()> on_presentation_ended,
diff --git a/extensions/common/api/_api_features.json b/extensions/common/api/_api_features.json
index d1fcd83..2e11885 100644
--- a/extensions/common/api/_api_features.json
+++ b/extensions/common/api/_api_features.json
@@ -348,7 +348,8 @@
     "whitelist": [
       "63ED55E43214C211F82122ED56407FF1A807F2A3",   // Media Router Dev
       "226CF815E39A363090A1E547D53063472B8279FA",   // Media Router Stable
-      "A3E3DE9E9F16B41D4A2FAD106BD6CA76B94A0C94"    // Chrome Camera App Prod
+      "B41E7F08E1179CC03CBD1F49E57CF353A40ADE07",   // Chrome Camera App Dev
+      "A3E3DE9E9F16B41D4A2FAD106BD6CA76B94A0C94"    // Chrome Camera App Stable
     ]
   },
   "networking.config": {
diff --git a/gpu/gles2_conform_support/BUILD.gn b/gpu/gles2_conform_support/BUILD.gn
index 3326ce74..24a0bd3 100644
--- a/gpu/gles2_conform_support/BUILD.gn
+++ b/gpu/gles2_conform_support/BUILD.gn
@@ -390,6 +390,10 @@
     # Also compile the sources generated by this action.
     sources += get_target_outputs(":generate_gles2_conform_embedded_data")
 
+    # Do not apply Chromium code rules to this third-party code.
+    configs -= [ "//build/config/compiler:chromium_code" ]
+    configs += [ "//build/config/compiler:no_chromium_code" ]
+
     defines = [
       "GTF_API=GTF_GLES20",
       "HKEMBEDDEDFILESYSTEM",
diff --git a/ios/build/bots/chromium.fyi/ios12-sdk-simulator.json b/ios/build/bots/chromium.fyi/ios12-sdk-simulator.json
index 7a06ea4f..abc4844b 100644
--- a/ios/build/bots/chromium.fyi/ios12-sdk-simulator.json
+++ b/ios/build/bots/chromium.fyi/ios12-sdk-simulator.json
@@ -21,7 +21,7 @@
     "all"
   ],
   "configuration": "Debug",
-  "expiration_time": 7200,
+  "expiration_time": 10800,
   "tests": [
     {
       "xcode parallelization": true,
diff --git a/ios/chrome/browser/ui/infobars/BUILD.gn b/ios/chrome/browser/ui/infobars/BUILD.gn
index 24181ebb..df279f7 100644
--- a/ios/chrome/browser/ui/infobars/BUILD.gn
+++ b/ios/chrome/browser/ui/infobars/BUILD.gn
@@ -58,8 +58,6 @@
     "infobar_constants.h",
     "infobar_constants.mm",
     "infobar_container_consumer.h",
-    "infobar_container_view_controller.h",
-    "infobar_container_view_controller.mm",
     "infobar_ui_delegate.h",
     "legacy_infobar_container_view_controller.h",
     "legacy_infobar_container_view_controller.mm",
diff --git a/ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h b/ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h
index 3096f51..78603eb8 100644
--- a/ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h
+++ b/ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h
@@ -16,6 +16,9 @@
 // Asks the delegate to dismiss the InfobarBanner.
 - (void)dismissInfobarBanner:(UIViewController*)sender;
 
+// Asks the delegate to to present the InfobarModal for this InfobarBanner.
+- (void)presentInfobarModal;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_INFOBARS_BANNERS_INFOBAR_BANNER_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.mm b/ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.mm
index 726790e..b98c18a 100644
--- a/ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.mm
+++ b/ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.mm
@@ -98,6 +98,7 @@
       gesture.state == UIGestureRecognizerStateCancelled) {
     if (self.view.center.y > self.originalCenter.y) {
       self.view.center = self.originalCenter;
+      [self.delegate presentInfobarModal];
     } else {
       [self.delegate dismissInfobarBanner:self];
     }
diff --git a/ios/chrome/browser/ui/infobars/coordinators/BUILD.gn b/ios/chrome/browser/ui/infobars/coordinators/BUILD.gn
index e64f3e7..8364489 100644
--- a/ios/chrome/browser/ui/infobars/coordinators/BUILD.gn
+++ b/ios/chrome/browser/ui/infobars/coordinators/BUILD.gn
@@ -19,5 +19,7 @@
     "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
     "//ios/chrome/browser/ui/infobars:infobars_ui",
     "//ios/chrome/browser/ui/infobars/banners",
+    "//ios/chrome/browser/ui/infobars/modals",
+    "//ios/chrome/browser/ui/infobars/presentation",
   ]
 }
diff --git a/ios/chrome/browser/ui/infobars/coordinators/infobar_confirm_coordinator.mm b/ios/chrome/browser/ui/infobars/coordinators/infobar_confirm_coordinator.mm
index 221c3ad..51038c3 100644
--- a/ios/chrome/browser/ui/infobars/coordinators/infobar_confirm_coordinator.mm
+++ b/ios/chrome/browser/ui/infobars/coordinators/infobar_confirm_coordinator.mm
@@ -9,12 +9,18 @@
 #include "ios/chrome/browser/infobars/infobar_controller_delegate.h"
 #import "ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h"
 #import "ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.h"
+#import "ios/chrome/browser/ui/infobars/modals/infobar_modal_delegate.h"
+#import "ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.h"
+#import "ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.h"
+#import "ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
 #endif
 
-@interface InfobarConfirmCoordinator () <InfobarBannerDelegate>
+@interface InfobarConfirmCoordinator () <InfobarBannerDelegate,
+                                         InfobarModalDelegate,
+                                         UIViewControllerTransitioningDelegate>
 
 // Delegate that holds the Infobar information and actions.
 @property(nonatomic, readonly) ConfirmInfoBarDelegate* confirmInfobarDelegate;
@@ -57,8 +63,9 @@
 - (void)stop {
   if (self.started) {
     self.started = NO;
-    [self.bannerViewController dismissViewControllerAnimated:YES
-                                                  completion:nil];
+    [self.bannerViewController.presentingViewController
+        dismissViewControllerAnimated:YES
+                           completion:nil];
     // RemoveInfoBar() will delete the InfobarIOS that owns this Coordinator
     // from memory.
     self.delegate->RemoveInfoBar();
@@ -86,4 +93,58 @@
   [self stop];
 }
 
+- (void)presentInfobarModal {
+  InfobarModalViewController* expandedViewController =
+      [[InfobarModalViewController alloc] initWithModalDelegate:self];
+  expandedViewController.transitioningDelegate = self;
+  [expandedViewController setModalPresentationStyle:UIModalPresentationCustom];
+  [self.bannerViewController presentViewController:expandedViewController
+                                          animated:YES
+                                        completion:nil];
+}
+
+#pragma mark - InfobarModalDelegate
+
+- (void)dismissInfobarModal:(UIViewController*)sender {
+  [self.bannerViewController dismissViewControllerAnimated:YES
+                                                completion:^{
+                                                  [self stop];
+                                                }];
+}
+
+// TODO(crbug.com/1372916): Create a Transitioning objects that can be shared
+// with all Infobar Coordinators.
+#pragma mark - UIViewControllerTransitioningDelegate
+
+- (UIPresentationController*)
+    presentationControllerForPresentedViewController:
+        (UIViewController*)presented
+                            presentingViewController:
+                                (UIViewController*)presenting
+                                sourceViewController:(UIViewController*)source {
+  InfobarModalPresentationController* presentationController =
+      [[InfobarModalPresentationController alloc]
+          initWithPresentedViewController:presented
+                 presentingViewController:presenting];
+  return presentationController;
+}
+
+- (id<UIViewControllerAnimatedTransitioning>)
+    animationControllerForPresentedController:(UIViewController*)presented
+                         presentingController:(UIViewController*)presenting
+                             sourceController:(UIViewController*)source {
+  InfobarExpandBannerAnimator* animator =
+      [[InfobarExpandBannerAnimator alloc] init];
+  animator.presenting = YES;
+  return animator;
+}
+
+- (id<UIViewControllerAnimatedTransitioning>)
+    animationControllerForDismissedController:(UIViewController*)dismissed {
+  InfobarExpandBannerAnimator* animator =
+      [[InfobarExpandBannerAnimator alloc] init];
+  animator.presenting = NO;
+  return animator;
+}
+
 @end
diff --git a/ios/chrome/browser/ui/infobars/coordinators/infobar_password_coordinator.mm b/ios/chrome/browser/ui/infobars/coordinators/infobar_password_coordinator.mm
index 42aa710d..16047415 100644
--- a/ios/chrome/browser/ui/infobars/coordinators/infobar_password_coordinator.mm
+++ b/ios/chrome/browser/ui/infobars/coordinators/infobar_password_coordinator.mm
@@ -9,12 +9,18 @@
 #import "ios/chrome/browser/passwords/ios_chrome_password_manager_infobar_delegate.h"
 #import "ios/chrome/browser/ui/infobars/banners/infobar_banner_delegate.h"
 #import "ios/chrome/browser/ui/infobars/banners/infobar_banner_view_controller.h"
+#import "ios/chrome/browser/ui/infobars/modals/infobar_modal_delegate.h"
+#import "ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.h"
+#import "ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.h"
+#import "ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
 #error "This file requires ARC support."
 #endif
 
-@interface InfobarPasswordCoordinator () <InfobarBannerDelegate>
+@interface InfobarPasswordCoordinator () <InfobarBannerDelegate,
+                                          InfobarModalDelegate,
+                                          UIViewControllerTransitioningDelegate>
 
 // Delegate that holds the Infobar information and actions.
 @property(nonatomic, readonly)
@@ -39,6 +45,7 @@
   self = [super initWithBaseViewController:nil browserState:nil];
   if (self) {
     _passwordInfoBarDelegate = passwordInfoBarDelegate;
+    _presented = YES;
   }
   return self;
 }
@@ -57,8 +64,9 @@
 - (void)stop {
   if (self.started) {
     self.started = NO;
-    [self.bannerViewController dismissViewControllerAnimated:YES
-                                                  completion:nil];
+    [self.bannerViewController.presentingViewController
+        dismissViewControllerAnimated:YES
+                           completion:nil];
     // RemoveInfoBar() will delete the InfobarIOS that owns this Coordinator
     // from memory.
     self.delegate->RemoveInfoBar();
@@ -86,4 +94,58 @@
   [self stop];
 }
 
+- (void)presentInfobarModal {
+  InfobarModalViewController* expandedViewController =
+      [[InfobarModalViewController alloc] initWithModalDelegate:self];
+  expandedViewController.transitioningDelegate = self;
+  [expandedViewController setModalPresentationStyle:UIModalPresentationCustom];
+  [self.bannerViewController presentViewController:expandedViewController
+                                          animated:YES
+                                        completion:nil];
+}
+
+#pragma mark - InfobarModalDelegate
+
+- (void)dismissInfobarModal:(UIViewController*)sender {
+  [self.bannerViewController dismissViewControllerAnimated:YES
+                                                completion:^{
+                                                  [self stop];
+                                                }];
+}
+
+// TODO(crbug.com/911864): Create a Transitioning object that can be shared
+// with all Infobar Coordinators.
+#pragma mark - UIViewControllerTransitioningDelegate
+
+- (UIPresentationController*)
+    presentationControllerForPresentedViewController:
+        (UIViewController*)presented
+                            presentingViewController:
+                                (UIViewController*)presenting
+                                sourceViewController:(UIViewController*)source {
+  InfobarModalPresentationController* presentationController =
+      [[InfobarModalPresentationController alloc]
+          initWithPresentedViewController:presented
+                 presentingViewController:presenting];
+  return presentationController;
+}
+
+- (id<UIViewControllerAnimatedTransitioning>)
+    animationControllerForPresentedController:(UIViewController*)presented
+                         presentingController:(UIViewController*)presenting
+                             sourceController:(UIViewController*)source {
+  InfobarExpandBannerAnimator* animator =
+      [[InfobarExpandBannerAnimator alloc] init];
+  animator.presenting = YES;
+  return animator;
+}
+
+- (id<UIViewControllerAnimatedTransitioning>)
+    animationControllerForDismissedController:(UIViewController*)dismissed {
+  InfobarExpandBannerAnimator* animator =
+      [[InfobarExpandBannerAnimator alloc] init];
+  animator.presenting = NO;
+  return animator;
+}
+
 @end
diff --git a/ios/chrome/browser/ui/infobars/infobar_container_coordinator.mm b/ios/chrome/browser/ui/infobars/infobar_container_coordinator.mm
index 9eb605f0..4b42324 100644
--- a/ios/chrome/browser/ui/infobars/infobar_container_coordinator.mm
+++ b/ios/chrome/browser/ui/infobars/infobar_container_coordinator.mm
@@ -13,7 +13,6 @@
 #import "ios/chrome/browser/ui/infobars/coordinators/infobar_coordinating.h"
 #import "ios/chrome/browser/ui/infobars/infobar_container_consumer.h"
 #include "ios/chrome/browser/ui/infobars/infobar_container_mediator.h"
-#include "ios/chrome/browser/ui/infobars/infobar_container_view_controller.h"
 #import "ios/chrome/browser/ui/infobars/infobar_feature.h"
 #import "ios/chrome/browser/ui/infobars/infobar_positioner.h"
 #include "ios/chrome/browser/ui/infobars/legacy_infobar_container_view_controller.h"
@@ -33,9 +32,8 @@
 
 @property(nonatomic, assign) TabModel* tabModel;
 
-// UIViewController that contains Infobars.
-@property(nonatomic, strong)
-    InfobarContainerViewController* containerViewController;
+// ViewController of the Infobar currently being presented, can be nil.
+@property(nonatomic, weak) UIViewController* infobarViewController;
 // UIViewController that contains legacy Infobars.
 @property(nonatomic, strong)
     LegacyInfobarContainerViewController* legacyContainerViewController;
@@ -62,11 +60,6 @@
   DCHECK(self.positioner);
   DCHECK(self.dispatcher);
 
-  // Creates the InfobarContainerVC.
-  InfobarContainerViewController* container =
-      [[InfobarContainerViewController alloc] init];
-  self.containerViewController = container;
-
   // Creates the LegacyInfobarContainerVC.
   LegacyInfobarContainerViewController* legacyContainer =
       [[LegacyInfobarContainerViewController alloc]
@@ -105,7 +98,7 @@
 
 - (void)hideContainer:(BOOL)hidden {
   [self.legacyContainerViewController.view setHidden:hidden];
-  [self.containerViewController.view setHidden:hidden];
+  [self.infobarViewController.view setHidden:hidden];
 }
 
 - (UIView*)legacyContainerView {
@@ -135,27 +128,20 @@
   ChromeCoordinator<InfobarCoordinating>* infobarCoordinator =
       static_cast<ChromeCoordinator<InfobarCoordinating>*>(infoBarDelegate);
 
+  // Present the InfobarCoordinator BannerViewController.
   [infobarCoordinator start];
-
-  // Add the infobarCoordinator bannerVC to the containerVC.
-  InfobarContainerViewController* containerViewController =
-      base::mac::ObjCCastStrict<InfobarContainerViewController>(
-          self.containerViewController);
-  [containerViewController
-      addInfobarViewController:static_cast<UIViewController*>(
-                                   [infobarCoordinator bannerViewController])];
-
-  // Present the containerVC.
-  self.containerViewController.transitioningDelegate = self;
-  [self.containerViewController
+  self.infobarViewController = [infobarCoordinator bannerViewController];
+  [infobarCoordinator bannerViewController].transitioningDelegate = self;
+  [[infobarCoordinator bannerViewController]
       setModalPresentationStyle:UIModalPresentationCustom];
-  [self.baseViewController presentViewController:self.containerViewController
-                                        animated:YES
-                                      completion:nil];
+  [self.baseViewController
+      presentViewController:[infobarCoordinator bannerViewController]
+                   animated:YES
+                 completion:nil];
 }
 
 - (void)setUserInteractionEnabled:(BOOL)enabled {
-  [self.containerViewController.view setUserInteractionEnabled:enabled];
+  [self.infobarViewController.view setUserInteractionEnabled:enabled];
 }
 
 - (void)updateLayoutAnimated:(BOOL)animated {
diff --git a/ios/chrome/browser/ui/infobars/infobar_container_view_controller.h b/ios/chrome/browser/ui/infobars/infobar_container_view_controller.h
deleted file mode 100644
index 0031c7f7..0000000
--- a/ios/chrome/browser/ui/infobars/infobar_container_view_controller.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_UI_INFOBARS_INFOBAR_CONTAINER_VIEW_CONTROLLER_H_
-#define IOS_CHROME_BROWSER_UI_INFOBARS_INFOBAR_CONTAINER_VIEW_CONTROLLER_H_
-
-#import <UIKit/UIKit.h>
-
-
-// TODO(crbug.com/1372916): PLACEHOLDER Work in Progress class for the new
-// InfobarUI. ViewController that contains all Infobars.
-@interface InfobarContainerViewController : UIViewController
-
-// Adds a new InfobarViewController to this container.
-- (void)addInfobarViewController:(UIViewController*)infobarViewController;
-
-@end
-
-#endif  // IOS_CHROME_BROWSER_UI_INFOBARS_INFOBAR_CONTAINER_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/infobars/infobar_container_view_controller.mm b/ios/chrome/browser/ui/infobars/infobar_container_view_controller.mm
deleted file mode 100644
index 1b640c5..0000000
--- a/ios/chrome/browser/ui/infobars/infobar_container_view_controller.mm
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/ui/infobars/infobar_container_view_controller.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-// TODO(crbug.com/1372916): PLACEHOLDER Work in Progress class for the new
-// InfobarUI.
-@implementation InfobarContainerViewController
-
-#pragma mark - UIViewController
-
-- (void)viewDidLoad {
-  self.view = [[UIView alloc] initWithFrame:CGRectZero];
-}
-
-- (void)addInfobarViewController:(UIViewController*)infobarViewController {
-  [self addChildViewController:infobarViewController];
-  [self.view addSubview:infobarViewController.view];
-  [infobarViewController didMoveToParentViewController:self];
-  infobarViewController.view.translatesAutoresizingMaskIntoConstraints = NO;
-  [NSLayoutConstraint activateConstraints:@[
-    [infobarViewController.view.topAnchor
-        constraintEqualToAnchor:self.view.topAnchor
-                       constant:10],
-    [infobarViewController.view.bottomAnchor
-        constraintEqualToAnchor:self.view.bottomAnchor],
-    [infobarViewController.view.leadingAnchor
-        constraintEqualToAnchor:self.view.leadingAnchor],
-    [infobarViewController.view.trailingAnchor
-        constraintEqualToAnchor:self.view.trailingAnchor]
-  ]];
-}
-
-@end
diff --git a/ios/chrome/browser/ui/infobars/modals/BUILD.gn b/ios/chrome/browser/ui/infobars/modals/BUILD.gn
new file mode 100644
index 0000000..31837bc
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/modals/BUILD.gn
@@ -0,0 +1,12 @@
+# 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.
+
+source_set("modals") {
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "infobar_modal_delegate.h",
+    "infobar_modal_view_controller.h",
+    "infobar_modal_view_controller.mm",
+  ]
+}
diff --git a/ios/chrome/browser/ui/infobars/modals/infobar_modal_delegate.h b/ios/chrome/browser/ui/infobars/modals/infobar_modal_delegate.h
new file mode 100644
index 0000000..aa67eb4
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/modals/infobar_modal_delegate.h
@@ -0,0 +1,18 @@
+// 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 IOS_CHROME_BROWSER_UI_INFOBARS_MODALS_INFOBAR_MODAL_DELEGATE_H_
+#define IOS_CHROME_BROWSER_UI_INFOBARS_MODALS_INFOBAR_MODAL_DELEGATE_H_
+
+#import <Foundation/Foundation.h>
+
+// Delegate to handle InfobarModal actions.
+@protocol InfobarModalDelegate
+
+// Asks the delegate to dismiss the InfobarModal.
+- (void)dismissInfobarModal:(UIViewController*)sender;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_INFOBARS_MODALS_INFOBAR_MODAL_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.h b/ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.h
new file mode 100644
index 0000000..ac521b7a
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.h
@@ -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.
+
+#ifndef IOS_CHROME_BROWSER_UI_INFOBARS_MODALS_INFOBAR_MODAL_VIEW_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_INFOBARS_MODALS_INFOBAR_MODAL_VIEW_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+@protocol InfobarModalDelegate;
+
+// UIViewController for a Modal Infobar. It contains more information and
+// options than its corresponding Banner Infobar.
+@interface InfobarModalViewController : UIViewController
+
+- (instancetype)initWithModalDelegate:
+    (id<InfobarModalDelegate>)infobarModalDelegate NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)initWithNibName:(NSString*)nibNameOrNil
+                         bundle:(NSBundle*)nibBundleOrNil NS_UNAVAILABLE;
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_INFOBARS_MODALS_INFOBAR_MODAL_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.mm b/ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.mm
new file mode 100644
index 0000000..40677c9
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.mm
@@ -0,0 +1,55 @@
+// 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.
+
+#import "ios/chrome/browser/ui/infobars/modals/infobar_modal_view_controller.h"
+
+#import "ios/chrome/browser/ui/infobars/modals/infobar_modal_delegate.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@interface InfobarModalViewController ()
+
+@property(strong, nonatomic) id<InfobarModalDelegate> infobarModalDelegate;
+
+@end
+
+@implementation InfobarModalViewController
+
+- (instancetype)initWithModalDelegate:
+    (id<InfobarModalDelegate>)infobarModalDelegate {
+  self = [super initWithNibName:nil bundle:nil];
+  if (self) {
+    _infobarModalDelegate = infobarModalDelegate;
+  }
+  return self;
+}
+
+#pragma mark - View Lifecycle
+
+// TODO(crbug.com/1372916): PLACEHOLDER UI for the modal ViewController.
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  self.view.backgroundColor = [UIColor lightGrayColor];
+
+  UIButton* dismissButton = [UIButton buttonWithType:UIButtonTypeSystem];
+  [dismissButton setTitle:@"Dismiss" forState:UIControlStateNormal];
+  [dismissButton addTarget:self.infobarModalDelegate
+                    action:@selector(dismissInfobarModal:)
+          forControlEvents:UIControlEventTouchUpInside];
+  dismissButton.translatesAutoresizingMaskIntoConstraints = NO;
+
+  [self.view addSubview:dismissButton];
+
+  [NSLayoutConstraint activateConstraints:@[
+    [dismissButton.topAnchor constraintEqualToAnchor:self.view.topAnchor],
+    [dismissButton.trailingAnchor
+        constraintEqualToAnchor:self.view.trailingAnchor],
+    [dismissButton.widthAnchor constraintEqualToConstant:100]
+  ]];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/infobars/presentation/BUILD.gn b/ios/chrome/browser/ui/infobars/presentation/BUILD.gn
index 963665c..4a712d6 100644
--- a/ios/chrome/browser/ui/infobars/presentation/BUILD.gn
+++ b/ios/chrome/browser/ui/infobars/presentation/BUILD.gn
@@ -9,6 +9,10 @@
     "infobar_banner_animator.mm",
     "infobar_banner_presentation_controller.h",
     "infobar_banner_presentation_controller.mm",
+    "infobar_expand_banner_animator.h",
+    "infobar_expand_banner_animator.mm",
+    "infobar_modal_presentation_controller.h",
+    "infobar_modal_presentation_controller.mm",
   ]
   deps = [
     "//base",
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.h b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.h
index 96fd220..2c4fd1cf 100644
--- a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.h
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.h
@@ -7,8 +7,8 @@
 
 #import <UIKit/UIKit.h>
 
-// TODO(crbug.com/1372916): PLACEHOLDER Work in Progress class for the new
-// InfobarUI.
+// Animator used to present an InfobarBanner dropping from the top of the
+// screen.
 @interface InfobarBannerAnimator
     : NSObject <UIViewControllerAnimatedTransitioning>
 
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.mm b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.mm
index df8df12..c49b7b9 100644
--- a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.mm
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_animator.mm
@@ -15,6 +15,7 @@
   return 1;
 }
 
+// TODO(crbug.com/911864): PLACEHOLDER animation to present the InfobarBanner.
 - (void)animateTransition:
     (id<UIViewControllerContextTransitioning>)transitionContext {
   // Set up the keys for the "base" view/VC and the "presented" view/VC. These
@@ -72,6 +73,11 @@
           [presentedView removeFromSuperview];
         }
 
+        // If dismiss was successful, remove the view.
+        if (!self.presenting && success) {
+          [presentedView removeFromSuperview];
+        }
+
         // Notify UIKit that the transition has finished
         [transitionContext completeTransition:success];
       }];
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.h b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.h
index bbe80a8..774ee511 100644
--- a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.h
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.h
@@ -7,8 +7,7 @@
 
 #import <UIKit/UIKit.h>
 
-// TODO(crbug.com/1372916): PLACEHOLDER Work in Progress class for the new
-// InfobarUI.
+// InfobarBanner Presentation Controller.
 @interface InfobarBannerPresentationController : UIPresentationController
 
 @end
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.mm b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.mm
index 1bf914e..0d37513f 100644
--- a/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.mm
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_banner_presentation_controller.mm
@@ -26,28 +26,26 @@
 
 @implementation InfobarBannerPresentationController
 
-- (CGRect)frameOfPresentedViewInContainerView {
-  return self.viewForPresentedView.bounds;
-}
-
 - (void)presentationTransitionWillBegin {
   self.containerView.frame = self.viewForPresentedView.frame;
 }
 
 - (void)containerViewWillLayoutSubviews {
-  self.presentedView.frame = [self frameOfPresentedViewInContainerView];
+  self.containerView.frame = self.viewForPresentedView.frame;
+  self.presentedView.frame = self.viewForPresentedView.bounds;
 }
 
+// TODO(crbug.com/911864): PLACEHOLDER position and size for the banner
+// presented view.
 - (UIView*)viewForPresentedView {
-  if (!_viewForPresentedView) {
-    CGFloat safeAreaWidth =
-        CGRectGetWidth(self.containerView.safeAreaLayoutGuide.layoutFrame);
-    CGFloat maxAvailableWidth = safeAreaWidth - 2 * kContainerHorizontalPadding;
-    _viewForPresentedView = [[UIView alloc]
-        initWithFrame:CGRectMake(kContainerHorizontalPadding,
-                                 kContainerTopPadding, maxAvailableWidth,
-                                 kContainerHeight)];
-  }
+  UIWindow* window = UIApplication.sharedApplication.keyWindow;
+  CGFloat safeAreaWidth = CGRectGetWidth(window.bounds);
+  CGFloat maxAvailableWidth = safeAreaWidth - 2 * kContainerHorizontalPadding;
+  _viewForPresentedView = [[UIView alloc]
+      initWithFrame:CGRectMake(kContainerHorizontalPadding,
+                               kContainerTopPadding, maxAvailableWidth,
+                               kContainerHeight)];
+
   return _viewForPresentedView;
 }
 
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.h b/ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.h
new file mode 100644
index 0000000..fa10349
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.h
@@ -0,0 +1,21 @@
+// 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 IOS_CHROME_BROWSER_UI_INFOBARS_PRESENTATION_INFOBAR_EXPAND_BANNER_ANIMATOR_H_
+#define IOS_CHROME_BROWSER_UI_INFOBARS_PRESENTATION_INFOBAR_EXPAND_BANNER_ANIMATOR_H_
+
+#import <UIKit/UIKit.h>
+
+// Animator used to animate the expansion of an InfobarBanner into an
+// InfobarModal.
+@interface InfobarExpandBannerAnimator
+    : NSObject <UIViewControllerAnimatedTransitioning>
+
+// YES if this animator is presenting a view controller, NO if it is dismissing
+// one.
+@property(nonatomic, assign) BOOL presenting;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_INFOBARS_PRESENTATION_INFOBAR_EXPAND_BANNER_ANIMATOR_H_
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.mm b/ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.mm
new file mode 100644
index 0000000..bf59fde7
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.mm
@@ -0,0 +1,95 @@
+// 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.
+
+#import "ios/chrome/browser/ui/infobars/presentation/infobar_expand_banner_animator.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@implementation InfobarExpandBannerAnimator
+
+- (NSTimeInterval)transitionDuration:
+    (id<UIViewControllerContextTransitioning>)transitionContext {
+  return 1;
+}
+
+// TODO(crbug.com/1372916): PLACEHOLDER animation for the modal presentation.
+- (void)animateTransition:
+    (id<UIViewControllerContextTransitioning>)transitionContext {
+  // Set up the keys for the "base" view/VC and the "presented" view/VC. These
+  // will be used to fetch the associated objects later.
+  NSString* baseViewKey = self.presenting ? UITransitionContextFromViewKey
+                                          : UITransitionContextToViewKey;
+  NSString* presentedViewControllerKey =
+      self.presenting ? UITransitionContextToViewControllerKey
+                      : UITransitionContextFromViewControllerKey;
+  NSString* presentedViewKey = self.presenting ? UITransitionContextToViewKey
+                                               : UITransitionContextFromViewKey;
+
+  NSString* presentingVCKey = UITransitionContextFromViewControllerKey;
+  UIViewController* presentingViewController =
+      [transitionContext viewControllerForKey:presentingVCKey];
+
+  // Get views and view controllers for this transition.
+  UIView* baseView = [transitionContext viewForKey:baseViewKey];
+  UIViewController* presentedViewController =
+      [transitionContext viewControllerForKey:presentedViewControllerKey];
+  UIView* presentedView = [transitionContext viewForKey:presentedViewKey];
+
+  // Always add the destination view to the container.
+  UIView* containerView = [transitionContext containerView];
+  if (self.presenting) {
+    [containerView addSubview:presentedView];
+  } else {
+    [containerView addSubview:baseView];
+  }
+
+  // Set the initial frame and Compute the final frame for the presented view.
+  CGRect presentedViewFinalFrame = CGRectZero;
+
+  // If presenting, calculate the presentedView start and final frames.
+  if (self.presenting) {
+    presentedViewFinalFrame =
+        [transitionContext finalFrameForViewController:presentedViewController];
+
+    CGRect initialFrame = [presentingViewController.view
+        convertRect:presentingViewController.view.frame
+             toView:nil];
+    presentedView.frame = initialFrame;
+  }
+
+  // Animate using the animator's own duration value.
+  [UIView animateWithDuration:[self transitionDuration:transitionContext]
+      delay:0
+      usingSpringWithDamping:0.85
+      initialSpringVelocity:0
+      options:UIViewAnimationOptionTransitionNone
+      animations:^{
+        if (self.presenting) {
+          presentedView.frame = presentedViewFinalFrame;
+          presentingViewController.view.alpha = 0;
+        } else {
+          presentedViewController.view.alpha = 0;
+        }
+      }
+      completion:^(BOOL finished) {
+        BOOL success = ![transitionContext transitionWasCancelled];
+
+        // If presentation failed, remove the view.
+        if (self.presenting && !success) {
+          [presentedView removeFromSuperview];
+        }
+
+        // If dismissmal was successfull, remove the view.
+        if (!self.presenting && success) {
+          [presentedView removeFromSuperview];
+        }
+
+        // Notify UIKit that the transition has finished
+        [transitionContext completeTransition:success];
+      }];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.h b/ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.h
new file mode 100644
index 0000000..d7819de
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.h
@@ -0,0 +1,15 @@
+// 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 IOS_CHROME_BROWSER_UI_INFOBARS_PRESENTATION_INFOBAR_MODAL_PRESENTATION_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_INFOBARS_PRESENTATION_INFOBAR_MODAL_PRESENTATION_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+// PresentationController for the ModalInfobar.
+@interface InfobarModalPresentationController : UIPresentationController
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_INFOBARS_PRESENTATION_INFOBAR_MODAL_PRESENTATION_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.mm b/ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.mm
new file mode 100644
index 0000000..f8831d7
--- /dev/null
+++ b/ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.mm
@@ -0,0 +1,36 @@
+// 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.
+
+#import "ios/chrome/browser/ui/infobars/presentation/infobar_modal_presentation_controller.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace {
+// The presented view Height
+const CGFloat kPresentedViewHeight = 300.0;
+// The presented view outer horizontal margins.
+const CGFloat kPresentedViewHorizontalMargin = 20.0;
+// The presented view origin on the X coordinate system of the parent view.
+const CGFloat kPresentedViewOriginX = 20.0;
+// The presented view origin on the Y coordinate system of the parent view.
+const CGFloat kPresentedViewOriginY = 150.0;
+}  // namespace
+
+@implementation InfobarModalPresentationController
+
+// TODO(crbug.com/1372916): Placeholder size and position for the presented
+// view.
+- (void)containerViewWillLayoutSubviews {
+  CGRect safeAreaBounds = self.containerView.safeAreaLayoutGuide.layoutFrame;
+  CGFloat safeAreaWidth = CGRectGetWidth(safeAreaBounds);
+  CGFloat maxAvailableWidth =
+      safeAreaWidth - 2 * kPresentedViewHorizontalMargin;
+  self.presentedView.frame =
+      CGRectMake(kPresentedViewOriginX, kPresentedViewOriginY,
+                 maxAvailableWidth, kPresentedViewHeight);
+}
+
+@end
diff --git a/ios/web/webui/web_ui_mojo_inttest.mm b/ios/web/webui/web_ui_mojo_inttest.mm
index e268e17..08e4c57 100644
--- a/ios/web/webui/web_ui_mojo_inttest.mm
+++ b/ios/web/webui/web_ui_mojo_inttest.mm
@@ -11,6 +11,7 @@
 #include "ios/web/grit/ios_web_resources.h"
 #import "ios/web/public/navigation_manager.h"
 #import "ios/web/public/test/navigation_test_util.h"
+#import "ios/web/public/web_state/web_state.h"
 #include "ios/web/public/web_state/web_state_interface_provider.h"
 #include "ios/web/public/web_ui_ios_data_source.h"
 #include "ios/web/public/webui/web_ui_ios_controller.h"
@@ -19,8 +20,6 @@
 #include "ios/web/test/mojo_test.mojom.h"
 #include "ios/web/test/test_url_constants.h"
 #import "ios/web/test/web_int_test.h"
-#import "ios/web/web_state/ui/crw_web_controller.h"
-#import "ios/web/web_state/web_state_impl.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
 #include "url/gurl.h"
 #include "url/scheme_host_port.h"
@@ -143,12 +142,13 @@
  protected:
   void SetUp() override {
     WebIntTest::SetUp();
-    ui_handler_ = std::make_unique<TestUIHandler>();
-    web::WebState::CreateParams params(GetBrowserState());
-    web_state_ = std::make_unique<web::WebStateImpl>(params);
-    web_state_->GetNavigationManagerImpl().InitializeSession();
-    WebUIIOSControllerFactory::RegisterFactory(
-        new TestWebUIControllerFactory(ui_handler_.get()));
+    @autoreleasepool {
+      ui_handler_ = std::make_unique<TestUIHandler>();
+      WebState::CreateParams params(GetBrowserState());
+      web_state_ = WebState::Create(params);
+      WebUIIOSControllerFactory::RegisterFactory(
+          new TestWebUIControllerFactory(ui_handler_.get()));
+    }
   }
 
   void TearDown() override {
@@ -169,12 +169,12 @@
   }
 
   // Returns WebState which loads test WebUI page.
-  WebStateImpl* web_state() { return web_state_.get(); }
+  WebState* web_state() { return web_state_.get(); }
   // Returns UI handler which communicates with WebUI page.
   TestUIHandler* test_ui_handler() { return ui_handler_.get(); }
 
  private:
-  std::unique_ptr<WebStateImpl> web_state_;
+  std::unique_ptr<WebState> web_state_;
   std::unique_ptr<TestUIHandler> ui_handler_;
 };
 
diff --git a/ios/web_view/tools/build.py b/ios/web_view/tools/build.py
index ecffe84..d83c92f 100755
--- a/ios/web_view/tools/build.py
+++ b/ios/web_view/tools/build.py
@@ -37,11 +37,9 @@
       of the ninja build command.
   """
   if target_device == 'iphoneos':
-    target_cpu = 'arm'
-    additional_cpu = 'arm64'
+    target_cpu = 'arm64'
   else:
-    target_cpu = 'x86'
-    additional_cpu = 'x64'
+    target_cpu = 'x64'
 
   if build_config == 'Debug':
     build_config_gn_args = 'is_debug=true'
@@ -236,8 +234,6 @@
   else:
     extra_gn_options += 'ios_web_view_enable_autofill=false '
   extra_gn_options += 'ios_web_view_output_name="%s" ' % output_name
-  # This is needed until all clients drop iOS 10 support.
-  extra_gn_options += 'ios_deployment_target="10.0" '
   # This prevents Breakpad from being included in the final binary to avoid
   # duplicate symbols with the client app.
   extra_gn_options += 'use_crash_key_stubs=true '
diff --git a/media/audio/android/audio_track_output_stream.cc b/media/audio/android/audio_track_output_stream.cc
index c3773ae..b271a8a 100644
--- a/media/audio/android/audio_track_output_stream.cc
+++ b/media/audio/android/audio_track_output_stream.cc
@@ -117,11 +117,11 @@
 
   Java_AudioTrackOutputStream_setVolume(AttachCurrentThread(),
                                         j_audio_output_stream_, volume);
-};
+}
 
 void AudioTrackOutputStream::GetVolume(double* volume) {
   *volume = volume_;
-};
+}
 
 // AudioOutputStream::SourceCallback implementation methods called from Java.
 ScopedJavaLocalRef<jobject> AudioTrackOutputStream::OnMoreData(
diff --git a/media/base/android/media_url_interceptor.h b/media/base/android/media_url_interceptor.h
index 5189033..d099ee0 100644
--- a/media/base/android/media_url_interceptor.h
+++ b/media/base/android/media_url_interceptor.h
@@ -18,7 +18,7 @@
 // and translate them into files containing media.
 class MEDIA_EXPORT MediaUrlInterceptor {
  public:
-  virtual ~MediaUrlInterceptor() {};
+  virtual ~MediaUrlInterceptor() {}
 
   // Returns true if the embedder has intercepted the url and
   // false otherwise.
diff --git a/media/base/ipc/media_param_traits_macros.h b/media/base/ipc/media_param_traits_macros.h
index 0b2d13a..a385817 100644
--- a/media/base/ipc/media_param_traits_macros.h
+++ b/media/base/ipc/media_param_traits_macros.h
@@ -143,7 +143,7 @@
 #if defined(OS_ANDROID)
 IPC_ENUM_TRAITS_MIN_MAX_VALUE(media::MediaDrmKeyType,
                               media::MediaDrmKeyType::MIN,
-                              media::MediaDrmKeyType::MAX);
+                              media::MediaDrmKeyType::MAX)
 #endif  // defined(OS_ANDROID)
 
 IPC_ENUM_TRAITS_VALIDATE(
diff --git a/media/capture/video/win/sink_filter_win.h b/media/capture/video/win/sink_filter_win.h
index e99ed21..e74dbf7 100644
--- a/media/capture/video/win/sink_filter_win.h
+++ b/media/capture/video/win/sink_filter_win.h
@@ -38,7 +38,6 @@
     0x0000,
     0x0010,
     {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
-;
 
 // 16-bit grey-scale single plane formats provided by some depth cameras.
 const GUID kMediaSubTypeZ16 = {
diff --git a/media/gpu/ipc/service/vda_video_decoder.cc b/media/gpu/ipc/service/vda_video_decoder.cc
index 82ad459..aaf2f44 100644
--- a/media/gpu/ipc/service/vda_video_decoder.cc
+++ b/media/gpu/ipc/service/vda_video_decoder.cc
@@ -12,6 +12,7 @@
 #include "base/callback_helpers.h"
 #include "base/location.h"
 #include "base/logging.h"
+#include "build/build_config.h"
 #include "gpu/config/gpu_driver_bug_workarounds.h"
 #include "gpu/config/gpu_info.h"
 #include "gpu/config/gpu_preferences.h"
@@ -21,6 +22,7 @@
 #include "media/base/video_codecs.h"
 #include "media/base/video_types.h"
 #include "media/base/video_util.h"
+#include "media/gpu/buildflags.h"
 #include "media/gpu/gpu_video_accelerator_util.h"
 #include "media/gpu/gpu_video_decode_accelerator_factory.h"
 #include "media/video/picture.h"
@@ -118,8 +120,8 @@
           std::move(media_log), target_color_space,
           base::BindOnce(&PictureBufferManager::Create),
           base::BindOnce(&CreateCommandBufferHelper, std::move(get_stub_cb)),
-          base::BindOnce(&CreateAndInitializeVda, gpu_preferences,
-                         gpu_workarounds),
+          base::BindRepeating(&CreateAndInitializeVda, gpu_preferences,
+                              gpu_workarounds),
           GpuVideoAcceleratorUtil::ConvertGpuToMediaDecodeCapabilities(
               GpuVideoDecodeAcceleratorFactory::GetDecoderCapabilities(
                   gpu_preferences, gpu_workarounds))));
@@ -264,13 +266,31 @@
     return;
   }
 
+  // VaapiVideoDecodeAccelerator doesn't support profile change, the different
+  // profiles from the initial profile will causes an issue in AMD driver
+  // (https://crbug.com/929565). We should support reinitialization for profile
+  // changes. We limit this support as small as possible for safety.
+  const bool is_profile_change =
+#if defined(OS_CHROMEOS) && BUILDFLAG(USE_VAAPI)
+      config_.profile() != config.profile();
+#else
+      false;
+#endif
+
   // The configuration is supported.
   config_ = config;
 
   if (reinitializing) {
-    parent_task_runner_->PostTask(
-        FROM_HERE, base::BindOnce(&VdaVideoDecoder::InitializeDone,
-                                  parent_weak_this_, true));
+    if (is_profile_change) {
+      MEDIA_LOG(INFO, media_log_) << "Reinitialize VideoDecodeAccelerator";
+      gpu_task_runner_->PostTask(
+          FROM_HERE, base::BindOnce(&VdaVideoDecoder::ReinitializeOnGpuThread,
+                                    gpu_weak_this_));
+    } else {
+      parent_task_runner_->PostTask(
+          FROM_HERE, base::BindOnce(&VdaVideoDecoder::InitializeDone,
+                                    parent_weak_this_, true));
+    }
     return;
   }
 
@@ -279,21 +299,36 @@
       base::BindOnce(&VdaVideoDecoder::InitializeOnGpuThread, gpu_weak_this_));
 }
 
+void VdaVideoDecoder::ReinitializeOnGpuThread() {
+  DVLOG(2) << __func__;
+  DCHECK(gpu_task_runner_->BelongsToCurrentThread());
+  DCHECK(vda_initialized_);
+  DCHECK(vda_);
+  DCHECK(!reinitializing_);
+
+  reinitializing_ = true;
+  vda_->Flush();
+}
+
 void VdaVideoDecoder::InitializeOnGpuThread() {
   DVLOG(2) << __func__;
   DCHECK(gpu_task_runner_->BelongsToCurrentThread());
   DCHECK(!vda_);
+  DCHECK(!vda_initialized_);
 
-  // Set up |command_buffer_helper|.
-  scoped_refptr<CommandBufferHelper> command_buffer_helper =
-      std::move(create_command_buffer_helper_cb_).Run();
-  if (!command_buffer_helper) {
-    parent_task_runner_->PostTask(
-        FROM_HERE, base::BindOnce(&VdaVideoDecoder::InitializeDone,
-                                  parent_weak_this_, false));
-    return;
+  // Set up |command_buffer_helper_|.
+  if (!reinitializing_) {
+    command_buffer_helper_ = std::move(create_command_buffer_helper_cb_).Run();
+    if (!command_buffer_helper_) {
+      parent_task_runner_->PostTask(
+          FROM_HERE, base::BindOnce(&VdaVideoDecoder::InitializeDone,
+                                    parent_weak_this_, false));
+      return;
+    }
+
+    picture_buffer_manager_->Initialize(gpu_task_runner_,
+                                        command_buffer_helper_);
   }
-  picture_buffer_manager_->Initialize(gpu_task_runner_, command_buffer_helper);
 
   // Convert the configuration.
   VideoDecodeAccelerator::Config vda_config;
@@ -312,8 +347,8 @@
   // vda_config.supported_output_formats = [Only used by PPAPI]
 
   // Create and initialize the VDA.
-  vda_ = std::move(create_and_initialize_vda_cb_)
-             .Run(command_buffer_helper, this, media_log_.get(), vda_config);
+  vda_ = create_and_initialize_vda_cb_.Run(command_buffer_helper_, this,
+                                           media_log_.get(), vda_config);
   if (!vda_) {
     parent_task_runner_->PostTask(
         FROM_HERE, base::BindOnce(&VdaVideoDecoder::InitializeDone,
@@ -347,6 +382,7 @@
     return;
   }
 
+  reinitializing_ = false;
   std::move(init_cb_).Run(true);
 }
 
@@ -624,6 +660,17 @@
   DCHECK(gpu_task_runner_->BelongsToCurrentThread());
   DCHECK(vda_initialized_);
 
+  if (reinitializing_) {
+    // If reinitializing, this Flush() is requested by VdaVideoDecoder in
+    // ReinitializeOnGpuThread(), not MojoVideoDecoder. We should not invoke
+    // NotifyFlushDoneOnParentThread.
+    gpu_weak_vda_factory_ = nullptr;
+    vda_ = nullptr;
+    vda_initialized_ = false;
+    InitializeOnGpuThread();
+    return;
+  }
+
   parent_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&VdaVideoDecoder::NotifyFlushDoneOnParentThread,
                                 parent_weak_this_));
diff --git a/media/gpu/ipc/service/vda_video_decoder.h b/media/gpu/ipc/service/vda_video_decoder.h
index e9e9b5d..39c6478 100644
--- a/media/gpu/ipc/service/vda_video_decoder.h
+++ b/media/gpu/ipc/service/vda_video_decoder.h
@@ -47,7 +47,7 @@
   using CreateCommandBufferHelperCB =
       base::OnceCallback<scoped_refptr<CommandBufferHelper>()>;
   using CreateAndInitializeVdaCB =
-      base::OnceCallback<std::unique_ptr<VideoDecodeAccelerator>(
+      base::RepeatingCallback<std::unique_ptr<VideoDecodeAccelerator>(
           scoped_refptr<CommandBufferHelper>,
           VideoDecodeAccelerator::Client*,
           MediaLog*,
@@ -138,6 +138,7 @@
   // Tasks and thread hopping.
   void DestroyOnGpuThread();
   void InitializeOnGpuThread();
+  void ReinitializeOnGpuThread();
   void InitializeDone(bool status);
   void DecodeOnGpuThread(scoped_refptr<DecoderBuffer> buffer,
                          int32_t bitstream_id);
@@ -197,8 +198,10 @@
   // Only written on the GPU thread during initialization, which is mutually
   // exclusive with reads on the parent thread.
   std::unique_ptr<VideoDecodeAccelerator> vda_;
+  scoped_refptr<CommandBufferHelper> command_buffer_helper_;
   bool vda_initialized_ = false;
   bool decode_on_parent_thread_ = false;
+  bool reinitializing_ = false;
 
   //
   // Weak pointers, prefixed by bound thread.
diff --git a/media/gpu/ipc/service/vda_video_decoder_unittest.cc b/media/gpu/ipc/service/vda_video_decoder_unittest.cc
index 6d411268..0264cf9 100644
--- a/media/gpu/ipc/service/vda_video_decoder_unittest.cc
+++ b/media/gpu/ipc/service/vda_video_decoder_unittest.cc
@@ -103,8 +103,8 @@
                        base::Unretained(this)),
         base::BindOnce(&VdaVideoDecoderTest::CreateCommandBufferHelper,
                        base::Unretained(this)),
-        base::BindOnce(&VdaVideoDecoderTest::CreateAndInitializeVda,
-                       base::Unretained(this)),
+        base::BindRepeating(&VdaVideoDecoderTest::CreateAndInitializeVda,
+                            base::Unretained(this)),
         GetCapabilities()));
     client_ = vdavd_.get();
   }
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc
index e3d89251..5e0f2e0 100644
--- a/media/gpu/video_encode_accelerator_unittest.cc
+++ b/media/gpu/video_encode_accelerator_unittest.cc
@@ -60,6 +60,7 @@
 #include "media/gpu/test/video_accelerator_unittest_helpers.h"
 #include "media/gpu/test/video_encode_accelerator_unittest_helpers.h"
 #include "media/video/fake_video_encode_accelerator.h"
+#include "media/video/h264_level_limits.h"
 #include "media/video/h264_parser.h"
 #include "media/video/video_encode_accelerator.h"
 #include "mojo/core/embedder/embedder.h"
@@ -124,7 +125,7 @@
 // The syntax of each test stream is:
 // "in_filename:width:height:profile:out_filename:requested_bitrate
 //  :requested_framerate:requested_subsequent_bitrate
-//  :requested_subsequent_framerate:pixel_format"
+//  :requested_subsequent_framerate:pixel_format:requested_level"
 // Instead of ":", "," can be used as a seperator as well. Note that ":" does
 // not work on Windows as it interferes with file paths.
 // - |in_filename| is YUV raw stream. Its format must be |pixel_format|
@@ -139,9 +140,11 @@
 //   Helpful description: http://wiki.multimedia.cx/index.php?title=IVF
 // Further parameters are optional (need to provide preceding positional
 // parameters if a specific subsequent parameter is required):
-// - |requested_bitrate| requested bitrate in bits per second.
+// - |requested_bitrate| requested bitrate in bits per second, use
+//                       kDefaultBitrate if not provided.
 //   Bitrate is only forced for tests that test bitrate.
-// - |requested_framerate| requested initial framerate.
+// - |requested_framerate| requested initial framerate, use kDefaultFramerate
+//                         if not provided.
 // - |requested_subsequent_bitrate| bitrate to switch to in the middle of the
 //                                  stream.
 // - |requested_subsequent_framerate| framerate to switch to in the middle
@@ -149,6 +152,9 @@
 // - |pixel_format| is the VideoPixelFormat of |in_filename|. Users needs to
 //   set the value corresponding to the desired format. If it is not specified,
 //   this would be PIXEL_FORMAT_I420.
+// - |requested_level| requested output level. Currently only for H264 codec and
+//                     the value should be assigned as H264LevelIDC enum in
+//                     h264_parser.h. Use kDefaultH264Level if not provided.
 
 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
 const char* g_default_in_filename = "bear_320x192_40frames.yuv";
@@ -183,6 +189,13 @@
 
 bool g_fake_encoder = false;
 
+// Enable/Disable ForceLevel test. Since currently not all devices support level
+// configuration, test could be disabled by the command line
+// "--force_level=false" (or set "true" to enable).
+// TODO(johnylin): enable ForceLevel after supporting dynamically query drivers
+//                 level capability. https://crbug.com/878674.
+bool g_force_level = false;
+
 // This identifies the storage type of inputting VideoFrame on Encode().
 // If |native_input| is true, inputting VideoFrame on Encode() is DmaBuf-backed
 // VideoFrame. Otherwise, it is MEM-backed VideoFrame.
@@ -247,8 +260,8 @@
   TestStream()
       : num_frames(0),
         aligned_buffer_size(0),
-        requested_bitrate(0),
-        requested_framerate(0),
+        requested_bitrate(kDefaultBitrate),
+        requested_framerate(kDefaultFramerate),
         requested_subsequent_bitrate(0),
         requested_subsequent_framerate(0) {}
   ~TestStream() {}
@@ -279,6 +292,7 @@
   unsigned int requested_framerate;
   unsigned int requested_subsequent_bitrate;
   unsigned int requested_subsequent_framerate;
+  base::Optional<uint8_t> requested_level;
 };
 
 // Return the |percentile| from a sorted vector.
@@ -443,7 +457,7 @@
                                  base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
     }
     LOG_ASSERT(fields.size() >= 4U) << data;
-    LOG_ASSERT(fields.size() <= 10U) << data;
+    LOG_ASSERT(fields.size() <= 11U) << data;
     auto test_stream = std::make_unique<TestStream>();
 
     test_stream->in_filename = FilePathStringTypeToString(fields[0]);
@@ -488,10 +502,41 @@
       LOG_ASSERT(base::StringToUint(fields[9], &format));
       test_stream->pixel_format = static_cast<VideoPixelFormat>(format);
     }
+
+    if (fields.size() >= 11 && !fields[10].empty()) {
+      unsigned int requested_level = 0;
+      LOG_ASSERT(base::StringToUint(fields[10], &requested_level));
+      test_stream->requested_level =
+          base::checked_cast<uint8_t>(requested_level);
+    }
     test_streams->push_back(std::move(test_stream));
   }
 }
 
+// Check if the parameter set in |test_stream| are valid for initializing
+// encoder.
+static bool CheckH264InitConfigValidity(const TestStream* test_stream) {
+  if (!test_stream->requested_level)
+    return true;  // regard as valid if level is not assigned.
+
+  constexpr size_t kH264MacroblockSizeInPixels = 16;
+  gfx::Size coded_size =
+      gfx::Size(base::bits::Align(test_stream->visible_size.width(),
+                                  kH264MacroblockSizeInPixels),
+                base::bits::Align(test_stream->visible_size.height(),
+                                  kH264MacroblockSizeInPixels));
+  uint32_t framesize_in_mbs =
+      coded_size.GetArea() /
+      (kH264MacroblockSizeInPixels * kH264MacroblockSizeInPixels);
+
+  // Check if frame size, initial bitrate and macroblock processing rate are
+  // valid from the limit of profile and level.
+  return CheckH264LevelLimits(
+      test_stream->requested_profile, test_stream->requested_level.value(),
+      test_stream->requested_bitrate, test_stream->requested_framerate,
+      framesize_in_mbs);
+}
+
 // Basic test environment shared across multiple test cases. We only need to
 // setup it once for all test cases.
 // It helps
@@ -641,9 +686,11 @@
 
   virtual ~StreamValidator() {}
 
-  // Provide a StreamValidator instance for the given |profile|.
+  // Provide a StreamValidator instance for the given |profile| and |level|.
+  // |level| is optional and should specified only if codec is h264.
   static std::unique_ptr<StreamValidator> Create(
       VideoCodecProfile profile,
+      base::Optional<uint8_t> level,
       const FrameFoundCallback& frame_cb);
 
   // Process and verify contents of a bitstream buffer.
@@ -659,8 +706,10 @@
 
 class H264Validator : public StreamValidator {
  public:
-  explicit H264Validator(const FrameFoundCallback& frame_cb)
+  H264Validator(base::Optional<uint8_t> level,
+                const FrameFoundCallback& frame_cb)
       : StreamValidator(frame_cb),
+        target_level_(level),
         seen_sps_(false),
         seen_pps_(false),
         seen_idr_(false),
@@ -672,6 +721,10 @@
   bool IsNewPicture(const H264SliceHeader& slice_hdr);
   bool UpdateCurrentPicture(const H264SliceHeader& slice_hdr);
 
+  // H264Validator will check output level with the value of |target_level_|
+  // unless it is base::nullopt.
+  base::Optional<uint8_t> target_level_;
+
   // Set to true when encoder provides us with the corresponding NALU type.
   bool seen_sps_;
   bool seen_pps_;
@@ -727,6 +780,16 @@
             h264_parser_.GetSPS(sps_id)->GetVisibleRect().value_or(gfx::Rect());
         ASSERT_FALSE(visible_size.IsEmpty());
         visible_size_ = visible_size.size();
+        // Check the output level is equal to target level.
+        if (target_level_) {
+          LOG(INFO) << "Target level: "
+                    << static_cast<int>(target_level_.value())
+                    << ", output level: "
+                    << static_cast<int>(
+                           h264_parser_.GetSPS(sps_id)->GetIndicatedLevel());
+          ASSERT_EQ(h264_parser_.GetSPS(sps_id)->GetIndicatedLevel(),
+                    target_level_.value());
+        }
         seen_sps_ = true;
         break;
       }
@@ -838,11 +901,12 @@
 // static
 std::unique_ptr<StreamValidator> StreamValidator::Create(
     VideoCodecProfile profile,
+    base::Optional<uint8_t> level,
     const FrameFoundCallback& frame_cb) {
   std::unique_ptr<StreamValidator> validator;
 
   if (IsH264(profile)) {
-    validator.reset(new H264Validator(frame_cb));
+    validator.reset(new H264Validator(level, frame_cb));
   } else if (IsVP8(profile)) {
     validator.reset(new VP8Validator(frame_cb));
   } else if (IsVP9(profile)) {
@@ -1303,7 +1367,8 @@
             bool mid_stream_bitrate_switch,
             bool mid_stream_framerate_switch,
             bool verify_output,
-            bool verify_output_timestamp);
+            bool verify_output_timestamp,
+            bool force_level);
   void CreateEncoder();
   void DestroyEncoder();
 
@@ -1513,7 +1578,8 @@
                      bool mid_stream_bitrate_switch,
                      bool mid_stream_framerate_switch,
                      bool verify_output,
-                     bool verify_output_timestamp)
+                     bool verify_output_timestamp,
+                     bool force_level)
     : VEAClientBase(note),
       state_(CS_CREATED),
       test_stream_(test_stream),
@@ -1541,10 +1607,15 @@
   if (keyframe_period_)
     LOG_ASSERT(kMaxKeyframeDelay < keyframe_period_);
 
+  // Only check target level against requested level if |force_level| is true.
+  base::Optional<uint8_t> target_level;
+  if (force_level)
+    target_level = test_stream_->requested_level;
+
   // Fake encoder produces an invalid stream, so skip validating it.
   if (!g_fake_encoder) {
     stream_validator_ = StreamValidator::Create(
-        test_stream_->requested_profile,
+        test_stream_->requested_profile, target_level,
         base::BindRepeating(&VEAClient::HandleEncodedFrame,
                             base::Unretained(this)));
     CHECK(stream_validator_);
@@ -1593,8 +1664,6 @@
       return encoder;
     return nullptr;
   } else {
-    // TODO(johnylin): add level testing in video_encode_accelerator_unittest
-    //                 crbug.com/863327
     return GpuVideoEncodeAcceleratorFactory::CreateVEA(config, client,
                                                        gpu_preferences);
   }
@@ -1611,7 +1680,7 @@
   const VideoEncodeAccelerator::Config config(
       test_stream_->pixel_format, test_stream_->visible_size,
       test_stream_->requested_profile, requested_bitrate_, requested_framerate_,
-      base::nullopt, storage_type);
+      test_stream_->requested_level, storage_type);
   encoder_ = CreateVideoEncodeAccelerator(config, this, gpu::GpuPreferences());
   if (!encoder_) {
     LOG(ERROR) << "Failed creating a VideoEncodeAccelerator.";
@@ -1644,16 +1713,8 @@
 
 void VEAClient::UpdateTestStreamData(bool mid_stream_bitrate_switch,
                                      bool mid_stream_framerate_switch) {
-  // Use defaults for bitrate/framerate if they are not provided.
-  if (test_stream_->requested_bitrate == 0)
-    requested_bitrate_ = kDefaultBitrate;
-  else
-    requested_bitrate_ = test_stream_->requested_bitrate;
-
-  if (test_stream_->requested_framerate == 0)
-    requested_framerate_ = kDefaultFramerate;
-  else
-    requested_framerate_ = test_stream_->requested_framerate;
+  requested_bitrate_ = test_stream_->requested_bitrate;
+  requested_framerate_ = test_stream_->requested_framerate;
 
   // If bitrate/framerate switch is requested, use the subsequent values if
   // provided, or, if not, calculate them from their initial values using
@@ -2450,9 +2511,13 @@
 // - If true, switch framerate mid-stream.
 // - If true, verify the output frames of encoder.
 // - If true, verify the timestamps of output frames.
+// - If true, verify the output level is as provided in input stream. Only
+//   available for H264 encoder for now.
 class VideoEncodeAcceleratorTest
     : public ::testing::TestWithParam<
-          std::tuple<int, bool, int, bool, bool, bool, bool, bool, bool>> {};
+          std::
+              tuple<int, bool, int, bool, bool, bool, bool, bool, bool, bool>> {
+};
 
 TEST_P(VideoEncodeAcceleratorTest, TestSimpleEncode) {
   size_t num_concurrent_encoders = std::get<0>(GetParam());
@@ -2465,6 +2530,32 @@
   const bool verify_output =
       std::get<7>(GetParam()) || g_env->verify_all_output();
   const bool verify_output_timestamp = std::get<8>(GetParam());
+  const bool force_level = std::get<9>(GetParam());
+
+  if (force_level) {
+    // Skip ForceLevel test if "--force_level=false".
+    if (!g_force_level) {
+      LOG(WARNING) << "ForceLevel test is disabled.";
+      return;
+    }
+
+    // Skip ForceLevel test for non-H264 test stream.
+    for (auto it = g_env->test_streams_.begin();
+         it != g_env->test_streams_.end();) {
+      if (!IsH264((*it)->requested_profile) || !(*it)->requested_level) {
+        LOG(WARNING) << "Skip ForceLevel for stream: " << (*it)->in_filename
+                     << " (Non-H264 codec or level is not assigned).";
+        it = g_env->test_streams_.erase(it);
+      } else {
+        ASSERT_TRUE(CheckH264InitConfigValidity(it->get()));
+        ++it;
+      }
+    }
+    if (g_env->test_streams_.empty()) {
+      LOG(WARNING) << "ForceLevel test is totally skipped.";
+      return;
+    }
+  }
 
   std::vector<
       std::unique_ptr<media::test::ClientStateNotification<ClientState>>>
@@ -2488,7 +2579,7 @@
         g_env->test_streams_[test_stream_index].get(), notes.back().get(),
         encoder_save_to_file, keyframe_period, force_bitrate, test_perf,
         mid_stream_bitrate_switch, mid_stream_framerate_switch, verify_output,
-        verify_output_timestamp));
+        verify_output_timestamp, force_level));
 
     g_env->GetRenderingTaskRunner()->PostTask(
         FROM_HERE, base::BindOnce(&VEAClient::CreateEncoder,
@@ -2576,17 +2667,31 @@
 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
 // TODO(kcwu): add back test of verify_output=true after
 // https://crbug.com/694131 fixed.
-INSTANTIATE_TEST_SUITE_P(
-    SimpleEncode,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, true, 0, false, false, false, false, false, false)));
+INSTANTIATE_TEST_SUITE_P(SimpleEncode,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           true,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
 
-INSTANTIATE_TEST_SUITE_P(
-    EncoderPerf,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, false, true, false, false, false, false)));
+INSTANTIATE_TEST_SUITE_P(EncoderPerf,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           false,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
 
 INSTANTIATE_TEST_SUITE_P(ForceKeyframes,
                          VideoEncodeAcceleratorTest,
@@ -2598,61 +2703,48 @@
                                                            false,
                                                            false,
                                                            false,
+                                                           false,
                                                            false)));
 
-INSTANTIATE_TEST_SUITE_P(
-    ForceBitrate,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, true, false, false, false, false, false)));
+INSTANTIATE_TEST_SUITE_P(ForceBitrate,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
 
-INSTANTIATE_TEST_SUITE_P(
-    MidStreamParamSwitchBitrate,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, true, false, true, false, false, false)));
+INSTANTIATE_TEST_SUITE_P(MidStreamParamSwitchBitrate,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           true,
+                                                           false,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
 
 // TODO(kcwu): add back bitrate test after https://crbug.com/693336 fixed.
-INSTANTIATE_TEST_SUITE_P(
-    DISABLED_MidStreamParamSwitchFPS,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, true, false, false, true, false, false)));
-
-INSTANTIATE_TEST_SUITE_P(
-    MultipleEncoders,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(3, false, 0, false, false, false, false, false, false),
-        std::make_tuple(3, false, 0, true, false, true, false, false, false)));
-
-INSTANTIATE_TEST_SUITE_P(
-    VerifyTimestamp,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, false, false, false, false, false, true)));
-
-INSTANTIATE_TEST_SUITE_P(NoInputTest,
-                         VideoEncodeAcceleratorSimpleTest,
-                         ::testing::Values(0));
-
-INSTANTIATE_TEST_SUITE_P(CacheLineUnalignedInputTest,
-                         VideoEncodeAcceleratorSimpleTest,
-                         ::testing::Values(1));
-
-#elif defined(OS_MACOSX) || defined(OS_WIN)
-INSTANTIATE_TEST_SUITE_P(
-    SimpleEncode,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, true, 0, false, false, false, false, false, false),
-        std::make_tuple(1, true, 0, false, false, false, false, true, false)));
-
-INSTANTIATE_TEST_SUITE_P(
-    EncoderPerf,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, false, true, false, false, false, false)));
+INSTANTIATE_TEST_SUITE_P(DISABLED_MidStreamParamSwitchFPS,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false)));
 
 INSTANTIATE_TEST_SUITE_P(MultipleEncoders,
                          VideoEncodeAcceleratorTest,
@@ -2664,20 +2756,129 @@
                                                            false,
                                                            false,
                                                            false,
+                                                           false,
+                                                           false),
+                                           std::make_tuple(3,
+                                                           false,
+                                                           0,
+                                                           true,
+                                                           false,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false,
                                                            false)));
 
-INSTANTIATE_TEST_SUITE_P(
-    VerifyTimestamp,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, false, false, false, false, false, true)));
+INSTANTIATE_TEST_SUITE_P(VerifyTimestamp,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           true,
+                                                           false)));
+
+INSTANTIATE_TEST_SUITE_P(ForceLevel,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           true)));
+
+INSTANTIATE_TEST_SUITE_P(NoInputTest,
+                         VideoEncodeAcceleratorSimpleTest,
+                         ::testing::Values(0));
+
+INSTANTIATE_TEST_SUITE_P(CacheLineUnalignedInputTest,
+                         VideoEncodeAcceleratorSimpleTest,
+                         ::testing::Values(1));
+
+#elif defined(OS_MACOSX) || defined(OS_WIN)
+INSTANTIATE_TEST_SUITE_P(SimpleEncode,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           true,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false),
+                                           std::make_tuple(1,
+                                                           true,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           true,
+                                                           false,
+                                                           false)));
+
+INSTANTIATE_TEST_SUITE_P(EncoderPerf,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           false,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
+
+INSTANTIATE_TEST_SUITE_P(MultipleEncoders,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(3,
+                                                           false,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
+
+INSTANTIATE_TEST_SUITE_P(VerifyTimestamp,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           true,
+                                                           false)));
 
 #if defined(OS_WIN)
-INSTANTIATE_TEST_SUITE_P(
-    ForceBitrate,
-    VideoEncodeAcceleratorTest,
-    ::testing::Values(
-        std::make_tuple(1, false, 0, true, false, false, false, false, false)));
+INSTANTIATE_TEST_SUITE_P(ForceBitrate,
+                         VideoEncodeAcceleratorTest,
+                         ::testing::Values(std::make_tuple(1,
+                                                           false,
+                                                           0,
+                                                           true,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false,
+                                                           false)));
 #endif  // defined(OS_WIN)
 
 #endif  // defined(OS_CHROMEOS) || defined(OS_LINUX)
@@ -2786,6 +2987,12 @@
       media::g_verify_all_output = true;
       continue;
     }
+    if (it->first == "force_level") {
+      std::string input(it->second.begin(), it->second.end());
+      // Only set |g_force_level| to true if input is "true"; false otherwise.
+      media::g_force_level = input == "true";
+      continue;
+    }
 
     if (it->first == "native_input") {
 #if defined(OS_CHROMEOS)
diff --git a/media/gpu/windows/d3d11_vp9_picture.h b/media/gpu/windows/d3d11_vp9_picture.h
index 1d2f407..3d3bcbbb 100644
--- a/media/gpu/windows/d3d11_vp9_picture.h
+++ b/media/gpu/windows/d3d11_vp9_picture.h
@@ -17,9 +17,9 @@
  public:
   explicit D3D11VP9Picture(D3D11PictureBuffer* picture_buffer);
 
-  D3D11PictureBuffer* picture_buffer() const { return picture_buffer_; };
+  D3D11PictureBuffer* picture_buffer() const { return picture_buffer_; }
 
-  size_t level() const { return level_; };
+  size_t level() const { return level_; }
 
  protected:
   ~D3D11VP9Picture() override;
diff --git a/media/test/data/README.md b/media/test/data/README.md
index 0497c2a..27e9790 100644
--- a/media/test/data/README.md
+++ b/media/test/data/README.md
@@ -750,6 +750,11 @@
 
 ### VEA test files:
 
+#### bear_128x96_40frames.yuv
+First 40 raw i420 frames of bear-1280x720.mp4 scaled down to 128x96 for
+video_encode_accelerator_unittest. This is the size that could be encoded
+with the lowest H264 level 1.0 in 30 fps.
+
 #### bear_320x192_40frames.yuv
 First 40 raw i420 frames of bear-1280x720.mp4 scaled down to 320x192 for
 video_encode_accelerator_unittest.
diff --git a/media/test/data/bear_128x96_40frames.yuv b/media/test/data/bear_128x96_40frames.yuv
new file mode 100644
index 0000000..e2b9ac7
--- /dev/null
+++ b/media/test/data/bear_128x96_40frames.yuv
Binary files differ
diff --git a/net/http/http_cache.h b/net/http/http_cache.h
index 01dac0d..ec49e1fd 100644
--- a/net/http/http_cache.h
+++ b/net/http/http_cache.h
@@ -88,7 +88,7 @@
 
 #if defined(OS_ANDROID)
     virtual void SetAppStatusListener(
-        base::android::ApplicationStatusListener* app_status_listener){};
+        base::android::ApplicationStatusListener* app_status_listener) {}
 #endif
   };
 
diff --git a/net/proxy_resolution/proxy_config_service_android.cc b/net/proxy_resolution/proxy_config_service_android.cc
index b55e5ee..25680aa 100644
--- a/net/proxy_resolution/proxy_config_service_android.cc
+++ b/net/proxy_resolution/proxy_config_service_android.cc
@@ -143,7 +143,7 @@
       rules->proxies_for_https.IsEmpty() &&
       rules->proxies_for_ftp.IsEmpty() &&
       rules->fallback_proxies.IsEmpty());
-};
+}
 
 void GetLatestProxyConfigInternal(const GetPropertyCallback& get_property,
                                   ProxyConfigWithAnnotation* config) {
diff --git a/rlz/win/lib/process_info.cc b/rlz/win/lib/process_info.cc
index dc85c84..9b3a2fe7 100644
--- a/rlz/win/lib/process_info.cc
+++ b/rlz/win/lib/process_info.cc
@@ -82,4 +82,4 @@
   return has_rights;
 }
 
-};  // namespace
+}  // namespace rlz_lib
diff --git a/rlz/win/lib/process_info.h b/rlz/win/lib/process_info.h
index cb1f8f72..82d0c8e5 100644
--- a/rlz/win/lib/process_info.h
+++ b/rlz/win/lib/process_info.h
@@ -20,6 +20,6 @@
  private:
   DISALLOW_COPY_AND_ASSIGN(ProcessInfo);
 };  // class
-};  // namespace
+}  // namespace rlz_lib
 
 #endif  // RLZ_WIN_LIB_PROCESS_INFO_H_
diff --git a/sandbox/win/src/job.cc b/sandbox/win/src/job.cc
index cb1c6b9f4..39baffb 100644
--- a/sandbox/win/src/job.cc
+++ b/sandbox/win/src/job.cc
@@ -12,9 +12,9 @@
 
 namespace sandbox {
 
-Job::Job() : job_handle_(nullptr){};
+Job::Job() : job_handle_(nullptr) {}
 
-Job::~Job(){};
+Job::~Job() {}
 
 DWORD Job::Init(JobLevel security_level,
                 const wchar_t* job_name,
diff --git a/sandbox/win/src/policy_engine_params.h b/sandbox/win/src/policy_engine_params.h
index 54846ca..07fd7ea 100644
--- a/sandbox/win/src/policy_engine_params.h
+++ b/sandbox/win/src/policy_engine_params.h
@@ -160,7 +160,7 @@
 template <typename T>
 ParameterSet ParamPickerMake(T& parameter) {
   return ParameterSetEx<T>(&parameter);
-};
+}
 
 struct CountedParameterSetBase {
   size_t count;
diff --git a/sandbox/win/src/resolver_64.cc b/sandbox/win/src/resolver_64.cc
index c6c8868..806d024 100644
--- a/sandbox/win/src/resolver_64.cc
+++ b/sandbox/win/src/resolver_64.cc
@@ -31,7 +31,7 @@
     mov_rax = kMovRax;
     jmp_rax = kJmpRax;
     interceptor_function = 0;
-  };
+  }
   USHORT mov_rax;  // = 48 B8
   ULONG_PTR interceptor_function;
   USHORT jmp_rax;  // = ff e0
diff --git a/sandbox/win/src/service_resolver_64.cc b/sandbox/win/src/service_resolver_64.cc
index 23aaed8..f692d0e 100644
--- a/sandbox/win/src/service_resolver_64.cc
+++ b/sandbox/win/src/service_resolver_64.cc
@@ -168,7 +168,7 @@
 #error "Unsupported Windows 64-bit Arch"
 #endif
 
-};  // namespace
+}  // namespace
 
 namespace sandbox {
 
diff --git a/sandbox/win/src/service_resolver_unittest.cc b/sandbox/win/src/service_resolver_unittest.cc
index f5375c5..68d9bbd 100644
--- a/sandbox/win/src/service_resolver_unittest.cc
+++ b/sandbox/win/src/service_resolver_unittest.cc
@@ -62,7 +62,7 @@
     this->target_ = fake_target_;
 
     return ret;
-  };
+  }
 
   DISALLOW_COPY_AND_ASSIGN(ResolverThunkTestImpl);
 };
diff --git a/sandbox/win/src/target_process.h b/sandbox/win/src/target_process.h
index 24059c9..7242166 100644
--- a/sandbox/win/src/target_process.h
+++ b/sandbox/win/src/target_process.h
@@ -25,8 +25,8 @@
 
 class StartupInformation;
 
-};  // namespace win
-};  // namespace base
+}  // namespace win
+}  // namespace base
 
 namespace sandbox {
 
diff --git a/sandbox/win/src/win_utils.cc b/sandbox/win/src/win_utils.cc
index 135d40e..863b874 100644
--- a/sandbox/win/src/win_utils.cc
+++ b/sandbox/win/src/win_utils.cc
@@ -516,7 +516,7 @@
   return base_address;
 }
 
-};  // namespace sandbox
+}  // namespace sandbox
 
 void ResolveNTFunctionPtr(const char* name, void* ptr) {
   static volatile HMODULE ntdll = nullptr;
diff --git a/services/device/device_service.cc b/services/device/device_service.cc
index ecc9b3b..01ffff0 100644
--- a/services/device/device_service.cc
+++ b/services/device/device_service.cc
@@ -96,6 +96,7 @@
       url_loader_factory_(std::move(url_loader_factory)),
       geolocation_api_key_(geolocation_api_key),
       wake_lock_context_callback_(wake_lock_context_callback),
+      wake_lock_provider_(file_task_runner_, wake_lock_context_callback_),
       java_interface_provider_initialized_(false) {
   java_nfc_delegate_.Reset(java_nfc_delegate);
 }
@@ -110,7 +111,8 @@
       file_task_runner_(std::move(file_task_runner)),
       io_task_runner_(std::move(io_task_runner)),
       url_loader_factory_(std::move(url_loader_factory)),
-      geolocation_api_key_(geolocation_api_key) {}
+      geolocation_api_key_(geolocation_api_key),
+      wake_lock_provider_(file_task_runner_, wake_lock_context_callback_) {}
 #endif
 
 DeviceService::~DeviceService() {
@@ -319,8 +321,7 @@
 
 void DeviceService::BindWakeLockProviderRequest(
     mojom::WakeLockProviderRequest request) {
-  WakeLockProvider::Create(std::move(request), file_task_runner_,
-                           wake_lock_context_callback_);
+  wake_lock_provider_.AddBinding(std::move(request));
 }
 
 void DeviceService::BindUsbDeviceManagerRequest(
diff --git a/services/device/device_service.h b/services/device/device_service.h
index 44f17808..87264e70 100644
--- a/services/device/device_service.h
+++ b/services/device/device_service.h
@@ -33,6 +33,7 @@
 #include "services/device/public/mojom/vibration_manager.mojom.h"
 #include "services/device/public/mojom/wake_lock_provider.mojom.h"
 #include "services/device/wake_lock/wake_lock_context.h"
+#include "services/device/wake_lock/wake_lock_provider.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
 #include "services/service_manager/public/cpp/service.h"
@@ -181,6 +182,7 @@
 
   const std::string geolocation_api_key_;
   WakeLockContextCallback wake_lock_context_callback_;
+  WakeLockProvider wake_lock_provider_;
 
 #if defined(OS_ANDROID)
   // Binds |java_interface_provider_| to an interface registry that exposes
diff --git a/services/device/public/cpp/test/test_wake_lock_provider.cc b/services/device/public/cpp/test/test_wake_lock_provider.cc
index 734e154..80c656d 100644
--- a/services/device/public/cpp/test/test_wake_lock_provider.cc
+++ b/services/device/public/cpp/test/test_wake_lock_provider.cc
@@ -4,6 +4,9 @@
 
 #include "services/device/public/cpp/test/test_wake_lock_provider.h"
 
+#include <memory>
+#include <utility>
+
 #include "base/callback.h"
 #include "base/logging.h"
 #include "mojo/public/cpp/bindings/binding.h"
@@ -16,64 +19,136 @@
 class TestWakeLockProvider::TestWakeLock : public mojom::WakeLock,
                                            public service_manager::Service {
  public:
-  TestWakeLock(TestWakeLockProvider* provider, mojom::WakeLockType type)
-      : provider_(provider), type_(type) {}
-  ~TestWakeLock() override {
-    if (active_)
-      provider_->OnWakeLockDeactivated(this);
+  TestWakeLock(mojom::WakeLockRequest request,
+               mojom::WakeLockType type,
+               TestWakeLockProvider* provider)
+      : type_(type), provider_(provider) {
+    AddClient(std::move(request));
+    bindings_.set_connection_error_handler(base::BindRepeating(
+        &TestWakeLock::OnConnectionError, base::Unretained(this)));
   }
 
+  ~TestWakeLock() override = default;
+
   mojom::WakeLockType type() const { return type_; }
 
   // mojom::WakeLock:
   void RequestWakeLock() override {
-    if (!active_) {
-      provider_->OnWakeLockActivated(this);
-      active_ = true;
-    }
+    DCHECK(bindings_.dispatch_context());
+    DCHECK_GE(num_lock_requests_, 0);
+
+    // Coalesce consecutive requests from the same client.
+    if (*bindings_.dispatch_context())
+      return;
+
+    *bindings_.dispatch_context() = true;
+    num_lock_requests_++;
+    CheckAndNotifyProvider();
   }
+
   void CancelWakeLock() override {
-    if (active_) {
-      provider_->OnWakeLockDeactivated(this);
-      active_ = false;
-    }
+    DCHECK(bindings_.dispatch_context());
+
+    // Coalesce consecutive cancel requests from the same client. Also ignore a
+    // CancelWakeLock call without a RequestWakeLock call.
+    if (!(*bindings_.dispatch_context()))
+      return;
+
+    DCHECK_GT(num_lock_requests_, 0);
+    *bindings_.dispatch_context() = false;
+    num_lock_requests_--;
+    CheckAndNotifyProvider();
   }
-  void AddClient(mojom::WakeLockRequest request) override { NOTIMPLEMENTED(); }
+
+  void AddClient(mojom::WakeLockRequest request) override {
+    bindings_.AddBinding(this, std::move(request),
+                         std::make_unique<bool>(false));
+  }
+
   void ChangeType(mojom::WakeLockType type,
                   ChangeTypeCallback callback) override {
     NOTIMPLEMENTED();
   }
+
   void HasWakeLockForTests(HasWakeLockForTestsCallback callback) override {
     NOTIMPLEMENTED();
   }
 
+  void OnConnectionError() {
+    // If there is an outstanding request by this client then decrement its
+    // request and check if the wake lock is deactivated.
+    DCHECK(bindings_.dispatch_context());
+    if (*bindings_.dispatch_context() && num_lock_requests_ > 0) {
+      num_lock_requests_--;
+      CheckAndNotifyProvider();
+    }
+
+    // TestWakeLockProvider will take care of deleting this object as it owns
+    // it.
+    if (bindings_.empty())
+      provider_->OnConnectionError(type_, this);
+  }
+
  private:
-  TestWakeLockProvider* provider_;  // Not owned.
+  void CheckAndNotifyProvider() {
+    if (num_lock_requests_ == 1) {
+      provider_->OnWakeLockActivated(type_);
+      return;
+    }
+
+    if (num_lock_requests_ == 0) {
+      provider_->OnWakeLockDeactivated(type_);
+      return;
+    }
+  }
 
   mojom::WakeLockType type_;
 
-  // Set to true by RequestWakeLock and back to false by CancelWakeLock.
-  bool active_ = false;
+  // Not owned.
+  TestWakeLockProvider* provider_;
+
+  mojo::BindingSet<mojom::WakeLock, std::unique_ptr<bool>> bindings_;
+
+  int num_lock_requests_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(TestWakeLock);
 };
 
+// Holds the state associated with wake locks of a single type across the
+// system i.e. if 3 |kAppSuspension| wake locks are currently held the |count|
+// would be 3.
+struct TestWakeLockProvider::WakeLockDataPerType {
+  WakeLockDataPerType() = default;
+  WakeLockDataPerType(WakeLockDataPerType&&) = default;
+  ~WakeLockDataPerType() = default;
+
+  // Currently held count of this wake lock type.
+  int64_t count = 0;
+
+  // Map of all wake locks of this type created by this provider. An entry is
+  // removed from this map when an |OnConnectionError| is received.
+  std::map<TestWakeLock*, std::unique_ptr<TestWakeLock>> wake_locks;
+
+  // Observers for this wake lock type.
+  mojo::InterfacePtrSet<mojom::WakeLockObserver> observers;
+
+  DISALLOW_COPY_AND_ASSIGN(WakeLockDataPerType);
+};
+
 TestWakeLockProvider::TestWakeLockProvider(
     service_manager::mojom::ServiceRequest request)
-    : service_binding_(this, std::move(request)) {}
+    : service_binding_(this, std::move(request)) {
+  // Populates |wake_lock_store_| with entries for all types of wake locks.
+  wake_lock_store_[mojom::WakeLockType::kPreventAppSuspension] =
+      std::make_unique<WakeLockDataPerType>();
+  wake_lock_store_[mojom::WakeLockType::kPreventDisplaySleep] =
+      std::make_unique<WakeLockDataPerType>();
+  wake_lock_store_[mojom::WakeLockType::kPreventDisplaySleepAllowDimming] =
+      std::make_unique<WakeLockDataPerType>();
+}
 
 TestWakeLockProvider::~TestWakeLockProvider() = default;
 
-int TestWakeLockProvider::GetActiveWakeLocksOfType(
-    mojom::WakeLockType type) const {
-  int count = 0;
-  for (const auto* lock : active_wake_locks_) {
-    if (lock->type() == type)
-      count++;
-  }
-  return count;
-}
-
 void TestWakeLockProvider::GetWakeLockContextForID(
     int context_id,
     mojo::InterfaceRequest<mojom::WakeLockContext> request) {
@@ -86,8 +161,11 @@
     mojom::WakeLockReason reason,
     const std::string& description,
     mojom::WakeLockRequest request) {
-  auto wake_lock = std::make_unique<TestWakeLock>(this, type);
-  mojo::MakeStrongBinding(std::move(wake_lock), std::move(request));
+  // Create a wake lock and store it to manage it's lifetime.
+  auto wake_lock =
+      std::make_unique<TestWakeLock>(std::move(request), type, this);
+  GetWakeLockDataPerType(type).wake_locks[wake_lock.get()] =
+      std::move(wake_lock);
 }
 
 void TestWakeLockProvider::OnBindInterface(
@@ -99,18 +177,60 @@
       this, mojom::WakeLockProviderRequest(std::move(interface_pipe)));
 }
 
-void TestWakeLockProvider::OnWakeLockActivated(TestWakeLock* wake_lock) {
-  DCHECK(!active_wake_locks_.count(wake_lock));
-  active_wake_locks_.insert(wake_lock);
-  if (wake_lock_requested_callback_)
-    wake_lock_requested_callback_.Run();
+void TestWakeLockProvider::OnConnectionError(mojom::WakeLockType type,
+                                             TestWakeLock* wake_lock) {
+  size_t result = GetWakeLockDataPerType(type).wake_locks.erase(wake_lock);
+  DCHECK_GT(result, 0UL);
 }
 
-void TestWakeLockProvider::OnWakeLockDeactivated(TestWakeLock* wake_lock) {
-  DCHECK(active_wake_locks_.count(wake_lock));
-  active_wake_locks_.erase(wake_lock);
-  if (wake_lock_canceled_callback_)
-    wake_lock_canceled_callback_.Run();
+TestWakeLockProvider::WakeLockDataPerType&
+TestWakeLockProvider::GetWakeLockDataPerType(mojom::WakeLockType type) const {
+  auto it = wake_lock_store_.find(type);
+  // An entry for |type| should always be created in the constructor.
+  DCHECK(it != wake_lock_store_.end());
+  return *(it->second);
+}
+
+void TestWakeLockProvider::OnWakeLockActivated(mojom::WakeLockType type) {
+  // Increment the currently activated wake locks of type |type|.
+  const int64_t old_count = GetWakeLockDataPerType(type).count;
+  DCHECK_GE(old_count, 0);
+
+  GetWakeLockDataPerType(type).count = old_count + 1;
+}
+
+void TestWakeLockProvider::OnWakeLockDeactivated(mojom::WakeLockType type) {
+  // Decrement the currently activated wake locks of type |type|.
+  const int64_t old_count = GetWakeLockDataPerType(type).count;
+  DCHECK_GT(old_count, 0);
+
+  const int64_t new_count = old_count - 1;
+  GetWakeLockDataPerType(type).count = new_count;
+  // Notify observers of the last cancelation i.e. deactivation of wake lock
+  // type |type|.
+  if (new_count == 0) {
+    GetWakeLockDataPerType(type).observers.ForAllPtrs(
+        [type](mojom::WakeLockObserver* wake_lock_observer) {
+          wake_lock_observer->OnWakeLockDeactivated(type);
+        });
+  }
+}
+
+void TestWakeLockProvider::NotifyOnWakeLockDeactivation(
+    mojom::WakeLockType type,
+    mojom::WakeLockObserverPtr observer) {
+  // Notify observer immediately if wake lock is deactivated. Add it to the
+  // observers list for future deactivation notifications.
+  if (GetWakeLockDataPerType(type).count == 0) {
+    observer->OnWakeLockDeactivated(type);
+  }
+  GetWakeLockDataPerType(type).observers.AddPtr(std::move(observer));
+}
+
+void TestWakeLockProvider::GetActiveWakeLocksForTests(
+    mojom::WakeLockType type,
+    GetActiveWakeLocksForTestsCallback callback) {
+  std::move(callback).Run(GetWakeLockDataPerType(type).count);
 }
 
 }  // namespace device
diff --git a/services/device/public/cpp/test/test_wake_lock_provider.h b/services/device/public/cpp/test/test_wake_lock_provider.h
index 3298dad..77812b1 100644
--- a/services/device/public/cpp/test/test_wake_lock_provider.h
+++ b/services/device/public/cpp/test/test_wake_lock_provider.h
@@ -5,12 +5,15 @@
 #ifndef SERVICES_DEVICE_PUBLIC_CPP_TEST_TEST_WAKE_LOCK_PROVIDER_H_
 #define SERVICES_DEVICE_PUBLIC_CPP_TEST_TEST_WAKE_LOCK_PROVIDER_H_
 
+#include <map>
+#include <memory>
 #include <set>
 #include <string>
 
 #include "base/callback_forward.h"
 #include "base/macros.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
+#include "mojo/public/cpp/bindings/interface_ptr_set.h"
 #include "services/device/public/mojom/wake_lock.mojom.h"
 #include "services/device/public/mojom/wake_lock_provider.mojom.h"
 #include "services/service_manager/public/cpp/service.h"
@@ -26,16 +29,8 @@
   explicit TestWakeLockProvider(service_manager::mojom::ServiceRequest request);
   ~TestWakeLockProvider() override;
 
-  void set_wake_lock_requested_callback(const base::RepeatingClosure& cb) {
-    wake_lock_requested_callback_ = cb;
-  }
-  void set_wake_lock_canceled_callback(const base::RepeatingClosure& cb) {
-    wake_lock_canceled_callback_ = cb;
-  }
-
-  // Returns the number of active (i.e. currently-requested) wake locks of type
-  // |type|.
-  int GetActiveWakeLocksOfType(mojom::WakeLockType type) const;
+  // For internal use only.
+  class TestWakeLock;
 
   // mojom::WakeLockProvider:
   void GetWakeLockContextForID(
@@ -45,32 +40,39 @@
                                  mojom::WakeLockReason reason,
                                  const std::string& description,
                                  mojom::WakeLockRequest request) override;
+  void NotifyOnWakeLockDeactivation(
+      mojom::WakeLockType type,
+      mojom::WakeLockObserverPtr observer) override;
+  void GetActiveWakeLocksForTests(
+      mojom::WakeLockType type,
+      GetActiveWakeLocksForTestsCallback callback) override;
 
   // service_manager::Service:
   void OnBindInterface(const service_manager::BindSourceInfo& source_info,
                        const std::string& interface_name,
                        mojo::ScopedMessagePipeHandle interface_pipe) override;
 
+  void OnConnectionError(mojom::WakeLockType type, TestWakeLock* wake_lock);
+
  private:
-  class TestWakeLock;
+  struct WakeLockDataPerType;
 
-  // Called by |wake_lock| when the lock is requested for the first time.
-  void OnWakeLockActivated(TestWakeLock* wake_lock);
+  // Returns |WakeLockDataPerType| associated with wake lock of type |type|.
+  WakeLockDataPerType& GetWakeLockDataPerType(mojom::WakeLockType type) const;
 
-  // Called by |wake_lock| when the lock is canceled for the last time.
-  void OnWakeLockDeactivated(TestWakeLock* wake_lock);
+  // Called by a wake lock when the lock is requested for the first time.
+  void OnWakeLockActivated(mojom::WakeLockType type);
+
+  // Called by a wake lock when the lock is canceled for the last time.
+  void OnWakeLockDeactivated(mojom::WakeLockType type);
 
   service_manager::ServiceBinding service_binding_;
 
   mojo::BindingSet<mojom::WakeLockProvider> bindings_;
 
-  // Locks that have been passed to OnWakeLockRequested and haven't yet been
-  // released.
-  std::set<const TestWakeLock*> active_wake_locks_;
-
-  // Callbacks to execute when wake locks are requested or canceled.
-  base::RepeatingClosure wake_lock_requested_callback_;
-  base::RepeatingClosure wake_lock_canceled_callback_;
+  // Stores wake lock count and observers associated with each wake lock type.
+  std::map<mojom::WakeLockType, std::unique_ptr<WakeLockDataPerType>>
+      wake_lock_store_;
 
   DISALLOW_COPY_AND_ASSIGN(TestWakeLockProvider);
 };
diff --git a/services/device/public/mojom/wake_lock_provider.mojom b/services/device/public/mojom/wake_lock_provider.mojom
index 722aa4e..4353391 100644
--- a/services/device/public/mojom/wake_lock_provider.mojom
+++ b/services/device/public/mojom/wake_lock_provider.mojom
@@ -22,4 +22,19 @@
                             WakeLockReason reason,
                             string description,
                             WakeLock& wake_lock);
+
+  // Notifies the caller if no wake lock of type |type| is currently activated.
+  // If it is activated then the caller is notified on each deactivation event
+  // after this call.
+  NotifyOnWakeLockDeactivation(WakeLockType type, WakeLockObserver observer);
+
+  // Test-only method that returns the number of activated wake locks of type
+  // |type|.
+  GetActiveWakeLocksForTests(WakeLockType type) => (int32 count);
+};
+
+interface WakeLockObserver {
+  // Called when a wake lock of type |type| is canceled for the last time i.e.
+  // no wake lock of type |type| is held across the system.
+  OnWakeLockDeactivated(WakeLockType type);
 };
diff --git a/services/device/wake_lock/wake_lock.cc b/services/device/wake_lock/wake_lock.cc
index 83d5d4e..92bca82 100644
--- a/services/device/wake_lock/wake_lock.cc
+++ b/services/device/wake_lock/wake_lock.cc
@@ -52,6 +52,7 @@
 void WakeLock::RequestWakeLock() {
   DCHECK(main_task_runner_->RunsTasksInCurrentSequence());
   DCHECK(binding_set_.dispatch_context());
+  DCHECK_GE(num_lock_requests_, 0);
 
   // Uses the Context to get the outstanding status of current binding.
   // Two consecutive requests from the same client should be coalesced
@@ -69,6 +70,8 @@
   DCHECK(main_task_runner_->RunsTasksInCurrentSequence());
   DCHECK(binding_set_.dispatch_context());
 
+  // TODO(crbug.com/935063): Calling CancelWakeLock befoe RequestWakeLock
+  // shouldn't be allowed.
   if (!(*binding_set_.dispatch_context()))
     return;
 
@@ -97,8 +100,12 @@
   mojom::WakeLockType old_type = type_;
   type_ = type;
 
-  if (type_ != old_type && wake_lock_)
+  if (type_ != old_type && wake_lock_) {
     SwapWakeLock();
+    for (auto& observer : observers_) {
+      observer.OnWakeLockChanged(old_type, type_);
+    }
+  }
 
   std::move(callback).Run(true);
 }
@@ -171,7 +178,11 @@
   }
 
   if (binding_set_.empty()) {
-    base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
+    // In reality there is only one observer to this class i.e.
+    // WakeLockProvider, it will take care of deleting this object as it owns
+    // it.
+    for (auto& observer : observers_)
+      observer.OnConnectionError(type_, this);
   }
 }
 
diff --git a/services/device/wake_lock/wake_lock.h b/services/device/wake_lock/wake_lock.h
index 359c8b3..58ecb3f 100644
--- a/services/device/wake_lock/wake_lock.h
+++ b/services/device/wake_lock/wake_lock.h
@@ -49,6 +49,11 @@
     // number of holders goes to 0.
     virtual void OnWakeLockDeactivated(mojom::WakeLockType type) {}
 
+    // Called when the tracked wake lock's type is changed via ChangeType.
+    // |old_type| refers to its old type and new type refers to its new type.
+    virtual void OnWakeLockChanged(mojom::WakeLockType old_type,
+                                   mojom::WakeLockType new_type) {}
+
     // Called when |WakeLock| has no bindings left.
     virtual void OnConnectionError(mojom::WakeLockType type,
                                    WakeLock* wake_lock) {}
diff --git a/services/device/wake_lock/wake_lock_provider.cc b/services/device/wake_lock/wake_lock_provider.cc
index 8a04a2b..acdcf12 100644
--- a/services/device/wake_lock/wake_lock_provider.cc
+++ b/services/device/wake_lock/wake_lock_provider.cc
@@ -13,23 +13,46 @@
 
 namespace device {
 
-// static
-void WakeLockProvider::Create(
-    mojom::WakeLockProviderRequest request,
-    scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
-    const WakeLockContextCallback& native_view_getter) {
-  mojo::MakeStrongBinding(std::make_unique<WakeLockProvider>(
-                              std::move(file_task_runner), native_view_getter),
-                          std::move(request));
-}
+// Holds the state associated with wake locks of a single type across the
+// system i.e. if 3 |kAppSuspension| wake locks are currently held the |count|
+// would be 3.
+struct WakeLockProvider::WakeLockDataPerType {
+  WakeLockDataPerType() = default;
+  WakeLockDataPerType(WakeLockDataPerType&&) = default;
+  ~WakeLockDataPerType() = default;
+
+  // Currently activated wake locks of this wake lock type.
+  int64_t count = 0;
+
+  // Map of all wake locks of this type created by this provider. An entry is
+  // removed from this map when an |OnConnectionError| is received.
+  std::map<WakeLock*, std::unique_ptr<WakeLock>> wake_locks;
+
+  // Observers for this wake lock type.
+  mojo::InterfacePtrSet<mojom::WakeLockObserver> observers;
+
+  DISALLOW_COPY_AND_ASSIGN(WakeLockDataPerType);
+};
 
 WakeLockProvider::WakeLockProvider(
     scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
     const WakeLockContextCallback& native_view_getter)
     : file_task_runner_(std::move(file_task_runner)),
-      native_view_getter_(native_view_getter) {}
+      native_view_getter_(native_view_getter) {
+  // Populates |wake_lock_store_| with entries for all types of wake locks.
+  wake_lock_store_[mojom::WakeLockType::kPreventAppSuspension] =
+      std::make_unique<WakeLockDataPerType>();
+  wake_lock_store_[mojom::WakeLockType::kPreventDisplaySleep] =
+      std::make_unique<WakeLockDataPerType>();
+  wake_lock_store_[mojom::WakeLockType::kPreventDisplaySleepAllowDimming] =
+      std::make_unique<WakeLockDataPerType>();
+}
 
-WakeLockProvider::~WakeLockProvider() {}
+WakeLockProvider::~WakeLockProvider() = default;
+
+void WakeLockProvider::AddBinding(mojom::WakeLockProviderRequest request) {
+  bindings_.AddBinding(this, std::move(request));
+}
 
 void WakeLockProvider::GetWakeLockContextForID(
     int context_id,
@@ -46,10 +69,78 @@
     mojom::WakeLockReason reason,
     const std::string& description,
     mojom::WakeLockRequest request) {
-  // WakeLock owns itself.
-  new WakeLock(std::move(request), type, reason, description,
-               WakeLockContext::WakeLockInvalidContextId, native_view_getter_,
-               file_task_runner_);
+  std::unique_ptr<WakeLock> wake_lock =
+      std::make_unique<WakeLock>(std::move(request), type, reason, description,
+                                 WakeLockContext::WakeLockInvalidContextId,
+                                 native_view_getter_, file_task_runner_);
+  wake_lock->AddObserver(this);
+  GetWakeLockDataPerType(type).wake_locks[wake_lock.get()] =
+      std::move(wake_lock);
+}
+
+void WakeLockProvider::NotifyOnWakeLockDeactivation(
+    mojom::WakeLockType type,
+    mojom::WakeLockObserverPtr observer) {
+  // If |type| is not held then notify the observer immediately. Add it to the
+  // observer list for future deactivation notifications.
+  if (GetWakeLockDataPerType(type).count == 0) {
+    observer->OnWakeLockDeactivated(type);
+  }
+  GetWakeLockDataPerType(type).observers.AddPtr(std::move(observer));
+}
+
+void WakeLockProvider::GetActiveWakeLocksForTests(
+    mojom::WakeLockType type,
+    GetActiveWakeLocksForTestsCallback callback) {
+  std::move(callback).Run(GetWakeLockDataPerType(type).count);
+}
+
+void WakeLockProvider::OnWakeLockActivated(mojom::WakeLockType type) {
+  DVLOG(1) << __func__;
+  const int64_t old_count = GetWakeLockDataPerType(type).count;
+  DCHECK_GE(old_count, 0);
+
+  GetWakeLockDataPerType(type).count = old_count + 1;
+}
+
+void WakeLockProvider::OnWakeLockDeactivated(mojom::WakeLockType type) {
+  DVLOG(1) << __func__;
+  const int64_t old_count = GetWakeLockDataPerType(type).count;
+  DCHECK_GT(old_count, 0);
+
+  const int64_t new_count = old_count - 1;
+  GetWakeLockDataPerType(type).count = new_count;
+  // Notify observers of the last cancelation i.e. deactivation of wake lock
+  // type |type|.
+  if (new_count == 0) {
+    GetWakeLockDataPerType(type).observers.ForAllPtrs(
+        [type](mojom::WakeLockObserver* wake_lock_observer) {
+          wake_lock_observer->OnWakeLockDeactivated(type);
+        });
+  }
+}
+
+void WakeLockProvider::OnWakeLockChanged(mojom::WakeLockType old_type,
+                                         mojom::WakeLockType new_type) {
+  // This event is only received iff |old_type| had just one client. A change
+  // event means there is one less wake lock of |old_type| i.e. the same path
+  // as the deactivation event needs to be triggered.
+  OnWakeLockDeactivated(old_type);
+  OnWakeLockActivated(new_type);
+}
+
+void WakeLockProvider::OnConnectionError(mojom::WakeLockType type,
+                                         WakeLock* wake_lock) {
+  size_t result = GetWakeLockDataPerType(type).wake_locks.erase(wake_lock);
+  DCHECK_GT(result, 0UL);
+}
+
+WakeLockProvider::WakeLockDataPerType& WakeLockProvider::GetWakeLockDataPerType(
+    mojom::WakeLockType type) {
+  auto it = wake_lock_store_.find(type);
+  // An entry for |type| should always be created in the constructor.
+  DCHECK(it != wake_lock_store_.end());
+  return *(it->second);
 }
 
 }  // namespace device
diff --git a/services/device/wake_lock/wake_lock_provider.h b/services/device/wake_lock/wake_lock_provider.h
index 0ea73ed..fb3cb3ac 100644
--- a/services/device/wake_lock/wake_lock_provider.h
+++ b/services/device/wake_lock/wake_lock_provider.h
@@ -5,44 +5,73 @@
 #ifndef SERVICES_DEVICE_WAKE_LOCK_WAKE_LOCK_PROVIDER_H_
 #define SERVICES_DEVICE_WAKE_LOCK_WAKE_LOCK_PROVIDER_H_
 
+#include <map>
+#include <memory>
+#include <string>
+
 #include "base/sequenced_task_runner.h"
 #include "base/single_thread_task_runner.h"
+#include "mojo/public/cpp/bindings/interface_ptr_set.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
 #include "services/device/public/mojom/wake_lock_context.mojom.h"
 #include "services/device/public/mojom/wake_lock_provider.mojom.h"
+#include "services/device/wake_lock/wake_lock.h"
 #include "services/device/wake_lock/wake_lock_context.h"
 #include "ui/gfx/native_widget_types.h"
 
 namespace device {
 
 // Serves requests for WakeLockContext connections.
-class WakeLockProvider : public mojom::WakeLockProvider {
+class WakeLockProvider : public mojom::WakeLockProvider,
+                         public device::WakeLock::Observer {
  public:
   WakeLockProvider(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
                    const WakeLockContextCallback& native_view_getter);
   ~WakeLockProvider() override;
 
-  static void Create(
-      mojom::WakeLockProviderRequest request,
-      scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
-      const WakeLockContextCallback& native_view_getter);
+  // Adds this request to |bindings_|.
+  void AddBinding(mojom::WakeLockProviderRequest request);
 
-  // mojom::WakeLockProvider:
+  // mojom::WakeLockProvider overrides.
   void GetWakeLockContextForID(
       int context_id,
       mojo::InterfaceRequest<mojom::WakeLockContext> request) override;
-
   void GetWakeLockWithoutContext(mojom::WakeLockType type,
                                  mojom::WakeLockReason reason,
                                  const std::string& description,
                                  mojom::WakeLockRequest request) override;
+  void NotifyOnWakeLockDeactivation(
+      mojom::WakeLockType type,
+      mojom::WakeLockObserverPtr observer) override;
+  void GetActiveWakeLocksForTests(
+      mojom::WakeLockType type,
+      GetActiveWakeLocksForTestsCallback callback) override;
+
+  // device::WakeLock:Observer overrides.
+  void OnWakeLockActivated(mojom::WakeLockType type) override;
+  void OnWakeLockDeactivated(mojom::WakeLockType type) override;
+  void OnWakeLockChanged(mojom::WakeLockType old_type,
+                         mojom::WakeLockType new_type) override;
+  void OnConnectionError(mojom::WakeLockType type,
+                         WakeLock* wake_lock) override;
 
  private:
+  struct WakeLockDataPerType;
+
+  // Returns |WakeLockDataPerType| associated with wake lock of type |type|.
+  WakeLockDataPerType& GetWakeLockDataPerType(mojom::WakeLockType type);
+
   scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
   WakeLockContextCallback native_view_getter_;
 
+  mojo::BindingSet<mojom::WakeLockProvider> bindings_;
+
+  // Stores wake lock count and observers associated with each wake lock type.
+  std::map<mojom::WakeLockType, std::unique_ptr<WakeLockDataPerType>>
+      wake_lock_store_;
+
   DISALLOW_COPY_AND_ASSIGN(WakeLockProvider);
-};
+};  // namespace device
 
 }  // namespace device
 
diff --git a/services/device/wake_lock/wake_lock_unittest.cc b/services/device/wake_lock/wake_lock_unittest.cc
index 96370d2..4bed8723c 100644
--- a/services/device/wake_lock/wake_lock_unittest.cc
+++ b/services/device/wake_lock/wake_lock_unittest.cc
@@ -4,9 +4,13 @@
 
 #include "services/device/wake_lock/wake_lock.h"
 
+#include <map>
+#include <utility>
+
 #include "base/bind.h"
 #include "base/run_loop.h"
 #include "mojo/public/cpp/bindings/interface_ptr.h"
+#include "mojo/public/cpp/bindings/interface_ptr_set.h"
 #include "services/device/device_service_test_base.h"
 #include "services/device/public/mojom/constants.mojom.h"
 #include "services/device/public/mojom/wake_lock.mojom.h"
@@ -18,6 +22,47 @@
 
 namespace {
 
+class TestWakeLockObserver : public mojom::WakeLockObserver {
+ public:
+  TestWakeLockObserver() {
+    wake_lock_events_.emplace(mojom::WakeLockType::kPreventAppSuspension,
+                              EventCount());
+    wake_lock_events_.emplace(mojom::WakeLockType::kPreventDisplaySleep,
+                              EventCount());
+    wake_lock_events_.emplace(
+        mojom::WakeLockType::kPreventDisplaySleepAllowDimming, EventCount());
+  }
+
+  ~TestWakeLockObserver() override = default;
+
+  void AddBinding(mojom::WakeLockObserverRequest request) {
+    bindings_.AddBinding(this, std::move(request));
+  }
+
+  // mojom::WakeLockObserver overrides.
+  void OnWakeLockDeactivated(mojom::WakeLockType type) override {
+    wake_lock_events_[type].on_deactivation_count++;
+  }
+
+  // Returns the number of calls to |OnWakeLockDeactivated|.
+  int64_t GetOnDeactivationCount(mojom::WakeLockType type) {
+    DCHECK(wake_lock_events_.find(type) != wake_lock_events_.end());
+    return wake_lock_events_[type].on_deactivation_count;
+  }
+
+ private:
+  struct EventCount {
+    int64_t on_activation_count = 0;
+    int64_t on_deactivation_count = 0;
+  };
+
+  mojo::BindingSet<mojom::WakeLockObserver> bindings_;
+
+  std::map<mojom::WakeLockType, EventCount> wake_lock_events_;
+
+  DISALLOW_COPY_AND_ASSIGN(TestWakeLockObserver);
+};
+
 class WakeLockTest : public DeviceServiceTestBase {
  public:
   WakeLockTest() = default;
@@ -29,8 +74,8 @@
     connector()->BindInterface(mojom::kServiceName, &wake_lock_provider_);
 
     wake_lock_provider_->GetWakeLockWithoutContext(
-        device::mojom::WakeLockType::kPreventAppSuspension,
-        device::mojom::WakeLockReason::kOther, "WakeLockTest",
+        mojom::WakeLockType::kPreventAppSuspension,
+        mojom::WakeLockReason::kOther, "WakeLockTest",
         mojo::MakeRequest(&wake_lock_));
   }
 
@@ -44,7 +89,7 @@
     quit_closure.Run();
   }
 
-  bool ChangeType(device::mojom::WakeLockType type) {
+  bool ChangeType(mojom::WakeLockType type) {
     result_ = false;
 
     base::RunLoop run_loop;
@@ -68,6 +113,22 @@
     return has_wakelock_;
   }
 
+  // Returns the number of active wake locks of type |type|.
+  int GetActiveWakeLocks(mojom::WakeLockType type) {
+    base::RunLoop run_loop;
+    int result_count = 0;
+    wake_lock_provider_->GetActiveWakeLocksForTests(
+        type,
+        base::BindOnce(
+            [](base::RunLoop* run_loop, int* result_count, int32_t count) {
+              *result_count = count;
+              run_loop->Quit();
+            },
+            &run_loop, &result_count));
+    run_loop.Run();
+    return result_count;
+  }
+
   bool has_wakelock_;
   bool result_;
 
@@ -83,23 +144,29 @@
 
   wake_lock_->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 }
 
 // Cancel a wake lock first, which should have no effect.
 TEST_F(WakeLockTest, CancelThenRequest) {
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 }
 
 // Send multiple requests, which should be coalesced as one request.
@@ -110,9 +177,11 @@
   wake_lock_->RequestWakeLock();
   wake_lock_->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 }
 
 // Test Change Type. ChangeType() has no effect when wake lock is shared by
@@ -125,20 +194,53 @@
   EXPECT_TRUE(ChangeType(device::mojom::WakeLockType::kPreventDisplaySleep));
   EXPECT_TRUE(ChangeType(
       device::mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
-  EXPECT_FALSE(HasWakeLock());  // still inactive.
+  // Still inactive.
+  EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
 
+  // At this point the wake lock is of type |kPreventDisplaySleepAllowDimming|.
+  // Check for activation count of that type.
   wake_lock_->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
+
   // Call ChangeType() on a wake lock that is in active status.
+  // No effect when the type is the same.
   EXPECT_TRUE(ChangeType(device::mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
+
   EXPECT_TRUE(ChangeType(device::mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
+
   EXPECT_TRUE(ChangeType(
       device::mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
-  EXPECT_TRUE(HasWakeLock());  // still active.
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
+
+  // Still active.
+  EXPECT_TRUE(HasWakeLock());
 
   // Send multiple requests, should be coalesced as usual.
   wake_lock_->RequestWakeLock();
   wake_lock_->RequestWakeLock();
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
 
   mojom::WakeLockPtr wake_lock_1;
   wake_lock_->AddClient(mojo::MakeRequest(&wake_lock_1));
@@ -148,32 +250,54 @@
   wake_lock_->CancelWakeLock();
   wake_lock_1->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
 #else  // OS_ANDROID:
   EXPECT_FALSE(ChangeType(device::mojom::WakeLockType::kPreventAppSuspension));
   EXPECT_FALSE(ChangeType(device::mojom::WakeLockType::kPreventDisplaySleep));
   EXPECT_FALSE(ChangeType(
       device::mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(0, GetActiveWakeLocks(
+                   mojom::WakeLockType::kPreventDisplaySleepAllowDimming));
 #endif
 }
 
 // WakeLockProvider connection broken doesn't affect WakeLock.
 TEST_F(WakeLockTest, OnWakeLockProviderConnectionError) {
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  int32_t count =
+      GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension);
+  EXPECT_EQ(1, count);
 
+  // Reset wake lock provider and check if the wake lock is still valid.
   wake_lock_provider_.reset();
   base::RunLoop().RunUntilIdle();
-
   EXPECT_TRUE(HasWakeLock());
+
+  // Instantiate wake lock provider and check if the wake lock count remains the
+  // same as before since the provider implementation is a singleton.
+  connector()->BindInterface(mojom::kServiceName, &wake_lock_provider_);
+  EXPECT_EQ(count,
+            GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
+  // Cancel wake lock and check the count.
   wake_lock_->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 }
 
 // One WakeLock instance can serve multiple clients at same time.
 TEST_F(WakeLockTest, MultipleClients) {
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   mojom::WakeLockPtr wake_lock_1;
   mojom::WakeLockPtr wake_lock_2;
@@ -183,24 +307,29 @@
   wake_lock_->AddClient(mojo::MakeRequest(&wake_lock_3));
 
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_1->RequestWakeLock();
   wake_lock_2->RequestWakeLock();
   wake_lock_3->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_1->CancelWakeLock();
   wake_lock_2->CancelWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_3->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 }
 
 // WakeLock should update the wake lock status correctly when
 // connection error happens.
 TEST_F(WakeLockTest, OnWakeLockConnectionError) {
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   mojom::WakeLockPtr wake_lock_1;
   mojom::WakeLockPtr wake_lock_2;
@@ -210,25 +339,30 @@
   wake_lock_->AddClient(mojo::MakeRequest(&wake_lock_3));
 
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_1->RequestWakeLock();
   wake_lock_2->RequestWakeLock();
   wake_lock_3->RequestWakeLock();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_1.reset();
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_2.reset();
   wake_lock_3.reset();
   base::RunLoop().RunUntilIdle();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 }
 
 // Test mixed operations.
 TEST_F(WakeLockTest, MixedTest) {
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   mojom::WakeLockPtr wake_lock_1;
   mojom::WakeLockPtr wake_lock_2;
@@ -238,27 +372,162 @@
   wake_lock_->AddClient(mojo::MakeRequest(&wake_lock_3));
 
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   // Execute a series of calls that should result in |wake_lock_1| and
   // |wake_lock_3| having outstanding wake lock requests.
   wake_lock_1->RequestWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
   wake_lock_1->CancelWakeLock();
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
   wake_lock_2->RequestWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
   wake_lock_1->RequestWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
   wake_lock_1->RequestWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
   wake_lock_3->CancelWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
   wake_lock_3->CancelWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
   wake_lock_2->CancelWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
   wake_lock_3->RequestWakeLock();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+
   wake_lock_2.reset();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_1.reset();
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(HasWakeLock());
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
 
   wake_lock_3->CancelWakeLock();
   EXPECT_FALSE(HasWakeLock());
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+}
+
+TEST_F(WakeLockTest, SameWakeLockTypeObserverTest) {
+  // Set up observer for |kPreventAppSuspension| wake lock events.
+  mojom::WakeLockObserverPtr observer;
+  TestWakeLockObserver test_wake_lock_observer;
+  test_wake_lock_observer.AddBinding(mojo::MakeRequest(&observer));
+  wake_lock_provider_->NotifyOnWakeLockDeactivation(
+      mojom::WakeLockType::kPreventAppSuspension, std::move(observer));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  // Observer should be triggered since the wake lock wasn't held.
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+
+  // Make two wake lock requests from the same client, these should be coalesced
+  // into one and result in the first |kPreventAppSuspension| wake lock being
+  // created. This should result in an acquire event.
+  wake_lock_->RequestWakeLock();
+  wake_lock_->RequestWakeLock();
+  wake_lock_.FlushForTesting();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+
+  // Add another client for the same wake lock type and make a request. This
+  // shouldn't affect wake up counts as a |kPreventAppSuspension| wake lock is
+  // already held.
+  mojom::WakeLockPtr wake_lock2;
+  wake_lock_provider_->GetWakeLockWithoutContext(
+      device::mojom::WakeLockType::kPreventAppSuspension,
+      device::mojom::WakeLockReason::kOther, "WakeLockTest",
+      mojo::MakeRequest(&wake_lock2));
+  wake_lock2->RequestWakeLock();
+  wake_lock2.FlushForTesting();
+  EXPECT_EQ(2, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+
+  // Cancel request should result in no change in counts as two clients
+  // requested wake locks.
+  wake_lock_->CancelWakeLock();
+  wake_lock_.FlushForTesting();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+
+  // Resetting second client should result in it's wake lock be released and no
+  // |kPreventAppSuspension| wake locks being present in the system i.e. on a
+  // release event. For reset events |FlushForTesting| can't be used.
+  base::RunLoop run_loop4;
+  wake_lock2.reset();
+  run_loop4.RunUntilIdle();
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(2, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+
+  // Resetting first wake lock client should result in no change in event count.
+  // For reset events |FlushForTesting| can't be used.
+  base::RunLoop run_loop5;
+  wake_lock_.reset();
+  run_loop5.RunUntilIdle();
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(2, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+}
+
+TEST_F(WakeLockTest, DifferentWakeLockTypesObserverTest) {
+  // Setup observer that will observe events for two different types of wake
+  // locks. No wake locks should be active and deactivation counts should be
+  // received for each type of observed wake lock.
+  mojom::WakeLockObserverPtr observer;
+  TestWakeLockObserver test_wake_lock_observer;
+  test_wake_lock_observer.AddBinding(mojo::MakeRequest(&observer));
+  wake_lock_provider_->NotifyOnWakeLockDeactivation(
+      mojom::WakeLockType::kPreventAppSuspension, std::move(observer));
+  observer.reset();
+  test_wake_lock_observer.AddBinding(mojo::MakeRequest(&observer));
+  wake_lock_provider_->NotifyOnWakeLockDeactivation(
+      mojom::WakeLockType::kPreventDisplaySleep, std::move(observer));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventDisplaySleep));
+
+  // Acquire two different type of wake locks and check if the observer for each
+  // gets an acquire event.
+  mojom::WakeLockPtr wake_lock2;
+  wake_lock_provider_->GetWakeLockWithoutContext(
+      device::mojom::WakeLockType::kPreventDisplaySleep,
+      device::mojom::WakeLockReason::kOther, "WakeLockTest",
+      mojo::MakeRequest(&wake_lock2));
+  wake_lock_->RequestWakeLock();
+  wake_lock2->RequestWakeLock();
+  wake_lock_.FlushForTesting();
+  wake_lock2.FlushForTesting();
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(1, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventDisplaySleep));
+
+  // Release wake locks of both types and check if observers for each got on
+  // release events. For reset events |FlushForTesting| can't be used.
+  base::RunLoop run_loop2;
+  wake_lock_.reset();
+  wake_lock2.reset();
+  run_loop2.RunUntilIdle();
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(0, GetActiveWakeLocks(mojom::WakeLockType::kPreventDisplaySleep));
+  EXPECT_EQ(2, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventAppSuspension));
+  EXPECT_EQ(2, test_wake_lock_observer.GetOnDeactivationCount(
+                   mojom::WakeLockType::kPreventDisplaySleep));
 }
 
 }  // namespace
diff --git a/services/identity/README.md b/services/identity/README.md
index 7a4feaf..0b8dc83 100644
--- a/services/identity/README.md
+++ b/services/identity/README.md
@@ -106,19 +106,6 @@
 been built. Contact blundell@chromium.org with your use case, which can help
 drive the bringup of this interface.
 
-## Obtaining the Information of All Accounts
-
-If you are currently calling AccountTracker::GetAccounts(),
-AccountTrackerService::GetAccounts(), or OAuth2TokenService::GetAccounts(), the
-corresponding interface in the Identity Service is
-IdentityManager::GetAccounts(). Note the semantics of this method carefully (as
-described in its documentation). In particular, this method returns only
-accounts that have a refresh token available, which is not necessarily the
-same behavior as AccountTracker::GetAccounts() or
-AccountTrackerService::GetAccounts() (but *is* the same behavior as
-OAuth2TokenService::GetAccounts()). If your use case is difficult to
-implement with the semantics of this method, contact blundell@chromium.org.
-
 ## Other Needs
 
 If you have any need that is not covered by the above guidance, contact
diff --git a/services/identity/identity_manager_impl.cc b/services/identity/identity_manager_impl.cc
index ae56503..3e8b8dc1 100644
--- a/services/identity/identity_manager_impl.cc
+++ b/services/identity/identity_manager_impl.cc
@@ -128,26 +128,6 @@
   std::move(callback).Run(account_info, account_state);
 }
 
-void IdentityManagerImpl::GetAccounts(GetAccountsCallback callback) {
-  std::vector<mojom::AccountPtr> accounts;
-
-  for (const std::string& account_id : token_service_->GetAccounts()) {
-    AccountInfo account_info = account_tracker_->GetAccountInfo(account_id);
-    AccountState account_state = GetStateOfAccount(account_info);
-
-    mojom::AccountPtr account =
-        mojom::Account::New(account_info, account_state);
-
-    if (account->state.is_primary_account) {
-      accounts.insert(accounts.begin(), std::move(account));
-    } else {
-      accounts.push_back(std::move(account));
-    }
-  }
-
-  std::move(callback).Run(std::move(accounts));
-}
-
 void IdentityManagerImpl::GetAccessToken(const std::string& account_id,
                                          const ScopeSet& scopes,
                                          const std::string& consumer_id,
diff --git a/services/identity/identity_manager_impl.h b/services/identity/identity_manager_impl.h
index aac08b58..f7d3bbed 100644
--- a/services/identity/identity_manager_impl.h
+++ b/services/identity/identity_manager_impl.h
@@ -75,7 +75,6 @@
   void GetAccountInfoFromGaiaId(
       const std::string& gaia_id,
       GetAccountInfoFromGaiaIdCallback callback) override;
-  void GetAccounts(GetAccountsCallback callback) override;
   void GetAccessToken(const std::string& account_id,
                       const ScopeSet& scopes,
                       const std::string& consumer_id,
diff --git a/services/identity/identity_manager_impl_unittest.cc b/services/identity/identity_manager_impl_unittest.cc
index d0bb2b52..d9ed6aeb 100644
--- a/services/identity/identity_manager_impl_unittest.cc
+++ b/services/identity/identity_manager_impl_unittest.cc
@@ -26,15 +26,13 @@
 namespace {
 
 #if defined(OS_CHROMEOS)
-using SigninManagerForTest = FakeSigninManagerBase;
+using SigninManagerForTest = SigninManagerBase;
 #else
 using SigninManagerForTest = FakeSigninManager;
 #endif  // OS_CHROMEOS
 
 const char kTestGaiaId[] = "dummyId";
 const char kTestEmail[] = "me@dummy.com";
-const char kSecondaryTestGaiaId[] = "secondaryDummyId";
-const char kSecondaryTestEmail[] = "metoo@dummy.com";
 const char kTestRefreshToken[] = "dummy-refresh-token";
 const char kTestAccessToken[] = "access_token";
 
@@ -596,108 +594,6 @@
   EXPECT_FALSE(account_state_from_gaia_id_.is_primary_account);
 }
 
-// Check the implementation of GetAccounts() when there are no accounts.
-TEST_F(IdentityManagerImplTest, GetAccountsNoAccount) {
-  token_service()->LoadCredentials("dummy");
-
-  std::vector<mojom::AccountPtr> accounts;
-
-  // Check that an empty list is returned when there are no accounts.
-  base::RunLoop run_loop;
-  GetIdentityManagerImpl()->GetAccounts(base::BindRepeating(
-      &IdentityManagerImplTest::OnGotAccounts, base::Unretained(this),
-      run_loop.QuitClosure(), &accounts));
-  run_loop.Run();
-  EXPECT_EQ(0u, accounts.size());
-}
-
-// Check the implementation of GetAccounts() when there is a single account,
-// which is the primary account.
-TEST_F(IdentityManagerImplTest, GetAccountsPrimaryAccount) {
-  token_service()->LoadCredentials("dummy");
-  std::vector<mojom::AccountPtr> accounts;
-
-  // Add a primary account.
-  signin_manager()->SetAuthenticatedAccountInfo(kTestGaiaId, kTestEmail);
-  token_service()->UpdateCredentials(
-      signin_manager()->GetAuthenticatedAccountId(), kTestRefreshToken);
-
-  base::RunLoop run_loop;
-  GetIdentityManagerImpl()->GetAccounts(base::BindRepeating(
-      &IdentityManagerImplTest::OnGotAccounts, base::Unretained(this),
-      run_loop.QuitClosure(), &accounts));
-  run_loop.Run();
-
-  // Verify that |accounts| contains the primary account.
-  EXPECT_EQ(1u, accounts.size());
-  const mojom::AccountPtr& primary_account = accounts[0];
-  EXPECT_EQ(signin_manager()->GetAuthenticatedAccountId(),
-            primary_account->info.account_id);
-  EXPECT_EQ(kTestGaiaId, primary_account->info.gaia);
-  EXPECT_EQ(kTestEmail, primary_account->info.email);
-  EXPECT_TRUE(primary_account->state.has_refresh_token);
-  EXPECT_TRUE(primary_account->state.is_primary_account);
-}
-
-// Check the implementation of GetAccounts() when there are multiple accounts,
-// in particular that ProfileOAuth2TokenService is the source of truth for
-// whether an account is present.
-TEST_F(IdentityManagerImplTest, GetAccountsMultipleAccounts) {
-  token_service()->LoadCredentials("dummy");
-  std::vector<mojom::AccountPtr> accounts;
-
-  // Add a primary account.
-  signin_manager()->SetAuthenticatedAccountInfo(kTestGaiaId, kTestEmail);
-  token_service()->UpdateCredentials(
-      signin_manager()->GetAuthenticatedAccountId(), kTestRefreshToken);
-
-  // Add a secondary account with AccountTrackerService, but don't yet make
-  // ProfileOAuth2TokenService aware of it.
-  std::string secondary_account_id = account_tracker()->SeedAccountInfo(
-      kSecondaryTestGaiaId, kSecondaryTestEmail);
-  base::RunLoop run_loop;
-  GetIdentityManagerImpl()->GetAccounts(base::BindRepeating(
-      &IdentityManagerImplTest::OnGotAccounts, base::Unretained(this),
-      run_loop.QuitClosure(), &accounts));
-  run_loop.Run();
-
-  // Verify that |accounts| contains only the primary account at this time.
-  EXPECT_EQ(1u, accounts.size());
-  const mojom::AccountPtr& primary_account = accounts[0];
-  EXPECT_EQ(signin_manager()->GetAuthenticatedAccountId(),
-            primary_account->info.account_id);
-  EXPECT_EQ(kTestGaiaId, primary_account->info.gaia);
-  EXPECT_EQ(kTestEmail, primary_account->info.email);
-  EXPECT_TRUE(primary_account->state.has_refresh_token);
-  EXPECT_TRUE(primary_account->state.is_primary_account);
-
-  // Make PO2TS aware of the secondary account.
-  token_service()->UpdateCredentials(secondary_account_id, kTestRefreshToken);
-  base::RunLoop run_loop2;
-  GetIdentityManagerImpl()->GetAccounts(base::BindRepeating(
-      &IdentityManagerImplTest::OnGotAccounts, base::Unretained(this),
-      run_loop2.QuitClosure(), &accounts));
-  run_loop2.Run();
-
-  // Verify that |accounts| contains both accounts, with the primary account
-  // being first and having the same information as previously.
-  EXPECT_EQ(2u, accounts.size());
-  const mojom::AccountPtr& primary_account_redux = accounts[0];
-  EXPECT_EQ(signin_manager()->GetAuthenticatedAccountId(),
-            primary_account_redux->info.account_id);
-  EXPECT_EQ(kTestGaiaId, primary_account_redux->info.gaia);
-  EXPECT_EQ(kTestEmail, primary_account_redux->info.email);
-  EXPECT_TRUE(primary_account_redux->state.has_refresh_token);
-  EXPECT_TRUE(primary_account_redux->state.is_primary_account);
-
-  const mojom::AccountPtr& secondary_account = accounts[1];
-  EXPECT_EQ(secondary_account_id, secondary_account->info.account_id);
-  EXPECT_EQ(kSecondaryTestGaiaId, secondary_account->info.gaia);
-  EXPECT_EQ(kSecondaryTestEmail, secondary_account->info.email);
-  EXPECT_TRUE(secondary_account->state.has_refresh_token);
-  EXPECT_FALSE(secondary_account->state.is_primary_account);
-}
-
 // Check that the expected error is received if requesting an access token when
 // not signed in.
 TEST_F(IdentityManagerImplTest, GetAccessTokenNotSignedIn) {
diff --git a/services/identity/public/cpp/identity_manager_unittest.cc b/services/identity/public/cpp/identity_manager_unittest.cc
index f3f65d0a..182ed37 100644
--- a/services/identity/public/cpp/identity_manager_unittest.cc
+++ b/services/identity/public/cpp/identity_manager_unittest.cc
@@ -44,7 +44,7 @@
 namespace {
 
 #if defined(OS_CHROMEOS)
-using SigninManagerForTest = FakeSigninManagerBase;
+using SigninManagerForTest = SigninManagerBase;
 #else
 using SigninManagerForTest = FakeSigninManager;
 #endif  // OS_CHROMEOS
@@ -390,7 +390,7 @@
 #if defined(OS_CHROMEOS)
     DCHECK_EQ(account_consistency, signin::AccountConsistencyMethod::kDisabled)
         << "AccountConsistency is not used by SigninManagerBase";
-    signin_manager_ = std::make_unique<FakeSigninManagerBase>(
+    signin_manager_ = std::make_unique<SigninManagerBase>(
         &signin_client_, &token_service_, &account_tracker_);
 #else
     signin_manager_ = std::make_unique<FakeSigninManager>(
diff --git a/services/identity/public/cpp/identity_test_environment.h b/services/identity/public/cpp/identity_test_environment.h
index eaa7e5c..35ed37d1 100644
--- a/services/identity/public/cpp/identity_test_environment.h
+++ b/services/identity/public/cpp/identity_test_environment.h
@@ -13,7 +13,6 @@
 class AccountTrackerService;
 class FakeAccountFetcherService;
 class FakeProfileOAuth2TokenService;
-class FakeSigninManagerBase;
 class FakeSigninManager;
 class GaiaCookieManagerService;
 class IdentityTestEnvironmentChromeBrowserStateAdaptor;
@@ -33,7 +32,7 @@
 
 namespace {
 #if defined(OS_CHROMEOS)
-using SigninManagerForTest = FakeSigninManagerBase;
+using SigninManagerForTest = SigninManagerBase;
 #else
 using SigninManagerForTest = FakeSigninManager;
 #endif  // OS_CHROMEOS
diff --git a/services/identity/public/mojom/identity_manager.mojom b/services/identity/public/mojom/identity_manager.mojom
index 789d8e6..bfc8ccf 100644
--- a/services/identity/public/mojom/identity_manager.mojom
+++ b/services/identity/public/mojom/identity_manager.mojom
@@ -36,10 +36,6 @@
   GetAccountInfoFromGaiaId(string gaia_id) => (AccountInfo? account_info,
                                                AccountState account_state);
 
-  // Returns a list of all known accounts. The primary account (if any exists)
-  // will be first, after which the order is undefined.
-  GetAccounts() => (array<Account> accounts);
-
   // Returns an access token with the requested scopes for the given
   // |account_id|, or null if it is not possible to obtain such a token (e.g.,
   // because the user is not signed in with that account). |expiration_time|
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc
index 6ea7305..5693e1c4 100644
--- a/services/network/cors/preflight_controller.cc
+++ b/services/network/cors/preflight_controller.cc
@@ -84,6 +84,7 @@
   preflight_request->load_flags |= net::LOAD_DO_NOT_SAVE_COOKIES;
   preflight_request->load_flags |= net::LOAD_DO_NOT_SEND_COOKIES;
   preflight_request->load_flags |= net::LOAD_DO_NOT_SEND_AUTH_DATA;
+  preflight_request->fetch_window_id = request.fetch_window_id;
 
   preflight_request->headers.SetHeader(
       header_names::kAccessControlRequestMethod, request.method);
diff --git a/services/network/cors/preflight_controller_unittest.cc b/services/network/cors/preflight_controller_unittest.cc
index 65c21c67..d6fcdfc 100644
--- a/services/network/cors/preflight_controller_unittest.cc
+++ b/services/network/cors/preflight_controller_unittest.cc
@@ -177,6 +177,21 @@
   EXPECT_EQ(header, "null");
 }
 
+TEST(PreflightControllerCreatePreflightRequestTest, FetchWindowId) {
+  ResourceRequest request;
+  request.fetch_request_mode = mojom::FetchRequestMode::kCors;
+  request.fetch_credentials_mode = mojom::FetchCredentialsMode::kOmit;
+  request.request_initiator = url::Origin();
+  request.headers.SetHeader(net::HttpRequestHeaders::kContentType,
+                            "application/octet-stream");
+  request.fetch_window_id = base::UnguessableToken::Create();
+
+  std::unique_ptr<ResourceRequest> preflight =
+      PreflightController::CreatePreflightRequestForTesting(request);
+
+  EXPECT_EQ(request.fetch_window_id, preflight->fetch_window_id);
+}
+
 class PreflightControllerTest : public testing::Test {
  public:
   PreflightControllerTest()
diff --git a/services/network/public/cpp/network_ipc_param_traits.h b/services/network/public/cpp/network_ipc_param_traits.h
index 059d735..7089b8b6 100644
--- a/services/network/public/cpp/network_ipc_param_traits.h
+++ b/services/network/public/cpp/network_ipc_param_traits.h
@@ -136,6 +136,7 @@
   IPC_STRUCT_TRAITS_MEMBER(cors_error_status)
   IPC_STRUCT_TRAITS_MEMBER(ssl_info)
   IPC_STRUCT_TRAITS_MEMBER(should_report_corb_blocking)
+  IPC_STRUCT_TRAITS_MEMBER(proxy_server)
 IPC_STRUCT_TRAITS_END()
 
 IPC_STRUCT_TRAITS_BEGIN(network::ResourceResponseInfo)
diff --git a/services/network/public/cpp/url_loader_completion_status.cc b/services/network/public/cpp/url_loader_completion_status.cc
index 7cfe6e1af..f6fb2d8 100644
--- a/services/network/public/cpp/url_loader_completion_status.cc
+++ b/services/network/public/cpp/url_loader_completion_status.cc
@@ -34,7 +34,8 @@
          encoded_body_length == rhs.encoded_body_length &&
          decoded_body_length == rhs.decoded_body_length &&
          cors_error_status == rhs.cors_error_status &&
-         should_report_corb_blocking == rhs.should_report_corb_blocking;
+         should_report_corb_blocking == rhs.should_report_corb_blocking &&
+         proxy_server == rhs.proxy_server;
 }
 
 }  // namespace network
diff --git a/services/network/public/cpp/url_loader_completion_status.h b/services/network/public/cpp/url_loader_completion_status.h
index 6ca5b23..cbc81c8 100644
--- a/services/network/public/cpp/url_loader_completion_status.h
+++ b/services/network/public/cpp/url_loader_completion_status.h
@@ -70,6 +70,9 @@
   // Set when response blocked by CORB needs to be reported to the DevTools
   // console.
   bool should_report_corb_blocking = false;
+
+  // The proxy server used for this request, if any.
+  net::ProxyServer proxy_server;
 };
 
 }  // namespace network
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
index 06909a04..aac0f313 100644
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -1109,6 +1109,7 @@
     status.encoded_data_length = url_request_->GetTotalReceivedBytes();
     status.encoded_body_length = url_request_->GetRawBodyBytes();
     status.decoded_body_length = total_written_bytes_;
+    status.proxy_server = url_request_->proxy_server();
 
     if ((options_ & mojom::kURLLoadOptionSendSSLInfoForCertificateError) &&
         net::IsCertStatusError(url_request_->ssl_info().cert_status) &&
diff --git a/services/service_manager/sandbox/linux/sandbox_linux.h b/services/service_manager/sandbox/linux/sandbox_linux.h
index 2181797..5b6501a 100644
--- a/services/service_manager/sandbox/linux/sandbox_linux.h
+++ b/services/service_manager/sandbox/linux/sandbox_linux.h
@@ -198,7 +198,7 @@
 #if BUILDFLAG(USING_SANITIZER)
   __sanitizer_sandbox_arguments* sanitizer_args() const {
     return sanitizer_args_.get();
-  };
+  }
 #endif
 
   // A BrokerProcess is a helper that is started before the sandbox is engaged,
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
index d633d77..a455e64 100644
--- a/testing/buildbot/chromium.gpu.fyi.json
+++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -1024,31 +1024,6 @@
           "idempotent": false,
           "shards": 2
         }
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "name": "webgl_conformance_vulkan_passthrough_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "gpu": "10de:1cb3-24.21.14.1195",
-              "os": "Windows-10",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "idempotent": false,
-          "shards": 2
-        }
       }
     ]
   },
@@ -17899,40 +17874,6 @@
           ],
           "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
         }
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "name": "webgl_conformance_vulkan_passthrough_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "gpu": "10de:1cb3-24.21.14.1195",
-              "os": "Windows-10",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "idempotent": false,
-          "shards": 2
-        },
-        "trigger_script": {
-          "args": [
-            "--multiple-trigger-configs",
-            "[{\"gpu\": \"10de:1cb3-24.21.14.1195\", \"os\": \"Windows-10\", \"pool\": \"Chrome-GPU\"}]",
-            "--multiple-dimension-script-verbose",
-            "True"
-          ],
-          "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
-        }
       }
     ]
   },
@@ -18596,31 +18537,6 @@
           "idempotent": false,
           "shards": 2
         }
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=debug",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "name": "webgl_conformance_vulkan_passthrough_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "gpu": "10de:1cb3-24.21.14.1195",
-              "os": "Windows-10",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "idempotent": false,
-          "shards": 2
-        }
       }
     ]
   },
@@ -21512,40 +21428,6 @@
           ],
           "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
         }
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "name": "webgl_conformance_vulkan_passthrough_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "gpu": "10de:1cb3-24.21.14.1195",
-              "os": "Windows-10",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "idempotent": false,
-          "shards": 2
-        },
-        "trigger_script": {
-          "args": [
-            "--multiple-trigger-configs",
-            "[{\"gpu\": \"10de:1cb3-24.21.14.1195\", \"os\": \"Windows-10\", \"pool\": \"Chrome-GPU\"}]",
-            "--multiple-dimension-script-verbose",
-            "True"
-          ],
-          "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
-        }
       }
     ]
   },
@@ -24317,41 +24199,6 @@
           ],
           "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
         }
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "name": "webgl_conformance_vulkan_passthrough_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "gpu": "10de:1cb3-24.21.14.1195",
-              "os": "Windows-2008ServerR2-SP1",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "expiration": 21600,
-          "idempotent": false,
-          "shards": 2
-        },
-        "trigger_script": {
-          "args": [
-            "--multiple-trigger-configs",
-            "[{\"gpu\": \"10de:1cb3-24.21.14.1195\", \"os\": \"Windows-2008ServerR2-SP1\", \"pool\": \"Chrome-GPU\"}]",
-            "--multiple-dimension-script-verbose",
-            "True"
-          ],
-          "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
-        }
       }
     ]
   },
@@ -25386,41 +25233,6 @@
           ],
           "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
         }
-      },
-      {
-        "args": [
-          "webgl_conformance",
-          "--show-stdout",
-          "--browser=release_x64",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough"
-        ],
-        "isolate_name": "telemetry_gpu_integration_test",
-        "name": "webgl_conformance_vulkan_passthrough_tests",
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "gpu": "10de:1cb3-24.21.14.1195",
-              "os": "Windows-2008ServerR2-SP1",
-              "pool": "Chrome-GPU"
-            }
-          ],
-          "expiration": 21600,
-          "idempotent": false,
-          "shards": 2
-        },
-        "trigger_script": {
-          "args": [
-            "--multiple-trigger-configs",
-            "[{\"gpu\": \"10de:1cb3-24.21.14.1195\", \"os\": \"Windows-2008ServerR2-SP1\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-23.21.14.1195\", \"os\": \"Windows-2008ServerR2-SP1\", \"pool\": \"Chrome-GPU\"}]",
-            "--multiple-dimension-script-verbose",
-            "True"
-          ],
-          "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py"
-        }
       }
     ]
   },
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index b834fa59..2cb77c3 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1358,6 +1358,13 @@
   'webgl_conformance_vulkan_passthrough_tests': {
     'remove_from': [
       'Win7 FYI Debug (AMD)',
+      # TODO(crbug.com/935060): diagnose and re-enable.
+      'ANGLE GPU Win10 Release (NVIDIA)',
+      'Optional Win10 Release (NVIDIA)',
+      'Win10 FYI Debug (NVIDIA)',
+      'Win10 FYI Release (NVIDIA)',
+      'Win7 FYI Release (NVIDIA)',
+      'Win7 FYI x64 Release (NVIDIA)',
     ],
   },
   'webkit_layout_tests': {
diff --git a/third_party/blink/public/web/modules/service_worker/web_service_worker_context_client.h b/third_party/blink/public/web/modules/service_worker/web_service_worker_context_client.h
index 5e060fd..bb3a035 100644
--- a/third_party/blink/public/web/modules/service_worker/web_service_worker_context_client.h
+++ b/third_party/blink/public/web/modules/service_worker/web_service_worker_context_client.h
@@ -62,17 +62,18 @@
   virtual ~WebServiceWorkerContextClient() = default;
 
   // ServiceWorker has prepared everything for script loading and is now ready
-  // for DevTools inspection.
-  virtual void WorkerReadyForInspection() {}
+  // for DevTools inspection. Called on the main thread.
+  virtual void WorkerReadyForInspectionOnMainThread() {}
 
   // Starting the worker failed. This could happen when loading the worker
   // script failed, or the worker was asked to terminate before startup
   // completed. Called on the main thread.
-  virtual void WorkerContextFailedToStart() {}
+  virtual void WorkerContextFailedToStartOnMainThread() {}
 
-  // The worker started but it could not execute because loading the
-  // installed classic script failed.
-  virtual void FailedToLoadInstalledClassicScript() {}
+  // The worker started but it could not execute because loading the classic
+  // script failed on the worker thread. This is called only for installed
+  // scripts fetch or off-the-main-thread classic worker script fetch.
+  virtual void FailedToLoadClassicScript() {}
 
   // The worker started but it could not execute because fetching module script
   // failed.
@@ -83,14 +84,13 @@
   //
   // This is called before WorkerContextStarted(). Script evaluation does not
   // start until WillEvaluateScript().
-  virtual void WorkerScriptLoaded() {}
+  virtual void WorkerScriptLoadedOnMainThread() {}
 
-  // The worker script was successfully read from
-  // WebServiceWorkerInstalledScriptsManager. Called on the worker thread.
+  // The worker script was successfully loaded on the worker thread.
   //
   // This is called after WorkerContextStarted(). Script evaluation does not
   // start until WillEvaluateScript().
-  virtual void InstalledWorkerScriptLoaded() {}
+  virtual void WorkerScriptLoadedOnWorkerThread() {}
 
   // Called when a WorkerGlobalScope was created for the worker thread. This
   // also gives a proxy to the embedder to talk to the newly created
@@ -99,9 +99,10 @@
   // willDestroyWorkerContext() is called.
   //
   // For new workers (on-main-thread script fetch), this is called after
-  // WorkerScriptLoaded().
+  // WorkerScriptLoadedOnWorkerThread().
   //
-  // For installed workers, this is called before InstalledWorkerScriptLoaded().
+  // For installed workers, this is called before
+  // WorkerScriptLoadedOnMainThread().
   //
   // Script evaluation does not start until WillEvaluateScript().
   virtual void WorkerContextStarted(WebServiceWorkerContextProxy*) {}
@@ -272,12 +273,13 @@
 
   // Called on the main thread.
   virtual std::unique_ptr<WebServiceWorkerNetworkProvider>
-  CreateServiceWorkerNetworkProvider() = 0;
+  CreateServiceWorkerNetworkProviderOnMainThread() = 0;
 
   // Creates a WebWorkerFetchContext for a service worker. This is called on the
   // main thread.
   virtual scoped_refptr<blink::WebWorkerFetchContext>
-  CreateServiceWorkerFetchContext(WebServiceWorkerNetworkProvider*) {
+  CreateServiceWorkerFetchContextOnMainThread(
+      WebServiceWorkerNetworkProvider*) {
     return nullptr;
   }
 
diff --git a/third_party/blink/renderer/bindings/core/v8/binding_security.cc b/third_party/blink/renderer/bindings/core/v8/binding_security.cc
index 85c2073..da008cc1 100644
--- a/third_party/blink/renderer/bindings/core/v8/binding_security.cc
+++ b/third_party/blink/renderer/bindings/core/v8/binding_security.cc
@@ -98,12 +98,12 @@
   // possible for a remote frame and local frame to have the same security
   // origin, depending on the model being used to allocate Frames between
   // processes. See https://crbug.com/601629.
-  if (!(accessing_window && target_window && target_window->IsLocalDOMWindow()))
+  const auto* local_target_window = DynamicTo<LocalDOMWindow>(target_window);
+  if (!(accessing_window && local_target_window))
     return false;
 
   const SecurityOrigin* accessing_origin =
       accessing_window->document()->GetSecurityOrigin();
-  const LocalDOMWindow* local_target_window = ToLocalDOMWindow(target_window);
 
   SecurityOrigin::AccessResultDomainDetail detail;
   bool can_access = accessing_origin->CanAccess(
diff --git a/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc b/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc
index d587884..4d8db7bb 100644
--- a/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc
+++ b/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc
@@ -159,7 +159,7 @@
     if (window_wrapper.IsEmpty())
       return;
     DOMWindow* window = V8Window::ToImpl(window_wrapper);
-    document = window ? ToLocalDOMWindow(window)->document() : nullptr;
+    document = window ? To<LocalDOMWindow>(window)->document() : nullptr;
   }
   if (!document || !document->GetFrame())
     return;
diff --git a/third_party/blink/renderer/bindings/core/v8/custom/v8_window_custom.cc b/third_party/blink/renderer/bindings/core/v8/custom/v8_window_custom.cc
index 23eab2b..04566a0 100644
--- a/third_party/blink/renderer/bindings/core/v8/custom/v8_window_custom.cc
+++ b/third_party/blink/renderer/bindings/core/v8/custom/v8_window_custom.cc
@@ -102,7 +102,7 @@
 
 void V8Window::EventAttributeGetterCustom(
     const v8::FunctionCallbackInfo<v8::Value>& info) {
-  LocalDOMWindow* impl = ToLocalDOMWindow(V8Window::ToImpl(info.Holder()));
+  LocalDOMWindow* impl = To<LocalDOMWindow>(V8Window::ToImpl(info.Holder()));
   v8::Isolate* isolate = info.GetIsolate();
   ExceptionState exception_state(isolate, ExceptionState::kGetterContext,
                                  "Window", "event");
@@ -138,7 +138,7 @@
 
 void V8Window::FrameElementAttributeGetterCustom(
     const v8::FunctionCallbackInfo<v8::Value>& info) {
-  LocalDOMWindow* impl = ToLocalDOMWindow(V8Window::ToImpl(info.Holder()));
+  LocalDOMWindow* impl = To<LocalDOMWindow>(V8Window::ToImpl(info.Holder()));
   Element* frameElement = impl->frameElement();
 
   if (!BindingSecurity::ShouldAllowAccessTo(
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.cc b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.cc
index caff64e..2eec793 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.cc
@@ -630,7 +630,7 @@
 LocalDOMWindow* ToLocalDOMWindow(v8::Local<v8::Context> context) {
   if (context.IsEmpty())
     return nullptr;
-  return ToLocalDOMWindow(
+  return To<LocalDOMWindow>(
       ToDOMWindow(context->GetIsolate(), context->Global()));
 }
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.cc b/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.cc
index 7aafaad7..28e9efc8 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.cc
@@ -23,7 +23,7 @@
   v8::Local<v8::Object> holder = info.Holder();
   DOMWindow* impl = V8Window::ToImpl(holder);
   PagePopupController* cpp_value = nullptr;
-  if (LocalFrame* frame = ToLocalDOMWindow(impl)->GetFrame())
+  if (LocalFrame* frame = To<LocalDOMWindow>(impl)->GetFrame())
     cpp_value = PagePopupSupplement::From(*frame).GetPagePopupController();
   V8SetReturnValue(info, ToV8(cpp_value, holder, info.GetIsolate()));
 }
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
index eadfc862..4c4fe34 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
@@ -444,7 +444,6 @@
   DCHECK(!frame || BindingSecurity::ShouldAllowAccessToFrame(
                        ToLocalDOMWindow(function->CreationContext()), frame,
                        BindingSecurity::ErrorReportOption::kDoNotReport));
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
   v8::Isolate::SafeForTerminationScope safe_for_termination(isolate);
   v8::MicrotasksScope microtasks_scope(isolate,
                                        v8::MicrotasksScope::kRunMicrotasks);
@@ -474,7 +473,6 @@
   RuntimeCallStatsScopedTracer rcs_scoped_tracer(isolate);
   RUNTIME_CALL_TIMER_SCOPE(isolate, RuntimeCallStats::CounterId::kV8);
 
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
   v8::Isolate::SafeForTerminationScope safe_for_termination(isolate);
   v8::MicrotasksScope microtasks_scope(
       isolate, v8::MicrotasksScope::kDoNotRunMicrotasks);
diff --git a/third_party/blink/renderer/bindings/templates/attributes.cc.tmpl b/third_party/blink/renderer/bindings/templates/attributes.cc.tmpl
index 22578f37..2b30deb 100644
--- a/third_party/blink/renderer/bindings/templates/attributes.cc.tmpl
+++ b/third_party/blink/renderer/bindings/templates/attributes.cc.tmpl
@@ -66,7 +66,7 @@
   // Same-origin attribute getters are never exposed via the cross-origin
   // interceptors. Since same-origin access requires a LocalDOMWindow, it is
   // safe to downcast here.
-  LocalDOMWindow* impl = ToLocalDOMWindow({{v8_class}}::ToImpl(holder));
+  LocalDOMWindow* impl = To<LocalDOMWindow>({{v8_class}}::ToImpl(holder));
   {% endif %}{# attribute.is_check_security_for_receiver #}
   {% else %}
   {{cpp_class}}* impl = {{v8_class}}::ToImpl(holder);
@@ -99,7 +99,7 @@
     return;
   }
   {% if local_dom_window_only %}
-  LocalDOMWindow* impl = ToLocalDOMWindow(unchecked_impl);
+  LocalDOMWindow* impl = To<LocalDOMWindow>(unchecked_impl);
   {% endif %}{# local_dom_window_only #}
   {% endif %}
 
@@ -345,7 +345,7 @@
   // Same-origin attributes setters are never exposed via the cross-origin
   // interceptors. Since same-origin access requires a LocalDOMWindow, it is
   // safe to downcast here.
-  LocalDOMWindow* impl = ToLocalDOMWindow({{v8_class}}::ToImpl(holder));
+  LocalDOMWindow* impl = To<LocalDOMWindow>({{v8_class}}::ToImpl(holder));
   {% endif %}{# attribute.is_check_security_for_receiver #}
   {% else %}
   {{cpp_class}}* impl = {{v8_class}}::ToImpl(holder);
@@ -364,7 +364,7 @@
     return;
   }
   {% if local_dom_window_only %}
-  LocalDOMWindow* impl = ToLocalDOMWindow(unchecked_impl);
+  LocalDOMWindow* impl = To<LocalDOMWindow>(unchecked_impl);
   {% endif %}{# local_dom_window_only #}
   {% endif %}
 
diff --git a/third_party/blink/renderer/bindings/templates/methods.cc.tmpl b/third_party/blink/renderer/bindings/templates/methods.cc.tmpl
index f2250dc..2da8418 100644
--- a/third_party/blink/renderer/bindings/templates/methods.cc.tmpl
+++ b/third_party/blink/renderer/bindings/templates/methods.cc.tmpl
@@ -44,7 +44,7 @@
   // Same-origin methods are never exposed via the cross-origin interceptors.
   // Since same-origin access requires a LocalDOMWindow, it is safe to downcast
   // here.
-  LocalDOMWindow* impl = ToLocalDOMWindow({{v8_class}}::ToImpl(info.Holder()));
+  LocalDOMWindow* impl = To<LocalDOMWindow>({{v8_class}}::ToImpl(info.Holder()));
   {% else %}
   {{cpp_class}}* impl = {{v8_class}}::ToImpl(info.Holder());
   {% endif %}{# interface_name == 'Window' and not method.is_cross_origin #}
diff --git a/third_party/blink/renderer/core/DEPS b/third_party/blink/renderer/core/DEPS
index c267a7a..a31417f 100644
--- a/third_party/blink/renderer/core/DEPS
+++ b/third_party/blink/renderer/core/DEPS
@@ -18,10 +18,13 @@
     "+cc/input/browser_controls_state.h",
     "+cc/input/event_listener_properties.h",
     "+cc/input/layer_selection_bound.h",
+    "+cc/input/main_thread_scrolling_reason.h",
     "+cc/input/overscroll_behavior.h",
     "+cc/input/scrollbar.h",
     "+cc/input/scroll_snap_data.h",
     "+cc/input/scroll_state.h",
+    "+cc/input/snap_fling_controller.h",
+    "+cc/input/snap_selection_strategy.h",
     "+cc/layers/content_layer_client.h",
     "+cc/layers/layer.h",
     "+cc/layers/layer_position_constraint.h",
diff --git a/third_party/blink/renderer/core/aom/computed_accessible_node.cc b/third_party/blink/renderer/core/aom/computed_accessible_node.cc
index a2ece93..983e9620 100644
--- a/third_party/blink/renderer/core/aom/computed_accessible_node.cc
+++ b/third_party/blink/renderer/core/aom/computed_accessible_node.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/aom/computed_accessible_node.h"
 
 #include <stdint.h>
+#include <memory>
 #include <utility>
 
 #include "third_party/blink/public/platform/platform.h"
@@ -101,7 +102,7 @@
   AXID ax_id = cache.GetAXID(element_);
 
   ComputedAccessibleNode* accessible_node =
-      local_frame->GetOrCreateComputedAccessibleNode(ax_id, tree);
+      document.GetOrCreateComputedAccessibleNode(ax_id, tree);
   resolver_->Resolve(accessible_node);
 }
 
@@ -109,17 +110,17 @@
 
 ComputedAccessibleNode* ComputedAccessibleNode::Create(AXID ax_id,
                                                        WebComputedAXTree* tree,
-                                                       LocalFrame* frame) {
-  return MakeGarbageCollected<ComputedAccessibleNode>(ax_id, tree, frame);
+                                                       Document* document) {
+  return MakeGarbageCollected<ComputedAccessibleNode>(ax_id, tree, document);
 }
 
 ComputedAccessibleNode::ComputedAccessibleNode(AXID ax_id,
                                                WebComputedAXTree* tree,
-                                               LocalFrame* frame)
+                                               Document* document)
     : ax_id_(ax_id),
       tree_(tree),
-      frame_(frame),
-      ax_context_(std::make_unique<AXContext>(*frame->GetDocument())) {}
+      document_(document),
+      ax_context_(std::make_unique<AXContext>(*document)) {}
 
 ComputedAccessibleNode::~ComputedAccessibleNode() {}
 
@@ -129,7 +130,7 @@
 
 ScriptPromise ComputedAccessibleNode::ensureUpToDate(
     ScriptState* script_state) {
-  AXObjectCache* cache = frame_->GetDocument()->ExistingAXObjectCache();
+  AXObjectCache* cache = document_->ExistingAXObjectCache();
   DCHECK(cache);
   Element* element = cache->GetElementFromAXID(ax_id_);
   ComputedAccessibleNodePromiseResolver* resolver =
@@ -271,7 +272,7 @@
   if (!tree_->GetParentIdForAXNode(ax_id_, &parent_ax_id)) {
     return nullptr;
   }
-  return frame_->GetOrCreateComputedAccessibleNode(parent_ax_id, tree_);
+  return document_->GetOrCreateComputedAccessibleNode(parent_ax_id, tree_);
 }
 
 ComputedAccessibleNode* ComputedAccessibleNode::firstChild() const {
@@ -279,7 +280,7 @@
   if (!tree_->GetFirstChildIdForAXNode(ax_id_, &child_ax_id)) {
     return nullptr;
   }
-  return frame_->GetOrCreateComputedAccessibleNode(child_ax_id, tree_);
+  return document_->GetOrCreateComputedAccessibleNode(child_ax_id, tree_);
 }
 
 ComputedAccessibleNode* ComputedAccessibleNode::lastChild() const {
@@ -287,7 +288,7 @@
   if (!tree_->GetLastChildIdForAXNode(ax_id_, &child_ax_id)) {
     return nullptr;
   }
-  return frame_->GetOrCreateComputedAccessibleNode(child_ax_id, tree_);
+  return document_->GetOrCreateComputedAccessibleNode(child_ax_id, tree_);
 }
 
 ComputedAccessibleNode* ComputedAccessibleNode::previousSibling() const {
@@ -295,7 +296,7 @@
   if (!tree_->GetPreviousSiblingIdForAXNode(ax_id_, &sibling_ax_id)) {
     return nullptr;
   }
-  return frame_->GetOrCreateComputedAccessibleNode(sibling_ax_id, tree_);
+  return document_->GetOrCreateComputedAccessibleNode(sibling_ax_id, tree_);
 }
 
 ComputedAccessibleNode* ComputedAccessibleNode::nextSibling() const {
@@ -303,7 +304,7 @@
   if (!tree_->GetNextSiblingIdForAXNode(ax_id_, &sibling_ax_id)) {
     return nullptr;
   }
-  return frame_->GetOrCreateComputedAccessibleNode(sibling_ax_id, tree_);
+  return document_->GetOrCreateComputedAccessibleNode(sibling_ax_id, tree_);
 }
 
 bool ComputedAccessibleNode::GetBoolAttribute(WebAOMBoolAttribute attr,
@@ -346,7 +347,7 @@
 }
 
 void ComputedAccessibleNode::Trace(Visitor* visitor) {
-  visitor->Trace(frame_);
+  visitor->Trace(document_);
   ScriptWrappable::Trace(visitor);
 }
 
diff --git a/third_party/blink/renderer/core/aom/computed_accessible_node.h b/third_party/blink/renderer/core/aom/computed_accessible_node.h
index bb415a1f..4b5504f 100644
--- a/third_party/blink/renderer/core/aom/computed_accessible_node.h
+++ b/third_party/blink/renderer/core/aom/computed_accessible_node.h
@@ -18,6 +18,7 @@
 
 namespace blink {
 
+class Document;
 class ScriptState;
 
 class ComputedAccessibleNodePromiseResolver final
@@ -48,9 +49,9 @@
   DEFINE_WRAPPERTYPEINFO();
 
  public:
-  static ComputedAccessibleNode* Create(AXID, WebComputedAXTree*, LocalFrame*);
+  static ComputedAccessibleNode* Create(AXID, WebComputedAXTree*, Document*);
 
-  ComputedAccessibleNode(AXID, WebComputedAXTree*, LocalFrame*);
+  ComputedAccessibleNode(AXID, WebComputedAXTree*, Document*);
   ~ComputedAccessibleNode() override;
 
   void Trace(Visitor*) override;
@@ -108,7 +109,7 @@
 
   // This tree is owned by the RenderFrame.
   blink::WebComputedAXTree* tree_;
-  Member<LocalFrame> frame_;
+  Member<Document> document_;
   std::unique_ptr<AXContext> ax_context_;
 };
 
diff --git a/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc b/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc
index 0a9cfd3..e47f028 100644
--- a/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc
+++ b/third_party/blink/renderer/core/css/parser/css_property_parser_helpers.cc
@@ -200,6 +200,17 @@
     source_range_ = range_;
     return CSSPrimitiveValue::Create(calc_value_.Release());
   }
+
+  CSSPrimitiveValue* ConsumeRoundedInt() {
+    if (!calc_value_)
+      return nullptr;
+    source_range_ = range_;
+    CSSPrimitiveValue::UnitType unit_type =
+        CSSPrimitiveValue::UnitType::kInteger;
+    double rounded_value = floor(calc_value_->DoubleValue() + 0.5);
+    return CSSPrimitiveValue::Create(rounded_value, unit_type);
+  }
+
   CSSPrimitiveValue* ConsumeNumber() {
     if (!calc_value_)
       return nullptr;
@@ -237,12 +248,18 @@
   }
   CalcParser calc_parser(range);
   if (const CSSCalcValue* calculation = calc_parser.Value()) {
-    if (calculation->Category() != kCalcNumber || !calculation->IsInt())
+    if (!RuntimeEnabledFeatures::CSSCalcAsIntEnabled() && !calculation->IsInt())
+      return nullptr;
+    if (calculation->Category() != kCalcNumber)
       return nullptr;
     double value = calculation->DoubleValue();
     if (value < minimum_value)
       return nullptr;
-    return calc_parser.ConsumeNumber();
+    if (!RuntimeEnabledFeatures::CSSCalcAsIntEnabled())
+      return calc_parser.ConsumeNumber();
+    if (calculation->IsInt())
+      return calc_parser.ConsumeNumber();
+    return calc_parser.ConsumeRoundedInt();
   }
   return nullptr;
 }
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index b952a323..cff8cdd 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -67,6 +67,7 @@
 #include "third_party/blink/renderer/core/animation/document_timeline.h"
 #include "third_party/blink/renderer/core/animation/pending_animations.h"
 #include "third_party/blink/renderer/core/animation/worklet_animation_controller.h"
+#include "third_party/blink/renderer/core/aom/computed_accessible_node.h"
 #include "third_party/blink/renderer/core/css/css_font_selector.h"
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/core/css/css_style_declaration.h"
@@ -2876,6 +2877,7 @@
     ax_contexts_.clear();
     ClearAXObjectCache();
   }
+  computed_node_mapping_.clear();
 
   layout_view_ = nullptr;
   ContainerNode::DetachLayoutTree();
@@ -7742,6 +7744,7 @@
   visitor->Trace(lazy_load_image_observer_);
   visitor->Trace(isolated_world_csp_map_);
   visitor->Trace(find_in_page_root_);
+  visitor->Trace(computed_node_mapping_);
   Supplementable<Document>::Trace(visitor);
   TreeScope::Trace(visitor);
   ContainerNode::Trace(visitor);
@@ -8001,6 +8004,17 @@
   }
 }
 
+ComputedAccessibleNode* Document::GetOrCreateComputedAccessibleNode(
+    AXID ax_id,
+    WebComputedAXTree* tree) {
+  if (computed_node_mapping_.find(ax_id) == computed_node_mapping_.end()) {
+    ComputedAccessibleNode* node =
+        ComputedAccessibleNode::Create(ax_id, tree, this);
+    computed_node_mapping_.insert(ax_id, node);
+  }
+  return computed_node_mapping_.at(ax_id);
+}
+
 template class CORE_TEMPLATE_EXPORT Supplement<Document>;
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
index 2576389..813e3aa 100644
--- a/third_party/blink/renderer/core/dom/document.h
+++ b/third_party/blink/renderer/core/dom/document.h
@@ -39,6 +39,7 @@
 #include "third_party/blink/public/mojom/frame/navigation_initiator.mojom-blink.h"
 #include "third_party/blink/public/platform/web_focus_type.h"
 #include "third_party/blink/public/platform/web_insecure_request_policy.h"
+#include "third_party/blink/renderer/core/accessibility/axid.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/container_node.h"
 #include "third_party/blink/renderer/core/dom/create_element_flags.h"
@@ -93,6 +94,7 @@
 class CanvasFontCache;
 class ChromeClient;
 class Comment;
+class ComputedAccessibleNode;
 class ComputedStyle;
 class ConsoleMessage;
 class ContextFeatures;
@@ -187,6 +189,7 @@
 class V8NodeFilter;
 class ViewportData;
 class VisitedLinkState;
+class WebComputedAXTree;
 class WebMouseEvent;
 class WorkletAnimationController;
 struct AnnotatedRegionValue;
@@ -1535,6 +1538,10 @@
   ColorScheme GetColorScheme() const { return color_scheme_; }
   void SetColorScheme(ColorScheme);
 
+  ComputedAccessibleNode* GetOrCreateComputedAccessibleNode(
+      AXID ax_id,
+      WebComputedAXTree* tree);
+
  protected:
   void DidUpdateSecurityOrigin() final;
 
@@ -1760,7 +1767,7 @@
   using AttachedRangeSet = HeapHashSet<WeakMember<Range>>;
   AttachedRangeSet ranges_;
 
-  unsigned short listener_types_;
+  uint16_t listener_types_;
 
   MutationObserverOptions mutation_observer_types_;
 
@@ -2000,6 +2007,10 @@
   // Map from isolated world IDs to their ContentSecurityPolicy instances.
   Member<HeapHashMap<int, Member<ContentSecurityPolicy>>>
       isolated_world_csp_map_;
+
+  // Used to keep track of which ComputedAccessibleNodes have already been
+  // instantiated in this document to avoid constructing duplicates.
+  HeapHashMap<AXID, Member<ComputedAccessibleNode>> computed_node_mapping_;
 };
 
 extern template class CORE_EXTERN_TEMPLATE_EXPORT Supplement<Document>;
diff --git a/third_party/blink/renderer/core/dom/dom_exception.cc b/third_party/blink/renderer/core/dom/dom_exception.cc
index 85e29a7..4922d7e 100644
--- a/third_party/blink/renderer/core/dom/dom_exception.cc
+++ b/third_party/blink/renderer/core/dom/dom_exception.cc
@@ -142,10 +142,10 @@
      "User or security policy denied the request."},
 };
 
-unsigned short ToLegacyErrorCode(DOMExceptionCode exception_code) {
+uint16_t ToLegacyErrorCode(DOMExceptionCode exception_code) {
   if (DOMExceptionCode::kLegacyErrorCodeMin <= exception_code &&
       exception_code <= DOMExceptionCode::kLegacyErrorCodeMax) {
-    return static_cast<unsigned short>(exception_code);
+    return static_cast<uint16_t>(exception_code);
   }
   return 0;
 }
@@ -159,7 +159,7 @@
   return nullptr;
 }
 
-unsigned short FindLegacyErrorCode(const String& name) {
+uint16_t FindLegacyErrorCode(const String& name) {
   for (const auto& entry : kDOMExceptionEntryTable) {
     if (name == entry.name)
       return ToLegacyErrorCode(entry.code);
@@ -208,7 +208,7 @@
   return entry->message;
 }
 
-DOMException::DOMException(unsigned short legacy_code,
+DOMException::DOMException(uint16_t legacy_code,
                            const String& name,
                            const String& sanitized_message,
                            const String& unsanitized_message)
diff --git a/third_party/blink/renderer/core/dom/dom_exception.h b/third_party/blink/renderer/core/dom/dom_exception.h
index a104369c..8096926 100644
--- a/third_party/blink/renderer/core/dom/dom_exception.h
+++ b/third_party/blink/renderer/core/dom/dom_exception.h
@@ -49,7 +49,7 @@
   // Constructor exposed to script.
   static DOMException* Create(const String& message, const String& name);
 
-  DOMException(unsigned short legacy_code,
+  DOMException(uint16_t legacy_code,
                const String& name,
                const String& sanitized_message,
                const String& unsanitized_message);
@@ -57,7 +57,7 @@
   static String GetErrorName(DOMExceptionCode);
   static String GetErrorMessage(DOMExceptionCode);
 
-  unsigned short code() const { return legacy_code_; }
+  uint16_t code() const { return legacy_code_; }
   String name() const { return name_; }
 
   // This is the message that's exposed to JavaScript: never return unsanitized
@@ -73,7 +73,7 @@
   String ToStringForConsole() const;
 
  private:
-  unsigned short legacy_code_;
+  uint16_t legacy_code_;
   String name_;
   String sanitized_message_;
   String unsanitized_message_;
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index cbc3cb9f..88ca73f 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -28,7 +28,7 @@
 
 #include <memory>
 
-#include "cc/input/scroll_snap_data.h"
+#include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/public/platform/web_scroll_into_view_params.h"
 #include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
 #include "third_party/blink/renderer/bindings/core/v8/scroll_into_view_options_or_boolean.h"
diff --git a/third_party/blink/renderer/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc
index 75454d94..63b39054 100644
--- a/third_party/blink/renderer/core/dom/node.cc
+++ b/third_party/blink/renderer/core/dom/node.cc
@@ -1872,9 +1872,8 @@
   NOTREACHED();
 }
 
-unsigned short Node::compareDocumentPosition(
-    const Node* other_node,
-    ShadowTreesTreatment treatment) const {
+uint16_t Node::compareDocumentPosition(const Node* other_node,
+                                       ShadowTreesTreatment treatment) const {
   if (other_node == this)
     return kDocumentPositionEquivalent;
 
@@ -1889,8 +1888,8 @@
   // If either of start1 or start2 is null, then we are disconnected, since one
   // of the nodes is an orphaned attribute node.
   if (!start1 || !start2) {
-    unsigned short direction = (this > other_node) ? kDocumentPositionPreceding
-                                                   : kDocumentPositionFollowing;
+    uint16_t direction = (this > other_node) ? kDocumentPositionPreceding
+                                             : kDocumentPositionFollowing;
     return kDocumentPositionDisconnected |
            kDocumentPositionImplementationSpecific | direction;
   }
@@ -1935,8 +1934,8 @@
   if (start1->isConnected() != start2->isConnected() ||
       (treatment == kTreatShadowTreesAsDisconnected &&
        start1->GetTreeScope() != start2->GetTreeScope())) {
-    unsigned short direction = (this > other_node) ? kDocumentPositionPreceding
-                                                   : kDocumentPositionFollowing;
+    uint16_t direction = (this > other_node) ? kDocumentPositionPreceding
+                                             : kDocumentPositionFollowing;
     return kDocumentPositionDisconnected |
            kDocumentPositionImplementationSpecific | direction;
   }
@@ -1954,8 +1953,8 @@
 
   // If the two elements don't have a common root, they're not in the same tree.
   if (chain1[index1 - 1] != chain2[index2 - 1]) {
-    unsigned short direction = (this > other_node) ? kDocumentPositionPreceding
-                                                   : kDocumentPositionFollowing;
+    uint16_t direction = (this > other_node) ? kDocumentPositionPreceding
+                                             : kDocumentPositionFollowing;
     return kDocumentPositionDisconnected |
            kDocumentPositionImplementationSpecific | direction;
   }
diff --git a/third_party/blink/renderer/core/dom/node.h b/third_party/blink/renderer/core/dom/node.h
index c6c64c3..c8bec0b 100644
--- a/third_party/blink/renderer/core/dom/node.h
+++ b/third_party/blink/renderer/core/dom/node.h
@@ -789,7 +789,7 @@
     kTreatShadowTreesAsComposed
   };
 
-  unsigned short compareDocumentPosition(
+  uint16_t compareDocumentPosition(
       const Node*,
       ShadowTreesTreatment = kTreatShadowTreesAsDisconnected) const;
 
diff --git a/third_party/blink/renderer/core/dom/shadow_root.cc b/third_party/blink/renderer/core/dom/shadow_root.cc
index 14230a7..e9ddfb7 100644
--- a/third_party/blink/renderer/core/dom/shadow_root.cc
+++ b/third_party/blink/renderer/core/dom/shadow_root.cc
@@ -57,7 +57,8 @@
 
 struct SameSizeAsShadowRoot : public DocumentFragment, public TreeScope {
   Member<void*> member[3];
-  unsigned counters_and_flags[1];
+  uint16_t counter;
+  unsigned flags[1];
 };
 
 static_assert(sizeof(ShadowRoot) == sizeof(SameSizeAsShadowRoot),
@@ -68,10 +69,10 @@
       TreeScope(*this, document),
       style_sheet_list_(nullptr),
       child_shadow_root_count_(0),
-      type_(static_cast<unsigned short>(type)),
+      type_(static_cast<unsigned>(type)),
       registered_with_parent_shadow_root_(false),
       delegates_focus_(false),
-      slotting_(static_cast<unsigned short>(ShadowRootSlotting::kAuto)),
+      slotting_(static_cast<unsigned>(ShadowRootSlotting::kAuto)),
       needs_distribution_recalc_(false),
       unused_(0) {
   if (IsV0())
@@ -110,7 +111,7 @@
 }
 
 void ShadowRoot::SetSlotting(ShadowRootSlotting slotting) {
-  slotting_ = static_cast<unsigned short>(slotting);
+  slotting_ = static_cast<unsigned>(slotting);
 }
 
 String ShadowRoot::InnerHTMLAsString() const {
diff --git a/third_party/blink/renderer/core/dom/shadow_root.h b/third_party/blink/renderer/core/dom/shadow_root.h
index c507569..58983446 100644
--- a/third_party/blink/renderer/core/dom/shadow_root.h
+++ b/third_party/blink/renderer/core/dom/shadow_root.h
@@ -161,8 +161,7 @@
 
   void SetSlotting(ShadowRootSlotting slotting);
   bool IsManualSlotting() {
-    return slotting_ ==
-           static_cast<unsigned short>(ShadowRootSlotting::kManual);
+    return slotting_ == static_cast<unsigned>(ShadowRootSlotting::kManual);
   }
 
   bool ContainsShadowRoots() const { return child_shadow_root_count_; }
@@ -191,13 +190,13 @@
   TraceWrapperMember<StyleSheetList> style_sheet_list_;
   Member<SlotAssignment> slot_assignment_;
   Member<ShadowRootV0> shadow_root_v0_;
-  unsigned short child_shadow_root_count_;
-  unsigned short type_ : 2;
-  unsigned short registered_with_parent_shadow_root_ : 1;
-  unsigned short delegates_focus_ : 1;
-  unsigned short slotting_ : 1;
-  unsigned short needs_distribution_recalc_ : 1;
-  unsigned short unused_ : 10;
+  uint16_t child_shadow_root_count_;
+  unsigned type_ : 2;
+  unsigned registered_with_parent_shadow_root_ : 1;
+  unsigned delegates_focus_ : 1;
+  unsigned slotting_ : 1;
+  unsigned needs_distribution_recalc_ : 1;
+  unsigned unused_ : 26;
 
   DISALLOW_COPY_AND_ASSIGN(ShadowRoot);
 };
diff --git a/third_party/blink/renderer/core/dom/tree_ordered_list.cc b/third_party/blink/renderer/core/dom/tree_ordered_list.cc
index 652c9c71..2b1b89d1 100644
--- a/third_party/blink/renderer/core/dom/tree_ordered_list.cc
+++ b/third_party/blink/renderer/core/dom/tree_ordered_list.cc
@@ -47,7 +47,7 @@
   do {
     --it;
     Node* n = *it;
-    unsigned short position =
+    uint16_t position =
         n->compareDocumentPosition(node, Node::kTreatShadowTreesAsComposed);
     if (position & Node::kDocumentPositionFollowing) {
       nodes_.InsertBefore(following_node, node);
diff --git a/third_party/blink/renderer/core/dom/tree_scope.cc b/third_party/blink/renderer/core/dom/tree_scope.cc
index 657ea7d..001fb73 100644
--- a/third_party/blink/renderer/core/dom/tree_scope.cc
+++ b/third_party/blink/renderer/core/dom/tree_scope.cc
@@ -512,7 +512,7 @@
   return nullptr;
 }
 
-unsigned short TreeScope::ComparePosition(const TreeScope& other_scope) const {
+uint16_t TreeScope::ComparePosition(const TreeScope& other_scope) const {
   if (other_scope == this)
     return Node::kDocumentPositionEquivalent;
 
diff --git a/third_party/blink/renderer/core/dom/tree_scope.h b/third_party/blink/renderer/core/dom/tree_scope.h
index d2adf8f..3e41f46 100644
--- a/third_party/blink/renderer/core/dom/tree_scope.h
+++ b/third_party/blink/renderer/core/dom/tree_scope.h
@@ -124,7 +124,7 @@
   }
 
   bool IsInclusiveAncestorOf(const TreeScope&) const;
-  unsigned short ComparePosition(const TreeScope&) const;
+  uint16_t ComparePosition(const TreeScope&) const;
 
   const TreeScope* CommonAncestorTreeScope(const TreeScope& other) const;
   TreeScope* CommonAncestorTreeScope(TreeScope& other);
diff --git a/third_party/blink/renderer/core/editing/compute_layer_selection.cc b/third_party/blink/renderer/core/editing/compute_layer_selection.cc
index db0e8e7..0688e10e 100644
--- a/third_party/blink/renderer/core/editing/compute_layer_selection.cc
+++ b/third_party/blink/renderer/core/editing/compute_layer_selection.cc
@@ -49,27 +49,14 @@
 
 namespace blink {
 
-// Note: If the layout object has a scrolling contents layer, the selection
-// will be relative to that.
-static GraphicsLayer* GetGraphicsLayerBacking(
-    const LayoutObject& layout_object) {
-  const LayoutBoxModelObject& paint_invalidation_container =
-      layout_object.ContainerForPaintInvalidation();
-  DCHECK(paint_invalidation_container.Layer());
-  if (paint_invalidation_container.Layer()->GetCompositingState() ==
-      kNotComposited)
-    return nullptr;
-  return paint_invalidation_container.Layer()->GraphicsLayerBacking(
-      &layout_object);
-}
-
 // Convert a local point into the coordinate system of backing coordinates.
 static gfx::Point LocalToInvalidationBackingPoint(
     const LayoutPoint& local_point,
-    const LayoutObject& layout_object) {
+    const LayoutObject& layout_object,
+    const GraphicsLayer& graphics_layer) {
   const LayoutBoxModelObject& paint_invalidation_container =
       layout_object.ContainerForPaintInvalidation();
-  DCHECK(paint_invalidation_container.Layer());
+  const PaintLayer& paint_layer = *paint_invalidation_container.Layer();
 
   FloatPoint container_point = layout_object.LocalToAncestorPoint(
       FloatPoint(local_point), &paint_invalidation_container,
@@ -77,15 +64,12 @@
 
   // A layoutObject can have no invalidation backing if it is from a detached
   // frame, or when forced compositing is disabled.
-  if (paint_invalidation_container.Layer()->GetCompositingState() ==
-      kNotComposited)
+  if (paint_layer.GetCompositingState() == kNotComposited)
     return RoundedIntPoint(container_point);
 
   PaintLayer::MapPointInPaintInvalidationContainerToBacking(
       paint_invalidation_container, container_point);
-
-  if (GraphicsLayer* graphics_layer = GetGraphicsLayerBacking(layout_object))
-    container_point.Move(-graphics_layer->OffsetFromLayoutObject());
+  container_point.Move(-graphics_layer.OffsetFromLayoutObject());
 
   // Ensure the coordinates are in the scrolling contents space, if the object
   // is a scroller.
@@ -161,20 +145,18 @@
   return text_control_object->BorderBoxRect().Contains(position_in_input);
 }
 
-static base::Optional<cc::LayerSelectionBound> ComputeSelectionBound(
+static cc::LayerSelectionBound ComputeSelectionBound(
     const LayoutObject& layout_object,
+    const GraphicsLayer& graphics_layer,
     const LayoutPoint& edge_top_in_layer,
     const LayoutPoint& edge_bottom_in_layer) {
   cc::LayerSelectionBound bound;
 
-  bound.edge_top =
-      LocalToInvalidationBackingPoint(edge_top_in_layer, layout_object);
-  bound.edge_bottom =
-      LocalToInvalidationBackingPoint(edge_bottom_in_layer, layout_object);
-  GraphicsLayer* const layer = GetGraphicsLayerBacking(layout_object);
-  if (!layer)
-    return base::nullopt;
-  bound.layer_id = layer->CcLayer()->id();
+  bound.edge_top = LocalToInvalidationBackingPoint(
+      edge_top_in_layer, layout_object, graphics_layer);
+  bound.edge_bottom = LocalToInvalidationBackingPoint(
+      edge_bottom_in_layer, layout_object, graphics_layer);
+  bound.layer_id = graphics_layer.CcLayer()->id();
   bound.hidden =
       !IsVisible(layout_object, edge_top_in_layer, edge_bottom_in_layer);
   return bound;
@@ -190,6 +172,18 @@
          PrimaryDirectionOf(node) == TextDirection::kRtl;
 }
 
+static GraphicsLayer* GetGraphicsLayerFor(const LayoutObject& layout_object) {
+  const LayoutBoxModelObject& paint_invalidation_container =
+      layout_object.ContainerForPaintInvalidation();
+  DCHECK(paint_invalidation_container.Layer()) << layout_object;
+  if (!paint_invalidation_container.Layer())
+    return nullptr;
+  const PaintLayer& paint_layer = *paint_invalidation_container.Layer();
+  if (paint_layer.GetCompositingState() == kNotComposited)
+    return nullptr;
+  return paint_layer.GraphicsLayerBacking(&layout_object);
+}
+
 static base::Optional<cc::LayerSelectionBound>
 StartPositionInGraphicsLayerBacking(const SelectionInDOMTree& selection) {
   const PositionWithAffinity position(selection.ComputeStartPosition(),
@@ -198,15 +192,15 @@
   const LayoutObject* const layout_object = local_caret_rect.layout_object;
   if (!layout_object)
     return base::nullopt;
+  GraphicsLayer* graphics_layer = GetGraphicsLayerFor(*layout_object);
+  if (!graphics_layer)
+    return base::nullopt;
 
   LayoutPoint edge_top_in_layer, edge_bottom_in_layer;
   std::tie(edge_top_in_layer, edge_bottom_in_layer) =
       GetLocalSelectionStartpoints(local_caret_rect);
-  const auto& maybe = ComputeSelectionBound(*layout_object, edge_top_in_layer,
-                                            edge_bottom_in_layer);
-  if (!maybe.has_value())
-    return base::nullopt;
-  cc::LayerSelectionBound bound = maybe.value();
+  cc::LayerSelectionBound bound = ComputeSelectionBound(
+      *layout_object, *graphics_layer, edge_top_in_layer, edge_bottom_in_layer);
   if (selection.IsRange()) {
     bound.type = IsTextDirectionRTL(*position.AnchorNode(), *layout_object)
                      ? gfx::SelectionBound::Type::RIGHT
@@ -225,15 +219,15 @@
   const LayoutObject* const layout_object = local_caret_rect.layout_object;
   if (!layout_object)
     return base::nullopt;
+  GraphicsLayer* graphics_layer = GetGraphicsLayerFor(*layout_object);
+  if (!graphics_layer)
+    return base::nullopt;
 
   LayoutPoint edge_top_in_layer, edge_bottom_in_layer;
   std::tie(edge_top_in_layer, edge_bottom_in_layer) =
       GetLocalSelectionEndpoints(local_caret_rect);
-  const auto& maybe = ComputeSelectionBound(*layout_object, edge_top_in_layer,
-                                            edge_bottom_in_layer);
-  if (!maybe.has_value())
-    return base::nullopt;
-  cc::LayerSelectionBound bound = maybe.value();
+  cc::LayerSelectionBound bound = ComputeSelectionBound(
+      *layout_object, *graphics_layer, edge_top_in_layer, edge_bottom_in_layer);
   if (selection.IsRange()) {
     bound.type = IsTextDirectionRTL(*position.AnchorNode(), *layout_object)
                      ? gfx::SelectionBound::Type::LEFT
diff --git a/third_party/blink/renderer/core/events/mouse_event.cc b/third_party/blink/renderer/core/events/mouse_event.cc
index bb08cde6..69fdedb 100644
--- a/third_party/blink/renderer/core/events/mouse_event.cc
+++ b/third_party/blink/renderer/core/events/mouse_event.cc
@@ -45,9 +45,10 @@
 namespace {
 
 DoubleSize ContentsScrollOffset(AbstractView* abstract_view) {
-  if (!abstract_view || !abstract_view->IsLocalDOMWindow())
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(abstract_view);
+  if (!local_dom_window)
     return DoubleSize();
-  LocalFrame* frame = ToLocalDOMWindow(abstract_view)->GetFrame();
+  LocalFrame* frame = local_dom_window->GetFrame();
   if (!frame)
     return DoubleSize();
   ScrollableArea* scrollable_area = frame->View()->LayoutViewport();
@@ -59,9 +60,10 @@
 }
 
 float PageZoomFactor(const UIEvent* event) {
-  if (!event->view() || !event->view()->IsLocalDOMWindow())
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(event->view());
+  if (!local_dom_window)
     return 1;
-  LocalFrame* frame = ToLocalDOMWindow(event->view())->GetFrame();
+  LocalFrame* frame = local_dom_window->GetFrame();
   if (!frame)
     return 1;
   return frame->PageZoomFactor();
@@ -441,9 +443,8 @@
 }
 
 void MouseEvent::ComputePageLocation() {
-  LocalFrame* frame = view() && view()->IsLocalDOMWindow()
-                          ? ToLocalDOMWindow(view())->GetFrame()
-                          : nullptr;
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(view());
+  LocalFrame* frame = local_dom_window ? local_dom_window->GetFrame() : nullptr;
   DoublePoint scaled_page_location =
       page_location_.ScaledBy(PageZoomFactor(this));
   if (frame && frame->View()) {
diff --git a/third_party/blink/renderer/core/events/touch_event.cc b/third_party/blink/renderer/core/events/touch_event.cc
index ec54cdcb..9222257 100644
--- a/third_party/blink/renderer/core/events/touch_event.cc
+++ b/third_party/blink/renderer/core/events/touch_event.cc
@@ -295,10 +295,9 @@
       break;
   }
 
-  if (!message.IsEmpty() && view() && view()->IsLocalDOMWindow() &&
-      view()->GetFrame()) {
-    Intervention::GenerateReport(ToLocalDOMWindow(view())->GetFrame(), id,
-                                 message);
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(view());
+  if (!message.IsEmpty() && local_dom_window && local_dom_window->GetFrame()) {
+    Intervention::GenerateReport(local_dom_window->GetFrame(), id, message);
   }
 
   if ((type() == event_type_names::kTouchstart ||
diff --git a/third_party/blink/renderer/core/events/wheel_event.cc b/third_party/blink/renderer/core/events/wheel_event.cc
index 1ed4ab7d3..8a9ff388 100644
--- a/third_party/blink/renderer/core/events/wheel_event.cc
+++ b/third_party/blink/renderer/core/events/wheel_event.cc
@@ -51,9 +51,9 @@
   MouseEventInit* initializer = MouseEventInit::Create();
   initializer->setBubbles(true);
   initializer->setCancelable(event.IsCancelable());
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(view);
   MouseEvent::SetCoordinatesFromWebPointerProperties(
-      event.FlattenTransform(),
-      view->IsLocalDOMWindow() ? ToLocalDOMWindow(view) : nullptr, initializer);
+      event.FlattenTransform(), local_dom_window, initializer);
   initializer->setButton(static_cast<short>(event.button));
   initializer->setButtons(
       MouseEvent::WebInputEventModifiersToButtons(event.GetModifiers()));
@@ -132,9 +132,9 @@
         "Unable to preventDefault inside passive event listener due to "
         "target being treated as passive. See "
         "https://www.chromestatus.com/features/6662647093133312";
-    if (view() && view()->IsLocalDOMWindow() && view()->GetFrame()) {
-      Intervention::GenerateReport(ToLocalDOMWindow(view())->GetFrame(), id,
-                                   message);
+    auto* local_dom_window = DynamicTo<LocalDOMWindow>(view());
+    if (local_dom_window && local_dom_window->GetFrame()) {
+      Intervention::GenerateReport(local_dom_window->GetFrame(), id, message);
     }
   }
 
diff --git a/third_party/blink/renderer/core/frame/dom_window.cc b/third_party/blink/renderer/core/frame/dom_window.cc
index 6d293ff..328d8181 100644
--- a/third_party/blink/renderer/core/frame/dom_window.cc
+++ b/third_party/blink/renderer/core/frame/dom_window.cc
@@ -247,8 +247,9 @@
   // aren't replicated.  For now, construct the URL using the replicated
   // origin for RemoteFrames. If the target frame is remote and sandboxed,
   // there isn't anything else to show other than "null" for its origin.
-  KURL target_url = IsLocalDOMWindow()
-                        ? blink::ToLocalDOMWindow(this)->document()->Url()
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(this);
+  KURL target_url = local_dom_window
+                        ? local_dom_window->document()->Url()
                         : KURL(NullURL(), target_origin->ToString());
   if (GetFrame()->GetSecurityContext()->IsSandboxed(kSandboxOrigin) ||
       accessing_window->document()->IsSandboxed(kSandboxOrigin)) {
@@ -341,8 +342,8 @@
     return;
 
   ExecutionContext* execution_context = nullptr;
-  if (IsLocalDOMWindow()) {
-    execution_context = blink::ToLocalDOMWindow(this)->GetExecutionContext();
+  if (auto* local_dom_window = DynamicTo<LocalDOMWindow>(this)) {
+    execution_context = local_dom_window->GetExecutionContext();
   }
   probe::breakableLocation(execution_context, "DOMWindow.close");
 
@@ -457,8 +458,9 @@
 
   String source_origin = security_origin->ToString();
 
-  KURL target_url = IsLocalDOMWindow()
-                        ? blink::ToLocalDOMWindow(this)->document()->Url()
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(this);
+  KURL target_url = local_dom_window
+                        ? local_dom_window->document()->Url()
                         : KURL(NullURL(), GetFrame()
                                               ->GetSecurityContext()
                                               ->GetSecurityOrigin()
diff --git a/third_party/blink/renderer/core/frame/frame_overlay.cc b/third_party/blink/renderer/core/frame/frame_overlay.cc
index c69be2ad..d3f3eb1 100644
--- a/third_party/blink/renderer/core/frame/frame_overlay.cc
+++ b/third_party/blink/renderer/core/frame/frame_overlay.cc
@@ -32,6 +32,7 @@
 #include <utility>
 
 #include "base/memory/ptr_util.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/picture_layer.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/visual_viewport.h"
@@ -43,7 +44,6 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_layer_client.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 
 namespace blink {
 
@@ -96,7 +96,7 @@
       // state.
       cc::Layer* cc_layer = layer_->CcLayer();
       cc_layer->AddMainThreadScrollingReasons(
-          MainThreadScrollingReason::kFrameOverlay);
+          cc::MainThreadScrollingReason::kFrameOverlay);
     }
 
     layer_->SetLayerState(PropertyTreeState::Root(), IntPoint());
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 e5211bb..3ba38ff 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -29,7 +29,7 @@
 #include <memory>
 #include <utility>
 
-#include "cc/input/scroll_snap_data.h"
+#include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/public/platform/web_screen_info.h"
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 9ba2007..5a4196b 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.h
+++ b/third_party/blink/renderer/core/frame/local_dom_window.h
@@ -36,6 +36,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 #include <memory>
@@ -381,11 +382,12 @@
   mutable Member<TrustedTypePolicyFactory> trusted_types_;
 };
 
-DEFINE_TYPE_CASTS(LocalDOMWindow,
-                  DOMWindow,
-                  x,
-                  x->IsLocalDOMWindow(),
-                  x.IsLocalDOMWindow());
+template <>
+struct DowncastTraits<LocalDOMWindow> {
+  static bool AllowFrom(const DOMWindow& window) {
+    return window.IsLocalDOMWindow();
+  }
+};
 
 inline String LocalDOMWindow::status() const {
   return status_;
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index c6fbff59..99e21f9 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -44,7 +44,6 @@
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_controller.h"
 #include "third_party/blink/renderer/bindings/core/v8/source_location.h"
-#include "third_party/blink/renderer/core/aom/computed_accessible_node.h"
 #include "third_party/blink/renderer/core/core_initializer.h"
 #include "third_party/blink/renderer/core/core_probe_sink.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
@@ -316,7 +315,6 @@
   visitor->Trace(console_);
   visitor->Trace(input_method_controller_);
   visitor->Trace(text_suggestion_controller_);
-  visitor->Trace(computed_node_mapping_);
   visitor->Trace(smooth_scroll_sequencer_);
   Frame::Trace(visitor);
   Supplementable<LocalFrame>::Trace(visitor);
@@ -543,7 +541,7 @@
 }
 
 LocalDOMWindow* LocalFrame::DomWindow() const {
-  return ToLocalDOMWindow(dom_window_);
+  return To<LocalDOMWindow>(dom_window_.Get());
 }
 
 void LocalFrame::SetDOMWindow(LocalDOMWindow* dom_window) {
@@ -1493,17 +1491,6 @@
           WebURLRequest::kNoScriptOn);
 }
 
-ComputedAccessibleNode* LocalFrame::GetOrCreateComputedAccessibleNode(
-    AXID ax_id,
-    WebComputedAXTree* tree) {
-  if (computed_node_mapping_.find(ax_id) == computed_node_mapping_.end()) {
-    ComputedAccessibleNode* node =
-        ComputedAccessibleNode::Create(ax_id, tree, this);
-    computed_node_mapping_.insert(ax_id, node);
-  }
-  return computed_node_mapping_.at(ax_id);
-}
-
 bool LocalFrame::IsAdSubframe() const {
   return ad_frame_type_ != blink::mojom::AdFrameType::kNonAd;
 }
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
index 21ed7af..21ddcd30 100644
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -39,7 +39,6 @@
 #include "third_party/blink/public/mojom/loader/previews_resource_loading_hints.mojom-blink.h"
 #include "third_party/blink/public/platform/reporting.mojom-blink.h"
 #include "third_party/blink/public/platform/task_type.h"
-#include "third_party/blink/renderer/core/accessibility/axid.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/user_gesture_indicator.h"
 #include "third_party/blink/renderer/core/dom/weak_identifier_map.h"
@@ -68,7 +67,6 @@
 class AdTracker;
 class AssociatedInterfaceProvider;
 class Color;
-class ComputedAccessibleNode;
 class ContentSecurityPolicy;
 class Document;
 class Editor;
@@ -103,7 +101,6 @@
 class SmoothScrollSequencer;
 class SpellChecker;
 class TextSuggestionController;
-class WebComputedAXTree;
 class WebContentSettingsClient;
 class WebPluginContainerImpl;
 class WebURLLoaderFactory;
@@ -388,9 +385,6 @@
   // preview.
   bool IsUsingDataSavingPreview() const;
 
-  ComputedAccessibleNode* GetOrCreateComputedAccessibleNode(AXID,
-                                                            WebComputedAXTree*);
-
   // True if AdTracker heuristics have determined that this frame is an ad.
   // Calculated in the constructor but LocalFrames created on behalf of OOPIF
   // aren't set until just before commit (ReadyToCommitNavigation time) by the
@@ -549,10 +543,6 @@
   bool occluded_or_obscured_by_ancestor_ = false;
   std::unique_ptr<FrameResourceCoordinator> frame_resource_coordinator_;
 
-  // Used to keep track of which ComputedAccessibleNodes have already been
-  // instantiated in this frame to avoid constructing duplicates.
-  HeapHashMap<AXID, Member<ComputedAccessibleNode>> computed_node_mapping_;
-
   // Per-frame URLLoader factory.
   std::unique_ptr<WebURLLoaderFactory> url_loader_factory_;
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index a159266..dc5aeeea 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -34,6 +34,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/metrics/field_trial_params.h"
 #include "base/numerics/safe_conversions.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/picture_layer.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/platform/task_type.h"
@@ -3444,8 +3445,8 @@
     SetLayoutSizeInternal(Size());
 
   ForAllChildViewsAndPlugins([](EmbeddedContentView& embedded_content_view) {
-    if (!embedded_content_view.IsLocalFrameView() ||
-        !ToLocalFrameView(embedded_content_view).ShouldThrottleRendering())
+    auto* local_frame_view = DynamicTo<LocalFrameView>(embedded_content_view);
+    if (!local_frame_view || !local_frame_view->ShouldThrottleRendering())
       embedded_content_view.FrameRectsChanged();
   });
 
@@ -4167,7 +4168,7 @@
   MainThreadScrollingReasons reasons = parent_reason;
 
   if (!GetPage()->GetSettings().GetThreadedScrollingEnabled())
-    reasons |= MainThreadScrollingReason::kThreadedScrollingDisabled;
+    reasons |= cc::MainThreadScrollingReason::kThreadedScrollingDisabled;
 
   if (!frame.IsLocalFrame())
     return;
@@ -4190,7 +4191,7 @@
         // Clear all main thread scrolling reasons except the one that's set
         // if there is a running scroll animation.
         platform_layer_for_scrolling->ClearMainThreadScrollingReasons(
-            ~MainThreadScrollingReason::kHandlingScrollFromMainThread);
+            ~cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
       }
     }
   }
@@ -4203,7 +4204,7 @@
 
   if (frame.IsMainFrame())
     main_thread_scrolling_reasons_ = reasons;
-  DCHECK(!MainThreadScrollingReason::HasNonCompositedScrollReasons(
+  DCHECK(!cc::MainThreadScrollingReason::HasNonCompositedScrollReasons(
       main_thread_scrolling_reasons_));
 }
 
@@ -4215,8 +4216,10 @@
   if (ShouldThrottleRendering())
     return reasons;
 
-  if (HasBackgroundAttachmentFixedObjects())
-    reasons |= MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
+  if (HasBackgroundAttachmentFixedObjects()) {
+    reasons |=
+        cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
+  }
 
   // Force main-thread scrolling if the frame has uncomposited position: fixed
   // elements.  Note: we care about this not only for input-scrollable frames
@@ -4227,7 +4230,7 @@
       GetLayoutView()->StyleRef().VisibleToHitTesting() &&
       HasVisibleSlowRepaintViewportConstrainedObjects()) {
     reasons |=
-        MainThreadScrollingReason::kHasNonLayerViewportConstrainedObjects;
+        cc::MainThreadScrollingReason::kHasNonLayerViewportConstrainedObjects;
   }
   return reasons;
 }
@@ -4238,7 +4241,7 @@
       static_cast<MainThreadScrollingReasons>(0);
 
   if (!GetPage()->GetSettings().GetThreadedScrollingEnabled())
-    reasons |= MainThreadScrollingReason::kThreadedScrollingDisabled;
+    reasons |= cc::MainThreadScrollingReason::kThreadedScrollingDisabled;
 
   if (!GetPage()->MainFrame()->IsLocalFrame())
     return reasons;
@@ -4260,7 +4263,8 @@
         ToLocalFrame(frame)->View()->MainThreadScrollingReasonsPerFrame();
   }
 
-  DCHECK(!MainThreadScrollingReason::HasNonCompositedScrollReasons(reasons));
+  DCHECK(
+      !cc::MainThreadScrollingReason::HasNonCompositedScrollReasons(reasons));
   return reasons;
 }
 
@@ -4283,7 +4287,7 @@
     }
   }
 
-  return String(MainThreadScrollingReason::AsText(reasons).c_str());
+  return String(cc::MainThreadScrollingReason::AsText(reasons).c_str());
 }
 
 bool LocalFrameView::MapToVisualRectInTopFrameSpace(LayoutRect& rect) {
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h
index b4db161..9b41011b 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.h
+++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -48,6 +48,7 @@
 #include "third_party/blink/renderer/platform/graphics/subtree_paint_property_update_reason.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/skia/include/core/SkColor.h"
 
 namespace cc {
@@ -1077,11 +1078,12 @@
   return os << info.name << " reason=" << info.reason;
 }
 
-DEFINE_TYPE_CASTS(LocalFrameView,
-                  EmbeddedContentView,
-                  embedded_content_view,
-                  embedded_content_view->IsLocalFrameView(),
-                  embedded_content_view.IsLocalFrameView());
+template <>
+struct DowncastTraits<LocalFrameView> {
+  static bool AllowFrom(const EmbeddedContentView& embedded_content_view) {
+    return embedded_content_view.IsLocalFrameView();
+  }
+};
 
 }  // namespace blink
 
diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/blink/renderer/core/frame/location.cc
index 10200bd..eedf81247 100644
--- a/third_party/blink/renderer/core/frame/location.cc
+++ b/third_party/blink/renderer/core/frame/location.cc
@@ -246,7 +246,7 @@
     return;
   // reload() is not cross-origin accessible, so |dom_window_| will always be
   // local.
-  ToLocalDOMWindow(dom_window_)
+  To<LocalDOMWindow>(dom_window_.Get())
       ->GetFrame()
       ->Reload(WebFrameLoadType::kReload,
                ClientRedirectPolicy::kClientRedirect);
@@ -325,7 +325,7 @@
 }
 
 Document* Location::GetDocument() const {
-  return ToLocalDOMWindow(dom_window_)->document();
+  return To<LocalDOMWindow>(dom_window_.Get())->document();
 }
 
 bool Location::IsAttached() const {
diff --git a/third_party/blink/renderer/core/frame/root_frame_viewport.cc b/third_party/blink/renderer/core/frame/root_frame_viewport.cc
index 0bcb4ed..c5187cceb 100644
--- a/third_party/blink/renderer/core/frame/root_frame_viewport.cc
+++ b/third_party/blink/renderer/core/frame/root_frame_viewport.cc
@@ -4,7 +4,7 @@
 
 #include "third_party/blink/renderer/core/frame/root_frame_viewport.h"
 
-#include "cc/input/scroll_snap_data.h"
+#include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/public/platform/web_scroll_into_view_params.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_party/blink/renderer/core/frame/visual_viewport.cc
index 758949d..2558fbe 100644
--- a/third_party/blink/renderer/core/frame/visual_viewport.cc
+++ b/third_party/blink/renderer/core/frame/visual_viewport.cc
@@ -32,6 +32,7 @@
 
 #include <memory>
 
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/picture_layer.h"
 #include "cc/layers/scrollbar_layer_interface.h"
 #include "third_party/blink/public/platform/task_type.h"
@@ -197,7 +198,7 @@
     if (MainFrame() &&
         !MainFrame()->GetSettings()->GetThreadedScrollingEnabled()) {
       state.main_thread_scrolling_reasons =
-          MainThreadScrollingReason::kThreadedScrollingDisabled;
+          cc::MainThreadScrollingReason::kThreadedScrollingDisabled;
     }
 
     if (!scroll_node_) {
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
index 021ce18..63ecb28d 100644
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -1460,6 +1460,12 @@
 
 ElementInternals* HTMLElement::attachInternals(
     ExceptionState& exception_state) {
+  if (IsValue()) {
+    exception_state.ThrowDOMException(
+        DOMExceptionCode::kNotSupportedError,
+        "Unable to attach ElementInternals to a customized built-in element.");
+    return nullptr;
+  }
   CustomElementRegistry* registry = CustomElement::Registry(*this);
   auto* definition =
       registry ? registry->DefinitionForName(localName()) : nullptr;
@@ -1469,15 +1475,9 @@
         "Unable to attach ElementInternals to non-custom elements.");
     return nullptr;
   }
-  if (!definition->Descriptor().IsAutonomous()) {
-    exception_state.ThrowDOMException(
-        DOMExceptionCode::kInvalidStateError,
-        "Unable to attach ElementInternals to a customized built-in element.");
-    return nullptr;
-  }
   if (definition->DisableInternals()) {
     exception_state.ThrowDOMException(
-        DOMExceptionCode::kInvalidStateError,
+        DOMExceptionCode::kNotSupportedError,
         "ElementInternals is disabled by disabledFeature static field.");
     return nullptr;
   }
diff --git a/third_party/blink/renderer/core/input/event_handling_util.cc b/third_party/blink/renderer/core/input/event_handling_util.cc
index 7f8c440..3ef6e6c 100644
--- a/third_party/blink/renderer/core/input/event_handling_util.cc
+++ b/third_party/blink/renderer/core/input/event_handling_util.cc
@@ -136,13 +136,14 @@
       ToLayoutEmbeddedContent(layout_object)->ChildFrameView();
   if (!frame_view)
     return nullptr;
-  if (!frame_view->IsLocalFrameView()) {
+  auto* local_frame_view = DynamicTo<LocalFrameView>(frame_view);
+  if (!local_frame_view) {
     if (is_remote_frame)
       *is_remote_frame = true;
     return nullptr;
   }
 
-  return &ToLocalFrameView(frame_view)->GetFrame();
+  return &local_frame_view->GetFrame();
 }
 
 LocalFrame* GetTargetSubframe(
diff --git a/third_party/blink/renderer/core/input/scroll_manager.cc b/third_party/blink/renderer/core/input/scroll_manager.cc
index df0039b..ab4e885 100644
--- a/third_party/blink/renderer/core/input/scroll_manager.cc
+++ b/third_party/blink/renderer/core/input/scroll_manager.cc
@@ -4,9 +4,10 @@
 
 #include "third_party/blink/renderer/core/input/scroll_manager.h"
 
-#include <memory>
+#include <utility>
 
-#include "cc/input/scroll_snap_data.h"
+#include "cc/input/main_thread_scrolling_reason.h"
+#include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/events/gesture_event.h"
@@ -36,22 +37,22 @@
 namespace blink {
 namespace {
 
-SnapFlingController::GestureScrollType ToGestureScrollType(
+cc::SnapFlingController::GestureScrollType ToGestureScrollType(
     WebInputEvent::Type web_event_type) {
   switch (web_event_type) {
     case WebInputEvent::kGestureScrollBegin:
-      return SnapFlingController::GestureScrollType::kBegin;
+      return cc::SnapFlingController::GestureScrollType::kBegin;
     case WebInputEvent::kGestureScrollUpdate:
-      return SnapFlingController::GestureScrollType::kUpdate;
+      return cc::SnapFlingController::GestureScrollType::kUpdate;
     case WebInputEvent::kGestureScrollEnd:
-      return SnapFlingController::GestureScrollType::kEnd;
+      return cc::SnapFlingController::GestureScrollType::kEnd;
     default:
       NOTREACHED();
-      return SnapFlingController::GestureScrollType::kBegin;
+      return cc::SnapFlingController::GestureScrollType::kBegin;
   }
 }
 
-SnapFlingController::GestureScrollUpdateInfo GetGestureScrollUpdateInfo(
+cc::SnapFlingController::GestureScrollUpdateInfo GetGestureScrollUpdateInfo(
     const WebGestureEvent& event) {
   return {.delta = gfx::Vector2dF(-event.data.scroll_update.delta_x,
                                   -event.data.scroll_update.delta_y),
@@ -394,12 +395,12 @@
   ComputeScrollRelatedMetrics(&non_composited_main_thread_scrolling_reasons);
 
   if (non_composited_main_thread_scrolling_reasons) {
-    DCHECK(MainThreadScrollingReason::HasNonCompositedScrollReasons(
+    DCHECK(cc::MainThreadScrollingReason::HasNonCompositedScrollReasons(
         non_composited_main_thread_scrolling_reasons));
     uint32_t main_thread_scrolling_reason_enum_max =
-        MainThreadScrollingReason::kMainThreadScrollingReasonCount + 1;
-    for (uint32_t i = MainThreadScrollingReason::kNonCompositedReasonsFirst;
-         i <= MainThreadScrollingReason::kNonCompositedReasonsLast; ++i) {
+        cc::MainThreadScrollingReason::kMainThreadScrollingReasonCount + 1;
+    for (uint32_t i = cc::MainThreadScrollingReason::kNonCompositedReasonsFirst;
+         i <= cc::MainThreadScrollingReason::kNonCompositedReasonsLast; ++i) {
       unsigned val = 1 << i;
       if (non_composited_main_thread_scrolling_reasons & val) {
         if (device == kWebGestureDeviceTouchscreen) {
@@ -787,11 +788,14 @@
   FrameView* frame_view =
       ToLayoutEmbeddedContent(layout_object)->ChildFrameView();
 
-  if (!frame_view || !frame_view->IsLocalFrameView())
+  if (!frame_view)
     return WebInputEventResult::kNotHandled;
 
-  return ToLocalFrameView(frame_view)
-      ->GetFrame()
+  auto* local_frame_view = DynamicTo<LocalFrameView>(frame_view);
+  if (!local_frame_view)
+    return WebInputEventResult::kNotHandled;
+
+  return local_frame_view->GetFrame()
       .GetEventHandler()
       .HandleGestureScrollEvent(gesture_event);
 }
diff --git a/third_party/blink/renderer/core/input/scroll_manager.h b/third_party/blink/renderer/core/input/scroll_manager.h
index c76f8eb..2607a4e 100644
--- a/third_party/blink/renderer/core/input/scroll_manager.h
+++ b/third_party/blink/renderer/core/input/scroll_manager.h
@@ -6,8 +6,10 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_INPUT_SCROLL_MANAGER_H_
 
 #include <deque>
+#include <memory>
 
 #include "base/macros.h"
+#include "cc/input/snap_fling_controller.h"
 #include "third_party/blink/public/platform/web_input_event_result.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
@@ -15,7 +17,6 @@
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/scroll/scroll_snap_data.h"
 #include "third_party/blink/renderer/platform/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/wtf/allocator.h"
 
@@ -37,7 +38,7 @@
 // classes and they call into this class for doing the work.
 class CORE_EXPORT ScrollManager
     : public GarbageCollectedFinalized<ScrollManager>,
-      public SnapFlingClient {
+      public cc::SnapFlingClient {
  public:
   explicit ScrollManager(LocalFrame&);
   virtual ~ScrollManager() = default;
@@ -173,7 +174,7 @@
 
   Member<PaintLayerScrollableArea> resize_scrollable_area_;
 
-  std::unique_ptr<SnapFlingController> snap_fling_controller_;
+  std::unique_ptr<cc::SnapFlingController> snap_fling_controller_;
 
   LayoutSize
       offset_from_resize_corner_;  // In the coords of m_resizeScrollableArea.
diff --git a/third_party/blink/renderer/core/inspector/inspector_dom_snapshot_agent.cc b/third_party/blink/renderer/core/inspector/inspector_dom_snapshot_agent.cc
index 31f4271..a607924 100644
--- a/third_party/blink/renderer/core/inspector/inspector_dom_snapshot_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_dom_snapshot_agent.cc
@@ -97,10 +97,8 @@
   if (layer->GetLayoutObject().IsLayoutEmbeddedContent()) {
     FrameView* frame_view =
         ToLayoutEmbeddedContent(layer->GetLayoutObject()).ChildFrameView();
-    if (frame_view && frame_view->IsLocalFrameView()) {
-      LocalFrameView* local_frame_view = ToLocalFrameView(frame_view);
+    if (auto* local_frame_view = DynamicTo<LocalFrameView>(frame_view))
       return local_frame_view->GetFrame().GetDocument();
-    }
   }
   return nullptr;
 }
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index 12cb7dc..ba28d43f 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -63,6 +63,7 @@
 #include "third_party/blink/renderer/core/layout/layout_table_cell.h"
 #include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h"
+#include "third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_result.h"
 #include "third_party/blink/renderer/core/layout/shapes/shape_outside_info.h"
@@ -4118,7 +4119,8 @@
     Length& logical_right,
     const LayoutBox* child,
     const LayoutBoxModelObject* container_block,
-    LayoutUnit container_logical_width) {
+    LayoutUnit container_logical_width,
+    const NGBoxFragmentBuilder* fragment_builder) {
   if (!logical_left.IsAuto() || !logical_right.IsAuto())
     return;
 
@@ -4149,7 +4151,11 @@
     for (LayoutObject* curr = child->Parent(); curr && curr != container_block;
          curr = curr->Container()) {
       if (curr->IsBox()) {
-        static_position += ToLayoutBox(curr)->LogicalLeft();
+        static_position +=
+            (fragment_builder &&
+             fragment_builder->GetLayoutObject() == curr->Parent())
+                ? fragment_builder->GetChildOffset(curr).inline_offset
+                : ToLayoutBox(curr)->LogicalLeft();
         if (ToLayoutBox(curr)->IsInFlowPositioned())
           static_position +=
               ToLayoutBox(curr)->OffsetForInFlowPosition().Width();
@@ -4184,7 +4190,11 @@
         if (curr == enclosing_box)
           static_position -= enclosing_box->LogicalWidth();
         if (curr != container_block) {
-          static_position -= ToLayoutBox(curr)->LogicalLeft();
+          static_position -=
+              (fragment_builder &&
+               fragment_builder->GetLayoutObject() == curr->Parent())
+                  ? fragment_builder->GetChildOffset(curr).inline_offset
+                  : ToLayoutBox(curr)->LogicalLeft();
           if (ToLayoutBox(curr)->IsInFlowPositioned())
             static_position -=
                 ToLayoutBox(curr)->OffsetForInFlowPosition().Width();
@@ -4599,7 +4609,8 @@
     Length& logical_top,
     Length& logical_bottom,
     const LayoutBox* child,
-    const LayoutBoxModelObject* container_block) {
+    const LayoutBoxModelObject* container_block,
+    const NGBoxFragmentBuilder* fragment_builder) {
   if (!logical_top.IsAuto() || !logical_bottom.IsAuto())
     return;
 
@@ -4611,7 +4622,11 @@
     if (!curr->IsBox() || curr->IsTableRow())
       continue;
     const LayoutBox& box = *ToLayoutBox(curr);
-    static_logical_top += box.LogicalTop();
+    static_logical_top +=
+        (fragment_builder &&
+         fragment_builder->GetLayoutObject() == box.Parent())
+            ? fragment_builder->GetChildOffset(&box).block_offset
+            : box.LogicalTop();
     if (box.IsInFlowPositioned())
       static_logical_top += box.OffsetForInFlowPosition().Height();
     if (!box.IsLayoutFlowThread())
diff --git a/third_party/blink/renderer/core/layout/layout_box.h b/third_party/blink/renderer/core/layout/layout_box.h
index c994e8f..8808682 100644
--- a/third_party/blink/renderer/core/layout/layout_box.h
+++ b/third_party/blink/renderer/core/layout/layout_box.h
@@ -39,12 +39,12 @@
 class EventHandler;
 class LayoutBlockFlow;
 class LayoutMultiColumnSpannerPlaceholder;
+class NGBoxFragmentBuilder;
+class ShapeOutsideInfo;
 struct BoxLayoutExtraInput;
 class NGBreakToken;
 class NGLayoutResult;
 struct NGPhysicalBoxStrut;
-class ShapeOutsideInfo;
-
 struct PaintInfo;
 struct WebScrollIntoViewParams;
 
@@ -1651,13 +1651,15 @@
       Length& logical_top,
       Length& logical_bottom,
       const LayoutBox* child,
-      const LayoutBoxModelObject* container_block);
+      const LayoutBoxModelObject* container_block,
+      const NGBoxFragmentBuilder* = nullptr);
   static void ComputeInlineStaticDistance(
       Length& logical_left,
       Length& logical_right,
       const LayoutBox* child,
       const LayoutBoxModelObject* container_block,
-      LayoutUnit container_logical_width);
+      LayoutUnit container_logical_width,
+      const NGBoxFragmentBuilder* = nullptr);
   static void ComputeLogicalLeftPositionedOffset(
       LayoutUnit& logical_left_pos,
       const LayoutBox* child,
diff --git a/third_party/blink/renderer/core/layout/layout_box_model_object.cc b/third_party/blink/renderer/core/layout/layout_box_model_object.cc
index eea8713..d8e2018 100644
--- a/third_party/blink/renderer/core/layout/layout_box_model_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_box_model_object.cc
@@ -25,6 +25,7 @@
 
 #include "third_party/blink/renderer/core/layout/layout_box_model_object.h"
 
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
@@ -41,7 +42,6 @@
 #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
 #include "third_party/blink/renderer/core/style/shadow_list.h"
 #include "third_party/blink/renderer/platform/geometry/length_functions.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/platform/transforms/transform_state.h"
 
 namespace blink {
@@ -134,7 +134,7 @@
   if (StyleRef().BoxShadow()) {
     if (main_thread_scrolling_reasons) {
       *main_thread_scrolling_reasons |=
-          MainThreadScrollingReason::kHasBoxShadowFromNonRootLayer;
+          cc::MainThreadScrollingReason::kHasBoxShadowFromNonRootLayer;
     }
     return kBackgroundPaintInGraphicsLayer;
   }
diff --git a/third_party/blink/renderer/core/layout/layout_embedded_content.cc b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
index a6fa267..4b0871e 100644
--- a/third_party/blink/renderer/core/layout/layout_embedded_content.cc
+++ b/third_party/blink/renderer/core/layout/layout_embedded_content.cc
@@ -164,16 +164,14 @@
     const HitTestLocation& location_in_container,
     const LayoutPoint& accumulated_offset,
     HitTestAction action) {
-  FrameView* frame_view = ChildFrameView();
+  auto* local_frame_view = DynamicTo<LocalFrameView>(ChildFrameView());
   bool skip_contents = (result.GetHitTestRequest().GetStopNode() == this ||
                         !result.GetHitTestRequest().AllowsChildFrameContent());
-  if (!frame_view || !frame_view->IsLocalFrameView() || skip_contents) {
+  if (!local_frame_view || skip_contents) {
     return NodeAtPointOverEmbeddedContentView(result, location_in_container,
                                               accumulated_offset, action);
   }
 
-  LocalFrameView* local_frame_view = ToLocalFrameView(frame_view);
-
   // A hit test can never hit an off-screen element; only off-screen iframes are
   // throttled; therefore, hit tests can skip descending into throttled iframes.
   if (local_frame_view->ShouldThrottleRendering()) {
@@ -377,9 +375,8 @@
 }
 
 bool LayoutEmbeddedContent::IsThrottledFrameView() const {
-  FrameView* frame_view = ChildFrameView();
-  if (frame_view && frame_view->IsLocalFrameView())
-    return ToLocalFrameView(frame_view)->ShouldThrottleRendering();
+  if (auto* local_frame_view = DynamicTo<LocalFrameView>(ChildFrameView()))
+    return local_frame_view->ShouldThrottleRendering();
   return false;
 }
 
diff --git a/third_party/blink/renderer/core/layout/layout_tree_as_text.cc b/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
index d548b367..f7eeb29 100644
--- a/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
+++ b/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
@@ -581,8 +581,8 @@
 
   if (o.IsLayoutEmbeddedContent()) {
     FrameView* frame_view = ToLayoutEmbeddedContent(o).ChildFrameView();
-    if (frame_view && frame_view->IsLocalFrameView()) {
-      if (auto* layout_view = ToLocalFrameView(frame_view)->GetLayoutView()) {
+    if (auto* local_frame_view = DynamicTo<LocalFrameView>(frame_view)) {
+      if (auto* layout_view = local_frame_view->GetLayoutView()) {
         layout_view->GetDocument().UpdateStyleAndLayout();
         if (auto* layer = layout_view->Layer()) {
           LayoutTreeAsText::WriteLayers(ts, layer, layer, indent + 1, behavior);
diff --git a/third_party/blink/renderer/core/layout/ng/layout_box_utils.cc b/third_party/blink/renderer/core/layout/ng/layout_box_utils.cc
index abb2c37..9e35a8e 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_box_utils.cc
+++ b/third_party/blink/renderer/core/layout/ng/layout_box_utils.cc
@@ -67,7 +67,8 @@
 }
 
 NGStaticPosition LayoutBoxUtils::ComputeStaticPositionFromLegacy(
-    const LayoutBox& box) {
+    const LayoutBox& box,
+    const NGBoxFragmentBuilder* container_builder) {
   LayoutBoxModelObject* css_container = ToLayoutBoxModelObject(box.Container());
   LayoutBox* container = css_container->IsBox() ? ToLayoutBox(css_container)
                                                 : box.ContainingBlock();
@@ -96,10 +97,10 @@
   Length logical_bottom;
 
   box.ComputeInlineStaticDistance(logical_left, logical_right, &box,
-                                  css_container,
-                                  containing_block_logical_width);
+                                  css_container, containing_block_logical_width,
+                                  container_builder);
   box.ComputeBlockStaticDistance(logical_top, logical_bottom, &box,
-                                 css_container);
+                                 css_container, container_builder);
 
   if (parent_style->IsLeftToRightDirection()) {
     if (!logical_left.IsAuto()) {
@@ -154,7 +155,9 @@
         box.OverrideContainingBlockContentLogicalHeight() +
         border_scrollbar.BlockSum();
   } else {
-    container_border_box_logical_height = container->LogicalHeight();
+    container_border_box_logical_height = container_builder
+                                              ? container_builder->BlockSize()
+                                              : container->LogicalHeight();
   }
 
   // Then convert it to a physical top or left offset. Since we're already
diff --git a/third_party/blink/renderer/core/layout/ng/layout_box_utils.h b/third_party/blink/renderer/core/layout/ng/layout_box_utils.h
index ea94186..afe98d0d 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_box_utils.h
+++ b/third_party/blink/renderer/core/layout/ng/layout_box_utils.h
@@ -11,6 +11,7 @@
 
 class LayoutBox;
 class LayoutBlock;
+class NGBoxFragmentBuilder;
 struct NGStaticPosition;
 
 // This static class should be used for querying information from a |LayoutBox|.
@@ -29,7 +30,9 @@
   // Produces an |NGStaticPosition| for |box| from the layout-tree.
   // |container_builder| is needed as not all information from current NG
   // layout is copied to the layout-tree yet.
-  static NGStaticPosition ComputeStaticPositionFromLegacy(const LayoutBox& box);
+  static NGStaticPosition ComputeStaticPositionFromLegacy(
+      const LayoutBox& box,
+      const NGBoxFragmentBuilder* container_builder = nullptr);
 
   static bool SkipContainingBlockForPercentHeightCalculation(
       const LayoutBlock* cb);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
index 6f4eb40..e75681a 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
@@ -66,16 +66,19 @@
   const NGBlockBreakToken* break_token;
 };
 
+// The entire purpose of this function is to avoid allocating space on the stack
+// for all layout algorithms for each node we lay out. Therefore it must not be
+// inline.
 template <typename Algorithm, typename Callback>
-void CreateAlgorithmAndRun(const NGLayoutAlgorithmParams& params,
-                           Callback callback) {
+NOINLINE void CreateAlgorithmAndRun(const NGLayoutAlgorithmParams& params,
+                                    const Callback& callback) {
   Algorithm algorithm(params.node, params.space, params.break_token);
   callback(&algorithm);
 }
 
 inline void DetermineAlgorithmAndRun(
     const NGLayoutAlgorithmParams& params,
-    std::function<void(NGLayoutAlgorithmOperations*)> callback) {
+    const std::function<void(NGLayoutAlgorithmOperations*)>& callback) {
   const ComputedStyle& style = params.node.Style();
   const LayoutBox& box = *params.node.GetLayoutBox();
   if (box.IsLayoutNGFlexibleBox()) {
@@ -652,8 +655,10 @@
       intrinsic_block_size +=
           PreviouslyUsedBlockSpace(constraint_space, physical_fragment);
     }
-    if (UNLIKELY(block->HasPositionedObjects()))
-      block->LayoutPositionedObjects(/* relayout_children */ false);
+
+#if DCHECK_IS_ON()
+    block->CheckPositionedObjectsNeedLayout();
+#endif
 
     if (UNLIKELY(flow_thread)) {
       UpdateLegacyMultiColumnFlowThread(*this, flow_thread, constraint_space,
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
index 338beab..f171e428 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h"
 
 #include "third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h"
+#include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_block_break_token.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_result.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h"
@@ -50,6 +51,25 @@
                               : child_offset;
         break;
     }
+
+    // We can end up in a case where we need to account for the relative
+    // position of an element to correctly determine the static position of a
+    // descendant. E.g.
+    // <div id="fixed_container">
+    //   <div style="position: relative; top: 10px;">
+    //     <div style="position: fixed;"></div>
+    //   </div>
+    // </div>
+    // TODO(layout-dev): This code should eventually be removed once we handle
+    // relative positioned objects directly in the fragment tree.
+    if (LayoutBox* child_box =
+            ToLayoutBoxOrNull(child.PhysicalFragment()->GetLayoutObject())) {
+      top_left_offset +=
+          NGPhysicalOffset(child_box->OffsetForInFlowPosition())
+              .ConvertToLogical(GetWritingMode(), Direction(), NGPhysicalSize(),
+                                NGPhysicalSize());
+    }
+
     for (const NGOutOfFlowPositionedDescendant& descendant :
          out_of_flow_descendants) {
       oof_positioned_candidates_.push_back(
@@ -109,6 +129,23 @@
   for (wtf_size_t i = 0; i < children_.size(); ++i) {
     if (children_[i]->GetLayoutObject() == child)
       return offsets_[i];
+
+    // TODO(layout-dev): ikilpatrick thinks we may need to traverse
+    // further than the initial line-box children for a nested inline
+    // container. We could not come up with a testcase, it would be
+    // something with split inlines, and nested oof/fixed descendants maybe.
+    if (children_[i]->IsLineBox()) {
+      const auto& line_box_fragment =
+          ToNGPhysicalLineBoxFragment(*children_[i]);
+      for (const auto& line_box_child : line_box_fragment.Children()) {
+        if (line_box_child->GetLayoutObject() == child) {
+          return offsets_[i] + line_box_child.Offset().ConvertToLogical(
+                                   GetWritingMode(), Direction(),
+                                   line_box_fragment.Size(),
+                                   line_box_child->Size());
+        }
+      }
+    }
   }
   NOTREACHED();
   return NGLogicalOffset();
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
index 97de473..eeadd72 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
@@ -6,8 +6,10 @@
 
 #include "third_party/blink/renderer/core/layout/layout_block.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
+#include "third_party/blink/renderer/core/layout/layout_flexible_box.h"
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h"
+#include "third_party/blink/renderer/core/layout/ng/layout_box_utils.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_absolute_utils.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_block_node.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h"
@@ -22,7 +24,8 @@
 namespace blink {
 
 bool IsAnonymousContainer(const LayoutObject* layout_object) {
-  return layout_object->IsAnonymousBlock() && layout_object->IsRelPositioned();
+  return layout_object->IsAnonymousBlock() &&
+         layout_object->CanContainAbsolutePositionObjects();
 }
 
 // When containing block is a split inline, Legacy and NG use different
@@ -69,7 +72,9 @@
     : container_builder_(container_builder),
       contains_absolute_(contains_absolute),
       contains_fixed_(contains_fixed) {
-  if (!container_builder->HasOutOfFlowDescendantCandidates())
+  if (!container_builder->HasOutOfFlowDescendantCandidates() &&
+      !ToLayoutBlock(container_builder_->GetLayoutObject())
+           ->HasPositionedObjects())
     return;
 
   NGPhysicalBoxStrut physical_border_scrollbar =
@@ -98,13 +103,18 @@
       physical_border_scrollbar.left, physical_border_scrollbar.top);
 }
 
-void NGOutOfFlowLayoutPart::Run(LayoutBox* only_layout) {
+void NGOutOfFlowLayoutPart::Run(const LayoutBox* only_layout) {
   Vector<NGOutOfFlowPositionedDescendant> descendant_candidates;
   const LayoutObject* current_container = container_builder_->GetLayoutObject();
 
   container_builder_->GetAndClearOutOfFlowDescendantCandidates(
       &descendant_candidates, current_container);
 
+  if (descendant_candidates.IsEmpty() &&
+      !ToLayoutBlock(container_builder_->GetLayoutObject())
+           ->HasPositionedObjects())
+    return;
+
   // Special case: containing block is a split inline.
   // If current container was generated by a split inline,
   // do not position descendants inside this container. Let its
@@ -147,6 +157,70 @@
     container_builder_->GetAndClearOutOfFlowDescendantCandidates(
         &descendant_candidates, current_container);
   }
+
+  // Gather candidates that weren't present in the OOF candidates list.
+  // This occurs when a candidate is separated from container by a legacy node.
+  // E.g.
+  // <div style="position: relative;">
+  //   <div style="display: flex;">
+  //     <div style="position: absolute;"></div>
+  //   </div>
+  // </div>
+  const LayoutBlock* container_block =
+      ToLayoutBlockOrNull(container_builder_->GetLayoutObject());
+  if (!container_block || only_layout)
+    return;
+  TrackedLayoutBoxListHashSet* legacy_objects =
+      container_block->PositionedObjects();
+  if (!legacy_objects || legacy_objects->size() == placed_objects.size())
+    return;
+  for (LayoutObject* legacy_object : *legacy_objects) {
+    if (placed_objects.Contains(legacy_object))
+      continue;
+
+    // Flex OOF children may have center alignment or similar, and in order
+    // to determine their static position correctly need to have a valid
+    // size first.
+    // We perform a pre-layout to correctly determine the static position.
+    // Copied from LayoutBlock::LayoutPositionedObject
+    LayoutBox* layout_box = ToLayoutBox(legacy_object);
+    // TODO(dgrogan): The NG flexbox implementation doesn't have an
+    // analogous method yet, so abspos children of NG flexboxes that have a
+    // legacy containing block will not be positioned correctly.
+    if (layout_box->Parent()->IsFlexibleBox()) {
+      LayoutFlexibleBox* parent = ToLayoutFlexibleBox(layout_box->Parent());
+      if (parent->SetStaticPositionForPositionedLayout(*layout_box)) {
+        NGOutOfFlowPositionedDescendant descendant((NGBlockNode(layout_box)),
+                                                   NGStaticPosition());
+        NGLogicalOffset offset;
+        LayoutDescendant(descendant, /* only_layout */ nullptr, &offset);
+        parent->SetStaticPositionForPositionedLayout(*layout_box);
+      }
+    }
+
+    NGStaticPosition static_position =
+        LayoutBoxUtils::ComputeStaticPositionFromLegacy(*layout_box,
+                                                        container_builder_);
+
+    LayoutObject* css_container = layout_box->Container();
+    if (IsAnonymousContainer(css_container)) {
+      css_container = GetOOFContainingBlockFromAnonymous(
+          css_container, layout_box->Style()->GetPosition());
+    }
+    container_builder_->AddOutOfFlowLegacyCandidate(
+        NGBlockNode(layout_box), static_position,
+        css_container->IsBox() ? nullptr : css_container);
+  }
+
+  container_builder_->GetAndClearOutOfFlowDescendantCandidates(
+      &descendant_candidates, current_container);
+
+  // We must have at least one new candidate, otherwise we shouldn't have
+  // entered this branch.
+  DCHECK_GT(descendant_candidates.size(), 0u);
+
+  LayoutDescendantCandidates(descendant_candidates, only_layout,
+                             &placed_objects);
 }
 
 NGOutOfFlowLayoutPart::ContainingBlockInfo
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
index b29603ae..133c372 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
@@ -55,7 +55,7 @@
   // will get laid out; any additional ones will be stored as out-of-flow
   // descendants in the builder for use via
   // LayoutResult::OutOfFlowPositionedDescendants.
-  void Run(LayoutBox* only_layout = nullptr);
+  void Run(const LayoutBox* only_layout = nullptr);
 
  private:
   // Information needed to position descendant within a containing block.
diff --git a/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc b/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc
index bc22d43..690516f 100644
--- a/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/main_thread_scrolling_reasons_test.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/picture_layer.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/platform/web_url_loader_mock_factory.h"
@@ -139,7 +140,7 @@
   ASSERT_TRUE(layer);
   EXPECT_TRUE(layer->CcLayer()->GetMainThreadScrollingReasons());
   EXPECT_TRUE(layer->CcLayer()->GetMainThreadScrollingReasons() &
-              MainThreadScrollingReason::kCustomScrollbarScrolling);
+              cc::MainThreadScrollingReason::kCustomScrollbarScrolling);
 
   // remove custom scrollbar class, the scrollbar is expected to scroll on
   // impl thread as it is an overlay scrollbar.
@@ -150,7 +151,7 @@
               : composited_layer_mapping->LayerForVerticalScrollbar();
   EXPECT_FALSE(layer->CcLayer()->GetMainThreadScrollingReasons());
   EXPECT_FALSE(layer->CcLayer()->GetMainThreadScrollingReasons() &
-               MainThreadScrollingReason::kCustomScrollbarScrolling);
+               cc::MainThreadScrollingReason::kCustomScrollbarScrolling);
 }
 
 TEST_P(MainThreadScrollingReasonsTest,
@@ -177,7 +178,7 @@
   ASSERT_TRUE(layout_embedded_content);
 
   LocalFrameView* inner_frame_view =
-      ToLocalFrameView(layout_embedded_content->ChildFrameView());
+      To<LocalFrameView>(layout_embedded_content->ChildFrameView());
   ASSERT_TRUE(inner_frame_view);
 
   auto* inner_layout_view = inner_frame_view->GetLayoutView();
@@ -192,8 +193,9 @@
 
   cc::Layer* cc_scroll_layer = scroll_layer->CcLayer();
   ASSERT_TRUE(cc_scroll_layer->scrollable());
-  ASSERT_TRUE(cc_scroll_layer->GetMainThreadScrollingReasons() &
-              MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
+  ASSERT_TRUE(
+      cc_scroll_layer->GetMainThreadScrollingReasons() &
+      cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
 
   // Remove fixed background-attachment should make the iframe
   // scroll on cc.
@@ -213,8 +215,9 @@
 
   cc_scroll_layer = scroll_layer->CcLayer();
   ASSERT_TRUE(cc_scroll_layer->scrollable());
-  ASSERT_FALSE(cc_scroll_layer->GetMainThreadScrollingReasons() &
-               MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
+  ASSERT_FALSE(
+      cc_scroll_layer->GetMainThreadScrollingReasons() &
+      cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
 
   // Force main frame to scroll on main thread. All its descendants
   // should scroll on main thread as well.
@@ -235,8 +238,9 @@
 
   cc_scroll_layer = scroll_layer->CcLayer();
   ASSERT_TRUE(cc_scroll_layer->scrollable());
-  ASSERT_TRUE(cc_scroll_layer->GetMainThreadScrollingReasons() &
-              MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
+  ASSERT_TRUE(
+      cc_scroll_layer->GetMainThreadScrollingReasons() &
+      cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
 }
 
 // Upon resizing the content size, the main thread scrolling reason
@@ -265,8 +269,9 @@
       ASSERT_NO_EXCEPTION);
   ForceFullCompositingUpdate();
 
-  EXPECT_TRUE(GetViewMainThreadScrollingReasons() &
-              MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
+  EXPECT_TRUE(
+      GetViewMainThreadScrollingReasons() &
+      cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
 
   // The main thread scrolling reason should be reset upon the following change.
   element->setAttribute("style", "", ASSERT_NO_EXCEPTION);
@@ -353,10 +358,10 @@
 class NonCompositedMainThreadScrollingReasonsTest
     : public MainThreadScrollingReasonsTest {
   static const uint32_t kLCDTextRelatedReasons =
-      MainThreadScrollingReason::kHasOpacityAndLCDText |
-      MainThreadScrollingReason::kHasTransformAndLCDText |
-      MainThreadScrollingReason::kBackgroundNotOpaqueInRectAndLCDText |
-      MainThreadScrollingReason::kIsNotStackingContextAndLCDText;
+      cc::MainThreadScrollingReason::kHasOpacityAndLCDText |
+      cc::MainThreadScrollingReason::kHasTransformAndLCDText |
+      cc::MainThreadScrollingReason::kBackgroundNotOpaqueInRectAndLCDText |
+      cc::MainThreadScrollingReason::kIsNotStackingContextAndLCDText;
 
  protected:
   NonCompositedMainThreadScrollingReasonsTest() {
@@ -424,28 +429,28 @@
                          testing::Bool());
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, TransparentTest) {
-  TestNonCompositedReasons("transparent",
-                           MainThreadScrollingReason::kHasOpacityAndLCDText);
+  TestNonCompositedReasons(
+      "transparent", cc::MainThreadScrollingReason::kHasOpacityAndLCDText);
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, TransformTest) {
-  TestNonCompositedReasons("transform",
-                           MainThreadScrollingReason::kHasTransformAndLCDText);
+  TestNonCompositedReasons(
+      "transform", cc::MainThreadScrollingReason::kHasTransformAndLCDText);
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, BackgroundNotOpaqueTest) {
   TestNonCompositedReasons(
       "background-not-opaque",
-      MainThreadScrollingReason::kBackgroundNotOpaqueInRectAndLCDText);
+      cc::MainThreadScrollingReason::kBackgroundNotOpaqueInRectAndLCDText);
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, ClipTest) {
-  TestNonCompositedReasons("clip",
-                           MainThreadScrollingReason::kHasClipRelatedProperty);
+  TestNonCompositedReasons(
+      "clip", cc::MainThreadScrollingReason::kHasClipRelatedProperty);
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, ClipPathTest) {
-  uint32_t clip_reason = MainThreadScrollingReason::kHasClipRelatedProperty;
+  uint32_t clip_reason = cc::MainThreadScrollingReason::kHasClipRelatedProperty;
   GetWebView()->GetSettings()->SetPreferCompositingToLCDTextEnabled(false);
   Document* document = GetFrame()->GetDocument();
   // Test ancestor with ClipPath
@@ -490,13 +495,14 @@
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, LCDTextEnabledTest) {
-  TestNonCompositedReasons("transparent",
-                           MainThreadScrollingReason::kHasOpacityAndLCDText);
+  TestNonCompositedReasons(
+      "transparent", cc::MainThreadScrollingReason::kHasOpacityAndLCDText);
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, BoxShadowTest) {
   TestNonCompositedReasons(
-      "box-shadow", MainThreadScrollingReason::kHasBoxShadowFromNonRootLayer);
+      "box-shadow",
+      cc::MainThreadScrollingReason::kHasBoxShadowFromNonRootLayer);
 }
 
 TEST_P(NonCompositedMainThreadScrollingReasonsTest, StackingContextTest) {
@@ -513,12 +519,12 @@
       ToLayoutBoxModelObject(container->GetLayoutObject())->GetScrollableArea();
   ASSERT_TRUE(scrollable_area);
   EXPECT_TRUE(scrollable_area->GetNonCompositedMainThreadScrollingReasons() &
-              MainThreadScrollingReason::kIsNotStackingContextAndLCDText);
+              cc::MainThreadScrollingReason::kIsNotStackingContextAndLCDText);
 
   GetWebView()->GetSettings()->SetPreferCompositingToLCDTextEnabled(true);
   ForceFullCompositingUpdate();
   EXPECT_FALSE(scrollable_area->GetNonCompositedMainThreadScrollingReasons() &
-               MainThreadScrollingReason::kIsNotStackingContextAndLCDText);
+               cc::MainThreadScrollingReason::kIsNotStackingContextAndLCDText);
   GetWebView()->GetSettings()->SetPreferCompositingToLCDTextEnabled(false);
 
   // Adding "contain: paint" to force a stacking context leads to promotion.
diff --git a/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc b/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc
index b7704eb..51311da 100644
--- a/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc
+++ b/third_party/blink/renderer/core/page/scrolling/root_scroller_controller.cc
@@ -74,13 +74,10 @@
     if (!content_view)
       return nullptr;
 
-    if (!content_view->IsLocalFrameView())
+    auto* frame_view = DynamicTo<LocalFrameView>(content_view);
+    if (!frame_view)
       return nullptr;
 
-    LocalFrameView* frame_view = ToLocalFrameView(content_view);
-
-    DCHECK(frame_view);
-
     return frame_view->LayoutViewport();
   }
 
@@ -345,7 +342,7 @@
 
   if (frame_owner->ContentFrame()->IsLocalFrame()) {
     LocalFrameView* frame_view =
-        ToLocalFrameView(frame_owner->OwnedEmbeddedContentView());
+        To<LocalFrameView>(frame_owner->OwnedEmbeddedContentView());
 
     bool is_root_scroller = &EffectiveRootScroller() == &node;
 
@@ -367,7 +364,7 @@
   DCHECK(document_->GetFrame()->View());
 
   LocalFrameView* child_view =
-      ToLocalFrameView(frame_owner.OwnedEmbeddedContentView());
+      To<LocalFrameView>(frame_owner.OwnedEmbeddedContentView());
 
   if (!child_view)
     return;
diff --git a/third_party/blink/renderer/core/page/scrolling/scroll_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/scroll_metrics_test.cc
index 010f14c7..09c60b3 100644
--- a/third_party/blink/renderer/core/page/scrolling/scroll_metrics_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/scroll_metrics_test.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
 #include "third_party/blink/renderer/core/geometry/dom_rect.h"
@@ -10,7 +11,6 @@
 #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
 #include "third_party/blink/renderer/core/testing/sim/sim_request.h"
 #include "third_party/blink/renderer/core/testing/sim/sim_test.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/platform/testing/histogram_tester.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
@@ -18,12 +18,12 @@
 #define EXPECT_WHEEL_BUCKET(reason, count)     \
   histogram_tester.ExpectBucketCount(          \
       "Renderer4.MainThreadWheelScrollReason", \
-      GetBucketIndex(MainThreadScrollingReason::reason), count);
+      GetBucketIndex(cc::MainThreadScrollingReason::reason), count);
 
 #define EXPECT_TOUCH_BUCKET(reason, count)       \
   histogram_tester.ExpectBucketCount(            \
       "Renderer4.MainThreadGestureScrollReason", \
-      GetBucketIndex(MainThreadScrollingReason::reason), count);
+      GetBucketIndex(cc::MainThreadScrollingReason::reason), count);
 
 #define EXPECT_WHEEL_TOTAL(count)                                            \
   histogram_tester.ExpectTotalCount("Renderer4.MainThreadWheelScrollReason", \
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
index 094291f..44301fb6 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
@@ -30,6 +30,7 @@
 
 #include "build/build_config.h"
 #include "cc/animation/animation_host.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/layer_position_constraint.h"
 #include "cc/layers/painted_overlay_scrollbar_layer.h"
 #include "cc/layers/painted_scrollbar_layer.h"
@@ -75,7 +76,6 @@
 #include "third_party/blink/renderer/core/scroll/scrollbar_layer_delegate.h"
 #include "third_party/blink/renderer/core/scroll/scrollbar_theme.h"
 #include "third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 
 namespace {
@@ -468,7 +468,7 @@
     if (scrollbar.IsCustomScrollbar()) {
       DetachScrollbarLayer(scrollbar_graphics_layer);
       scrollbar_graphics_layer->CcLayer()->AddMainThreadScrollingReasons(
-          MainThreadScrollingReason::kCustomScrollbarScrolling);
+          cc::MainThreadScrollingReason::kCustomScrollbarScrolling);
       scrollbar_graphics_layer->CcLayer()->SetIsScrollbar(true);
       return;
     }
@@ -476,7 +476,7 @@
     // Invalidate custom scrollbar scrolling reason in case a custom
     // scrollbar becomes a non-custom one.
     scrollbar_graphics_layer->CcLayer()->ClearMainThreadScrollingReasons(
-        MainThreadScrollingReason::kCustomScrollbarScrolling);
+        cc::MainThreadScrollingReason::kCustomScrollbarScrolling);
     ScrollbarLayerGroup* scrollbar_layer_group =
         GetScrollbarLayerGroup(scrollable_area, orientation);
     if (!scrollbar_layer_group) {
@@ -999,7 +999,7 @@
       // if there is a running scroll animation.
       uint32_t main_thread_scrolling_reasons_to_clear = ~0u;
       main_thread_scrolling_reasons_to_clear &=
-          ~MainThreadScrollingReason::kHandlingScrollFromMainThread;
+          ~cc::MainThreadScrollingReason::kHandlingScrollFromMainThread;
       scroll_layer->ClearMainThreadScrollingReasons(
           main_thread_scrolling_reasons_to_clear);
       if (visual_viewport_scroll_layer)
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
index f8f237b..2aa9a1d 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
@@ -34,7 +34,6 @@
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/graphics/hit_test_rect.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/platform/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
index 220aa7e1..0d13906 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
@@ -1220,7 +1220,7 @@
   ASSERT_TRUE(layout_embedded_content);
 
   LocalFrameView* inner_frame_view =
-      ToLocalFrameView(layout_embedded_content->ChildFrameView());
+      To<LocalFrameView>(layout_embedded_content->ChildFrameView());
   ASSERT_TRUE(inner_frame_view);
 
   auto* inner_layout_view = inner_frame_view->GetLayoutView();
@@ -1270,7 +1270,7 @@
   ASSERT_TRUE(layout_embedded_content);
 
   LocalFrameView* inner_frame_view =
-      ToLocalFrameView(layout_embedded_content->ChildFrameView());
+      To<LocalFrameView>(layout_embedded_content->ChildFrameView());
   ASSERT_TRUE(inner_frame_view);
 
   auto* inner_layout_view = inner_frame_view->GetLayoutView();
diff --git a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
index d06e52d..49fd422 100644
--- a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
+++ b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
@@ -12,7 +12,6 @@
 #include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
 #include "third_party/blink/renderer/platform/geometry/length_functions.h"
-#include "third_party/blink/renderer/platform/scroll/scroll_snap_data.h"
 
 namespace blink {
 namespace {
diff --git a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
index 17f27d37..2a5fab7 100644
--- a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
+++ b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
@@ -7,10 +7,10 @@
 
 #include "base/macros.h"
 #include "cc/input/scroll_snap_data.h"
+#include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value_mappings.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/scroll/scroll_snap_data.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc
index 98cc98b..1bbe0311 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc
@@ -46,7 +46,8 @@
 
 #include "base/numerics/checked_math.h"
 #include "base/single_thread_task_runner.h"
-#include "cc/input/scroll_snap_data.h"
+#include "cc/input/main_thread_scrolling_reason.h"
+#include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/public/platform/web_scroll_into_view_params.h"
@@ -2285,21 +2286,21 @@
       !background_supports_lcd_text) {
     if (layer->CompositesWithOpacity()) {
       non_composited_main_thread_scrolling_reasons_ |=
-          MainThreadScrollingReason::kHasOpacityAndLCDText;
+          cc::MainThreadScrollingReason::kHasOpacityAndLCDText;
     }
     if (layer->CompositesWithTransform()) {
       non_composited_main_thread_scrolling_reasons_ |=
-          MainThreadScrollingReason::kHasTransformAndLCDText;
+          cc::MainThreadScrollingReason::kHasTransformAndLCDText;
     }
     if (!layer->BackgroundIsKnownToBeOpaqueInRect(
             ToLayoutBox(layer->GetLayoutObject()).PhysicalPaddingBoxRect(),
             true)) {
       non_composited_main_thread_scrolling_reasons_ |=
-          MainThreadScrollingReason::kBackgroundNotOpaqueInRectAndLCDText;
+          cc::MainThreadScrollingReason::kBackgroundNotOpaqueInRectAndLCDText;
     }
     if (!layer->GetLayoutObject().StyleRef().IsStackingContext()) {
       non_composited_main_thread_scrolling_reasons_ |=
-          MainThreadScrollingReason::kIsNotStackingContextAndLCDText;
+          cc::MainThreadScrollingReason::kIsNotStackingContextAndLCDText;
     }
 
     needs_composited_scrolling = false;
@@ -2308,12 +2309,12 @@
   if (layer->GetLayoutObject().HasClip() ||
       layer->HasDescendantWithClipPath() || !!layer->ClipPathAncestor()) {
     non_composited_main_thread_scrolling_reasons_ |=
-        MainThreadScrollingReason::kHasClipRelatedProperty;
+        cc::MainThreadScrollingReason::kHasClipRelatedProperty;
     needs_composited_scrolling = false;
   }
 
   DCHECK(!(non_composited_main_thread_scrolling_reasons_ &
-           ~MainThreadScrollingReason::kNonCompositedReasons));
+           ~cc::MainThreadScrollingReason::kNonCompositedReasons));
   return needs_composited_scrolling;
 }
 
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
index 16cb5d9..1f428ba 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
@@ -5,6 +5,8 @@
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
 
 #include <memory>
+
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/core/animation/scroll_timeline.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
 #include "third_party/blink/renderer/core/frame/link_highlights.h"
@@ -1605,24 +1607,24 @@
   if (auto* scrollable_area = ToLayoutBox(object).GetScrollableArea()) {
     if (scrollable_area->HorizontalScrollbar() &&
         scrollable_area->HorizontalScrollbar()->IsCustomScrollbar()) {
-      reasons |= MainThreadScrollingReason::kCustomScrollbarScrolling;
+      reasons |= cc::MainThreadScrollingReason::kCustomScrollbarScrolling;
     } else if (scrollable_area->VerticalScrollbar() &&
                scrollable_area->VerticalScrollbar()->IsCustomScrollbar()) {
-      reasons |= MainThreadScrollingReason::kCustomScrollbarScrolling;
+      reasons |= cc::MainThreadScrollingReason::kCustomScrollbarScrolling;
     }
   }
 
   if (object.IsLayoutView()) {
     if (object.GetFrameView()->HasBackgroundAttachmentFixedObjects()) {
       reasons |=
-          MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
+          cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
     }
 
     // TODO(pdr): This should apply to all scrollable areas, not just the
     // viewport. This is not a user-visible bug because the threaded scrolling
     // setting is only for testing.
     if (!object.GetFrame()->GetSettings()->GetThreadedScrollingEnabled())
-      reasons |= MainThreadScrollingReason::kThreadedScrollingDisabled;
+      reasons |= cc::MainThreadScrollingReason::kThreadedScrollingDisabled;
 
     // LocalFrameView::HasVisibleSlowRepaintViewportConstrainedObjects depends
     // on compositing (LayoutBoxModelObject::IsSlowRepaintConstrainedObject
@@ -1640,8 +1642,8 @@
           object.StyleRef().VisibleToHitTesting() &&
           object.GetFrameView()
               ->HasVisibleSlowRepaintViewportConstrainedObjects()) {
-        reasons |=
-            MainThreadScrollingReason::kHasNonLayerViewportConstrainedObjects;
+        reasons |= cc::MainThreadScrollingReason::
+            kHasNonLayerViewportConstrainedObjects;
       }
     } else {
       // TODO(pdr): CompositeAfterPaint should use an approach like
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
index ca32653..5b1f7623 100644
--- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
+++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
@@ -457,8 +457,7 @@
     const LayoutEmbeddedContent& layout_embedded_content =
         ToLayoutEmbeddedContent(object);
     FrameView* frame_view = layout_embedded_content.ChildFrameView();
-    if (frame_view && frame_view->IsLocalFrameView()) {
-      LocalFrameView* local_frame_view = ToLocalFrameView(frame_view);
+    if (auto* local_frame_view = DynamicTo<LocalFrameView>(frame_view)) {
       if (context().tree_builder_context) {
         context().tree_builder_context->fragments[0].current.paint_offset +=
             layout_embedded_content.ReplacedContentRect().Location() -
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator.cc b/third_party/blink/renderer/core/scroll/scroll_animator.cc
index fb8b13a..2eeecfa4 100644
--- a/third_party/blink/renderer/core/scroll/scroll_animator.cc
+++ b/third_party/blink/renderer/core/scroll/scroll_animator.cc
@@ -34,13 +34,13 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "cc/animation/scroll_offset_animation_curve.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/picture_layer.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
 #include "third_party/blink/renderer/platform/animation/compositor_keyframe_model.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace blink {
@@ -374,7 +374,7 @@
   if (cc::Layer* scroll_layer =
           ToCcLayer(GetScrollableArea()->LayerForScrolling())) {
     scroll_layer->AddMainThreadScrollingReasons(
-        MainThreadScrollingReason::kHandlingScrollFromMainThread);
+        cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
   }
 }
 
@@ -382,7 +382,7 @@
   if (cc::Layer* scroll_layer =
           ToCcLayer(GetScrollableArea()->LayerForScrolling())) {
     scroll_layer->ClearMainThreadScrollingReasons(
-        MainThreadScrollingReason::kHandlingScrollFromMainThread);
+        cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
   }
 }
 
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area.cc b/third_party/blink/renderer/core/scroll/scrollable_area.cc
index 6d7bb0b..4f7461d 100644
--- a/third_party/blink/renderer/core/scroll/scrollable_area.cc
+++ b/third_party/blink/renderer/core/scroll/scrollable_area.cc
@@ -32,6 +32,7 @@
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
 
 #include "build/build_config.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/picture_layer.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
@@ -45,7 +46,6 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 
 static const int kPixelsPerLineStep = 40;
 static const float kMinFractionToStepWhenPaging = 0.875f;
@@ -590,7 +590,7 @@
     // that doesn't actually cause shouldScrollOnMainThread() to be true.
     // This is confusing and should be cleaned up.
     return !!(reasons &
-              ~MainThreadScrollingReason::kHandlingScrollFromMainThread);
+              ~cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
   }
   return true;
 }
diff --git a/third_party/blink/renderer/core/testing/internals.cc b/third_party/blink/renderer/core/testing/internals.cc
index bdc93cbf..00573b0 100644
--- a/third_party/blink/renderer/core/testing/internals.cc
+++ b/third_party/blink/renderer/core/testing/internals.cc
@@ -872,7 +872,7 @@
     return nullptr;
   if (Page* page = document_->GetPage()) {
     LocalDOMWindow* popup =
-        ToLocalDOMWindow(page->GetChromeClient().PagePopupWindowForTesting());
+        To<LocalDOMWindow>(page->GetChromeClient().PagePopupWindowForTesting());
     if (popup) {
       // We need to make the popup same origin so web tests can access it.
       popup->document()->UpdateSecurityOrigin(
diff --git a/third_party/blink/renderer/core/workers/worker_reporting_proxy.h b/third_party/blink/renderer/core/workers/worker_reporting_proxy.h
index 84264654..6362342a 100644
--- a/third_party/blink/renderer/core/workers/worker_reporting_proxy.h
+++ b/third_party/blink/renderer/core/workers/worker_reporting_proxy.h
@@ -80,11 +80,11 @@
   // WorkerThread::InitializeOnWorkerThread(). Only invoked when the script was
   // loaded on the worker thread, i.e., via InstalledScriptsManager rather than
   // via ResourceLoader. Called before WillEvaluateClassicScript().
-  virtual void DidLoadInstalledScript() {}
+  virtual void DidLoadClassicScript() {}
 
-  // Invoked when it's failed to load the worker's main script from
-  // InstalledScriptsManager.
-  virtual void DidFailToLoadInstalledClassicScript() {}
+  // Invoked when it's failed to load the worker's main script on the worker
+  // thread.
+  virtual void DidFailToLoadClassicScript() {}
 
   // Invoked on success to fetch the worker's main classic/module script from
   // network. This is not called when the script is loaded from
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
index e70cfc2..5eb0716 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -102,7 +102,7 @@
       document_(document),
       modification_count_(0),
       validation_message_axid_(0),
-      relation_cache_(new AXRelationCache(this)),
+      relation_cache_(std::make_unique<AXRelationCache>(this)),
       notification_post_timer_(
           document.GetTaskRunner(TaskType::kInternalDefault),
           this,
diff --git a/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h b/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h
index 6c3af3d9..78d1ef0 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h
@@ -8,6 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
@@ -15,6 +16,8 @@
 
 // This class should only be used from inside the accessibility directory.
 class AXRelationCache {
+  USING_FAST_MALLOC(AXRelationCache);
+
  public:
   explicit AXRelationCache(AXObjectCacheImpl*);
   virtual ~AXRelationCache();
diff --git a/third_party/blink/renderer/modules/battery/battery_status.h b/third_party/blink/renderer/modules/battery/battery_status.h
index d793af82..0f7922f 100644
--- a/third_party/blink/renderer/modules/battery/battery_status.h
+++ b/third_party/blink/renderer/modules/battery/battery_status.h
@@ -6,6 +6,7 @@
 #define BLINK_MODULES_BATTERY_BATTERY_STATUS_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 #include <cmath>
@@ -15,6 +16,8 @@
 
 // Simple struct to hold the battery status.  This class is copyable.
 class MODULES_EXPORT BatteryStatus final {
+  DISALLOW_NEW();
+
  public:
   BatteryStatus()
       : charging_(true),
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h
index 42175f4a..4523196d 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h
@@ -6,11 +6,14 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_BLUETOOTH_BLUETOOTH_REMOTE_GATT_UTILS_H_
 
 #include "third_party/blink/renderer/core/typed_arrays/dom_data_view.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
 
 class BluetoothRemoteGATTUtils final {
+  STATIC_ONLY(BluetoothRemoteGATTUtils);
+
  public:
   static DOMDataView* ConvertWTFVectorToDataView(const WTF::Vector<uint8_t>&);
 };
diff --git a/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h b/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h
index 6892b992..4875499 100644
--- a/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h
+++ b/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h
@@ -7,11 +7,14 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 
 namespace blink {
 
 // Off-heap wrapper that holds a strong reference to a ScriptPromiseResolver.
 class ScopedPromiseResolver {
+  USING_FAST_MALLOC(ScopedPromiseResolver);
+
  public:
   explicit ScopedPromiseResolver(ScriptPromiseResolver* resolver);
 
diff --git a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h
index b5954b0..301c339 100644
--- a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h
+++ b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h
@@ -7,6 +7,7 @@
 
 #include "third_party/blink/public/platform/modules/document_metadata/copyless_paste.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 
 namespace blink {
 
@@ -16,6 +17,8 @@
 // Copyless Paste feature. The extraction must be done after the document
 // has finished parsing.
 class MODULES_EXPORT CopylessPasteExtractor final {
+  STATIC_ONLY(CopylessPasteExtractor);
+
  public:
   static mojom::document_metadata::blink::WebPagePtr extract(const Document&);
 };
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h b/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h
index 57b1e56..81156ff 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_ENCRYPTEDMEDIA_MEDIA_KEYS_GET_STATUS_FOR_POLICY_H_
 
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 
 namespace blink {
 
@@ -14,6 +15,8 @@
 class ScriptState;
 
 class MediaKeysGetStatusForPolicy {
+  STATIC_ONLY(MediaKeysGetStatusForPolicy);
+
  public:
   static ScriptPromise getStatusForPolicy(ScriptState*,
                                           MediaKeys&,
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
index 6009398..6dacaaad 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
@@ -199,7 +199,7 @@
   settings->SetAllowRunningOfInsecureContent(false);
 
   // If we were asked to wait for debugger then now is a good time to do that.
-  worker_context_client_->WorkerReadyForInspection();
+  worker_context_client_->WorkerReadyForInspectionOnMainThread();
   if (worker_start_data_.wait_for_debugger_mode ==
       WebEmbeddedWorkerStartData::kWaitForDebugger) {
     waiting_for_debugger_state_ = kWaitingForDebugger;
@@ -215,14 +215,14 @@
   asked_to_terminate_ = true;
   if (!shadow_page_->WasInitialized()) {
     // This deletes 'this'.
-    worker_context_client_->WorkerContextFailedToStart();
+    worker_context_client_->WorkerContextFailedToStartOnMainThread();
     return;
   }
   if (main_script_loader_) {
     main_script_loader_->Cancel();
     main_script_loader_ = nullptr;
     // This deletes 'this'.
-    worker_context_client_->WorkerContextFailedToStart();
+    worker_context_client_->WorkerContextFailedToStartOnMainThread();
     return;
   }
   if (!worker_thread_) {
@@ -232,7 +232,7 @@
                WebEmbeddedWorkerStartData::kWaitForDebugger ||
            pause_after_download_state_ == kIsPausedAfterDownload);
     // This deletes 'this'.
-    worker_context_client_->WorkerContextFailedToStart();
+    worker_context_client_->WorkerContextFailedToStartOnMainThread();
     return;
   }
   worker_thread_->Terminate();
@@ -297,7 +297,7 @@
 
   DCHECK(worker_context_client_);
   shadow_page_->DocumentLoader()->SetServiceWorkerNetworkProvider(
-      worker_context_client_->CreateServiceWorkerNetworkProvider());
+      worker_context_client_->CreateServiceWorkerNetworkProviderOnMainThread());
 
   // If this is an installed service worker, we can start the worker thread
   // now. The script will be streamed in by the installed scripts manager in
@@ -354,7 +354,7 @@
     TerminateWorkerContext();
     return;
   }
-  worker_context_client_->WorkerScriptLoaded();
+  worker_context_client_->WorkerScriptLoadedOnMainThread();
 
   if (pause_after_download_state_ == kDoPauseAfterDownload) {
     pause_after_download_state_ = kIsPausedAfterDownload;
@@ -387,7 +387,7 @@
 
   // |web_worker_fetch_context| is null in some unit tests.
   scoped_refptr<WebWorkerFetchContext> web_worker_fetch_context =
-      worker_context_client_->CreateServiceWorkerFetchContext(
+      worker_context_client_->CreateServiceWorkerFetchContextOnMainThread(
           shadow_page_->DocumentLoader()->GetServiceWorkerNetworkProvider());
 
   std::unique_ptr<WorkerSettings> worker_settings =
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_key.h b/third_party/blink/renderer/modules/indexeddb/idb_key.h
index 2bfada4..960be7c 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_key.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_key.h
@@ -35,6 +35,7 @@
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
@@ -49,6 +50,8 @@
 // primary keys and index keys. For this reason, keys are represented using a
 // dedicated data type that fully exposes its contents to the backing store.
 class MODULES_EXPORT IDBKey {
+  USING_FAST_MALLOC(IDBKey);
+
  public:
   typedef Vector<std::unique_ptr<IDBKey>> KeyArray;
 
diff --git a/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h b/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h
index 8d7b07f6..85a6e27 100644
--- a/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h
+++ b/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h
@@ -13,6 +13,7 @@
 #include "third_party/blink/renderer/modules/indexeddb/indexed_db_database_callbacks_impl.h"
 #include "third_party/blink/renderer/modules/indexeddb/web_idb_callbacks.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/platform/wtf/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/thread_specific.h"
 
@@ -22,6 +23,8 @@
 // Handle the indexed db related communication for this context thread - the
 // main thread and each worker thread have their own copies.
 class MODULES_EXPORT IndexedDBDispatcher {
+  DISALLOW_NEW();
+
  public:
   static void RegisterCursor(WebIDBCursorImpl* cursor);
   static void UnregisterCursor(WebIDBCursorImpl* cursor);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc
index f09d9ff..4a329d75 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc
@@ -73,11 +73,13 @@
 
 RTCDtlsTransport::RTCDtlsTransport(
     ExecutionContext* context,
-    rtc::scoped_refptr<webrtc::DtlsTransportInterface> native_transport)
+    rtc::scoped_refptr<webrtc::DtlsTransportInterface> native_transport,
+    RTCIceTransport* ice_transport)
     : ContextClient(context),
       current_state_(webrtc::DtlsTransportState::kNew),
       native_transport_(native_transport),
-      proxy_(CreateProxy(context, native_transport, this)) {}
+      proxy_(CreateProxy(context, native_transport, this)),
+      ice_transport_(ice_transport) {}
 
 RTCDtlsTransport::~RTCDtlsTransport() {}
 
@@ -91,9 +93,7 @@
 }
 
 RTCIceTransport* RTCDtlsTransport::iceTransport() const {
-  // TODO(crbug.com/907849): Implement returning an IceTransport
-  NOTIMPLEMENTED();
-  return nullptr;
+  return ice_transport_;
 }
 
 webrtc::DtlsTransportInterface* RTCDtlsTransport::native_transport() {
@@ -115,6 +115,9 @@
   DCHECK(current_state_.state() != webrtc::DtlsTransportState::kClosed);
   current_state_ = info;
   DispatchEvent(*Event::Create(event_type_names::kStatechange));
+  // Make sure the ICE transport is also closed. This must happen prior
+  // to garbage collection.
+  ice_transport_->stop();
 }
 
 const AtomicString& RTCDtlsTransport::InterfaceName() const {
@@ -135,6 +138,7 @@
 
 void RTCDtlsTransport::Trace(Visitor* visitor) {
   visitor->Trace(remote_certificates_);
+  visitor->Trace(ice_transport_);
   EventTargetWithInlineData::Trace(visitor);
   ContextClient::Trace(visitor);
 }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h
index c8093e5..0792abb4 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h
@@ -41,7 +41,8 @@
  public:
   RTCDtlsTransport(
       ExecutionContext* context,
-      rtc::scoped_refptr<webrtc::DtlsTransportInterface> native_context);
+      rtc::scoped_refptr<webrtc::DtlsTransportInterface> native_context,
+      RTCIceTransport* ice_transport);
   ~RTCDtlsTransport() override;
 
   // rtc_dtls_transport.idl
@@ -73,6 +74,7 @@
   HeapVector<Member<DOMArrayBuffer>> remote_certificates_;
   rtc::scoped_refptr<webrtc::DtlsTransportInterface> native_transport_;
   std::unique_ptr<DtlsTransportProxy> proxy_;
+  Member<RTCIceTransport> ice_transport_;
 };
 
 }  // namespace blink
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 132466f..2c8d9fe 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -91,6 +91,7 @@
 #include "third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_error_util.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_ice_server.h"
+#include "third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_offer_options.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h"
@@ -2436,13 +2437,31 @@
     return transport;
   }
   RTCDtlsTransport* transport = MakeGarbageCollected<RTCDtlsTransport>(
-      GetExecutionContext(), native_transport);
+      GetExecutionContext(), native_transport,
+      CreateOrUpdateIceTransport(native_transport->ice_transport()));
   dtls_transports_by_native_transport_.insert(native_transport.get(),
                                               transport);
   transport->ChangeState(information);
   return transport;
 }
 
+RTCIceTransport* RTCPeerConnection::CreateOrUpdateIceTransport(
+    rtc::scoped_refptr<webrtc::IceTransportInterface> ice_transport) {
+  if (!ice_transport.get()) {
+    return nullptr;
+  }
+  auto transport_locator =
+      ice_transports_by_native_transport_.find(ice_transport);
+  if (transport_locator != ice_transports_by_native_transport_.end()) {
+    return transport_locator->value;
+  }
+  // TODO(crbug.com/907849): Create a functional ICE transport object.
+  // This is a dummy.
+  RTCIceTransport* transport = RTCIceTransport::Create(GetExecutionContext());
+  ice_transports_by_native_transport_.insert(ice_transport.get(), transport);
+  return transport;
+}
+
 RTCDTMFSender* RTCPeerConnection::createDTMFSender(
     MediaStreamTrack* track,
     ExceptionState& exception_state) {
@@ -3061,6 +3080,7 @@
   visitor->Trace(transceivers_);
   visitor->Trace(scheduled_events_);
   visitor->Trace(dtls_transports_by_native_transport_);
+  visitor->Trace(ice_transports_by_native_transport_);
   EventTargetWithInlineData::Trace(visitor);
   ContextLifecycleObserver::Trace(visitor);
   MediaStreamObserver::Trace(visitor);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
index a4d24017..9a0dbb0 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
@@ -67,6 +67,7 @@
 class RTCDataChannel;
 class RTCDataChannelInit;
 class RTCIceCandidateInitOrRTCIceCandidate;
+class RTCIceTransport;
 class RTCOfferOptions;
 class RTCPeerConnectionTest;
 class RTCRtpReceiver;
@@ -410,6 +411,11 @@
       rtc::scoped_refptr<webrtc::DtlsTransportInterface>,
       const webrtc::DtlsTransportInformation& info);
 
+  // Creates or updates the RTCIceTransport object corresponding to the given
+  // webrtc::IceTransportInterface object.
+  RTCIceTransport* CreateOrUpdateIceTransport(
+      rtc::scoped_refptr<webrtc::IceTransportInterface>);
+
   // Update the |receiver->streams()| to the streams indicated by |stream_ids|,
   // adding to |remove_list| and |add_list| accordingly.
   // https://w3c.github.io/webrtc-pc/#set-associated-remote-streams
@@ -492,6 +498,9 @@
   // when they are no longer in use.
   HeapHashMap<webrtc::DtlsTransportInterface*, WeakMember<RTCDtlsTransport>>
       dtls_transports_by_native_transport_;
+  // The same kind of map for webrtc::IceTransports.
+  HeapHashMap<webrtc::IceTransportInterface*, WeakMember<RTCIceTransport>>
+      ice_transports_by_native_transport_;
 
   std::unique_ptr<WebRTCPeerConnectionHandler> peer_handler_;
 
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 bf9e17b..a3e6285 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
@@ -319,7 +319,7 @@
     std::unique_ptr<InstalledScriptsManager::ScriptData> script_data =
         installed_scripts_manager->GetScriptData(script_url);
     if (!script_data) {
-      ReportingProxy().DidFailToLoadInstalledClassicScript();
+      ReportingProxy().DidFailToLoadClassicScript();
       // This will eventually initiate worker thread termination. See
       // ServiceWorkerGlobalScopeProxy::DidCloseWorkerGlobalScope() for details.
       close();
@@ -345,7 +345,7 @@
         script_data->CreateOriginTrialTokens();
     OriginTrialContext::AddTokens(this, origin_trial_tokens.get());
 
-    ReportingProxy().DidLoadInstalledScript();
+    ReportingProxy().DidLoadClassicScript();
   }
 
   WorkerGlobalScope::EvaluateClassicScriptInternal(script_url, source_code,
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
index 356ed7ca..cecbc65 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
@@ -655,17 +655,17 @@
       this, "success", false);
 }
 
-void ServiceWorkerGlobalScopeProxy::DidLoadInstalledScript() {
+void ServiceWorkerGlobalScopeProxy::DidLoadClassicScript() {
   DCHECK_CALLED_ON_VALID_THREAD(worker_thread_checker_);
-  Client().InstalledWorkerScriptLoaded();
+  Client().WorkerScriptLoadedOnWorkerThread();
 }
 
-void ServiceWorkerGlobalScopeProxy::DidFailToLoadInstalledClassicScript() {
+void ServiceWorkerGlobalScopeProxy::DidFailToLoadClassicScript() {
   DCHECK_CALLED_ON_VALID_THREAD(worker_thread_checker_);
   // Tell ServiceWorkerContextClient about the failure. The generic
   // WorkerContextFailedToStart() wouldn't make sense because
   // WorkerContextStarted() was already called.
-  Client().FailedToLoadInstalledClassicScript();
+  Client().FailedToLoadClassicScript();
 }
 
 void ServiceWorkerGlobalScopeProxy::DidFailToFetchModuleScript() {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
index 232aa39d..aa127233 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
@@ -159,8 +159,8 @@
   void DidCreateWorkerGlobalScope(WorkerOrWorkletGlobalScope*) override;
   void DidInitializeWorkerContext() override;
   void DidFailToInitializeWorkerContext() override;
-  void DidLoadInstalledScript() override;
-  void DidFailToLoadInstalledClassicScript() override;
+  void DidLoadClassicScript() override;
+  void DidFailToLoadClassicScript() override;
   void DidFailToFetchModuleScript() override;
   void WillEvaluateClassicScript(size_t script_size,
                                  size_t cached_metadata_size) override;
diff --git a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
index ea6671d2..1ac5565e 100644
--- a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
@@ -67,9 +67,9 @@
   MockServiceWorkerContextClient() = default;
   ~MockServiceWorkerContextClient() override = default;
 
-  MOCK_METHOD0(WorkerReadyForInspection, void());
-  MOCK_METHOD0(WorkerContextFailedToStart, void());
-  MOCK_METHOD0(WorkerScriptLoaded, void());
+  MOCK_METHOD0(WorkerReadyForInspectionOnMainThread, void());
+  MOCK_METHOD0(WorkerContextFailedToStartOnMainThread, void());
+  MOCK_METHOD0(WorkerScriptLoadedOnMainThread, void());
 
   void WorkerContextStarted(WebServiceWorkerContextProxy* proxy) override {
     // In production code, ReadyToEvaluateScript() is called when
@@ -82,7 +82,7 @@
   }
 
   std::unique_ptr<WebServiceWorkerNetworkProvider>
-  CreateServiceWorkerNetworkProvider() override {
+  CreateServiceWorkerNetworkProviderOnMainThread() override {
     return std::make_unique<FakeServiceWorkerNetworkProvider>();
   }
   void WorkerContextDestroyed() override { termination_event_.Signal(); }
@@ -163,30 +163,30 @@
 }  // namespace
 
 TEST_F(WebEmbeddedWorkerImplTest, TerminateSoonAfterStart) {
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   worker_->StartWorkerContext(start_data_);
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(1);
   worker_->TerminateWorkerContext();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 }
 
 TEST_F(WebEmbeddedWorkerImplTest, TerminateWhileWaitingForDebugger) {
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   start_data_.wait_for_debugger_mode =
       WebEmbeddedWorkerStartData::kWaitForDebugger;
   worker_->StartWorkerContext(start_data_);
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(1);
   worker_->TerminateWorkerContext();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 }
 
 TEST_F(WebEmbeddedWorkerImplTest, TerminateWhileLoadingScript) {
   // Load the shadow page.
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   EXPECT_CALL(*mock_installed_scripts_manager_,
               IsScriptInstalled(KURL(start_data_.script_url)))
       .Times(testing::AtLeast(1))
@@ -196,7 +196,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Terminate before loading the script.
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(1);
   worker_->TerminateWorkerContext();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 }
@@ -205,7 +205,7 @@
   // Load the shadow page.
   start_data_.pause_after_download_mode =
       WebEmbeddedWorkerStartData::kPauseAfterDownload;
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   EXPECT_CALL(*mock_installed_scripts_manager_,
               IsScriptInstalled(KURL(start_data_.script_url)))
       .Times(testing::AtLeast(1))
@@ -215,12 +215,12 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Load the script.
-  EXPECT_CALL(*mock_client_, WorkerScriptLoaded()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerScriptLoadedOnMainThread()).Times(1);
   Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 
   // Terminate before resuming after download.
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(1);
   worker_->TerminateWorkerContext();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 }
@@ -236,7 +236,7 @@
   Platform::Current()->GetURLLoaderMockFactory()->RegisterErrorURL(
       script_url, response, error);
   start_data_.script_url = script_url;
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   EXPECT_CALL(*mock_installed_scripts_manager_,
               IsScriptInstalled(KURL(start_data_.script_url)))
       .Times(testing::AtLeast(1))
@@ -246,8 +246,8 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Load the script.
-  EXPECT_CALL(*mock_client_, WorkerScriptLoaded()).Times(0);
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerScriptLoadedOnMainThread()).Times(0);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(1);
   Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 }
@@ -261,7 +261,7 @@
 #endif
 TEST_F(WebEmbeddedWorkerImplTest, MAYBE_DontPauseAfterDownload) {
   // Load the shadow page.
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   EXPECT_CALL(*mock_installed_scripts_manager_,
               IsScriptInstalled(KURL(start_data_.script_url)))
       .Times(testing::AtLeast(1))
@@ -271,7 +271,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Load the script.
-  EXPECT_CALL(*mock_client_, WorkerScriptLoaded()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerScriptLoadedOnMainThread()).Times(1);
   // This is called on the worker thread.
   EXPECT_CALL(*mock_installed_scripts_manager_,
               IsScriptInstalled(KURL(start_data_.script_url)))
@@ -283,7 +283,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Terminate the running worker thread.
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(0);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(0);
   worker_->TerminateWorkerContext();
   mock_client_->WaitUntilThreadTermination();
 }
@@ -297,7 +297,7 @@
 #endif
 TEST_F(WebEmbeddedWorkerImplTest, MAYBE_PauseAfterDownload) {
   // Load the shadow page.
-  EXPECT_CALL(*mock_client_, WorkerReadyForInspection()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerReadyForInspectionOnMainThread()).Times(1);
   EXPECT_CALL(*mock_installed_scripts_manager_,
               IsScriptInstalled(KURL(start_data_.script_url)))
       .Times(testing::AtLeast(1))
@@ -309,7 +309,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Load the script.
-  EXPECT_CALL(*mock_client_, WorkerScriptLoaded()).Times(1);
+  EXPECT_CALL(*mock_client_, WorkerScriptLoadedOnMainThread()).Times(1);
   Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
   testing::Mock::VerifyAndClearExpectations(mock_client_);
 
@@ -325,7 +325,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_installed_scripts_manager_);
 
   // Terminate the running worker thread.
-  EXPECT_CALL(*mock_client_, WorkerContextFailedToStart()).Times(0);
+  EXPECT_CALL(*mock_client_, WorkerContextFailedToStartOnMainThread()).Times(0);
   worker_->TerminateWorkerContext();
   mock_client_->WaitUntilThreadTermination();
 }
diff --git a/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.cc b/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.cc
index 7f6ac62..8c19fb7 100644
--- a/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.cc
+++ b/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.cc
@@ -48,10 +48,11 @@
   // and the Window interface is accessible cross origin. The long-term fix is
   // to make the Internals object per-context, so |window| doesn't need to
   // passed as an argument.
-  if (!window->IsLocalDOMWindow())
+  auto* local_dom_window = DynamicTo<LocalDOMWindow>(window);
+  if (!local_dom_window)
     return;
   SpeechSynthesis* synthesis = DOMWindowSpeechSynthesis::speechSynthesis(
-      script_state, ToLocalDOMWindow(*window));
+      script_state, *local_dom_window);
   if (!synthesis)
     return;
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc
index e47baa4..3f7d3ad 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_access_initializer.cc
@@ -38,14 +38,15 @@
 
 ScriptPromise MIDIAccessInitializer::Start() {
   ScriptPromise promise = this->Promise();
-  accessor_ = MIDIAccessor::Create(this);
 
   // See https://bit.ly/2S0zRAS for task types.
+  scoped_refptr<base::SingleThreadTaskRunner> task_runner =
+      GetExecutionContext()->GetTaskRunner(TaskType::kMiscPlatformAPI);
+  accessor_ = std::make_unique<MIDIAccessor>(this, task_runner);
+
   ConnectToPermissionService(
       GetExecutionContext(),
-      mojo::MakeRequest(
-          &permission_service_,
-          GetExecutionContext()->GetTaskRunner(TaskType::kMiscPlatformAPI)));
+      mojo::MakeRequest(&permission_service_, std::move(task_runner)));
 
   Document& doc = To<Document>(*GetExecutionContext());
   permission_service_->RequestPermission(
diff --git a/third_party/blink/renderer/modules/webmidi/midi_accessor.cc b/third_party/blink/renderer/modules/webmidi/midi_accessor.cc
index 0cdd945d..0ba848b 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_accessor.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_accessor.cc
@@ -31,6 +31,7 @@
 #include "third_party/blink/renderer/modules/webmidi/midi_accessor.h"
 
 #include <memory>
+#include <utility>
 
 #include "base/memory/ptr_util.h"
 #include "third_party/blink/public/platform/platform.h"
@@ -43,30 +44,24 @@
 
 namespace blink {
 
-// Factory method
-std::unique_ptr<MIDIAccessor> MIDIAccessor::Create(MIDIAccessorClient* client) {
-  return base::WrapUnique(new MIDIAccessor(client));
-}
-
-MIDIAccessor::MIDIAccessor(MIDIAccessorClient* client) : client_(client) {
+MIDIAccessor::MIDIAccessor(
+    MIDIAccessorClient* client,
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+    : client_(client), task_runner_(std::move(task_runner)) {
   DCHECK(client);
 }
 
-MIDIAccessor::~MIDIAccessor() {
-  if (called_start_session_)
-    MIDIDispatcher::Instance().RemoveAccessor(this);
-}
+MIDIAccessor::~MIDIAccessor() = default;
 
 void MIDIAccessor::StartSession() {
-  MIDIDispatcher::Instance().AddAccessor(this);
-  called_start_session_ = true;
+  dispatcher_ = std::make_unique<MIDIDispatcher>(std::move(task_runner_), this);
 }
 
 void MIDIAccessor::SendMIDIData(unsigned port_index,
                                 const unsigned char* data,
                                 wtf_size_t length,
                                 base::TimeTicks time_stamp) {
-  MIDIDispatcher::Instance().SendMidiData(port_index, data, length, time_stamp);
+  dispatcher_->SendMidiData(port_index, data, length, time_stamp);
 }
 
 void MIDIAccessor::DidAddInputPort(const String& id,
diff --git a/third_party/blink/renderer/modules/webmidi/midi_accessor.h b/third_party/blink/renderer/modules/webmidi/midi_accessor.h
index dd8e950..f5c8401 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_accessor.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_accessor.h
@@ -47,7 +47,8 @@
   USING_FAST_MALLOC(MIDIAccessor);
 
  public:
-  static std::unique_ptr<MIDIAccessor> Create(MIDIAccessorClient*);
+  MIDIAccessor(MIDIAccessorClient* client,
+               scoped_refptr<base::SingleThreadTaskRunner> task_runner);
   ~MIDIAccessor();
 
   void StartSession();
@@ -81,10 +82,10 @@
                           base::TimeTicks time_stamp);
 
  private:
-  explicit MIDIAccessor(MIDIAccessorClient*);
 
   MIDIAccessorClient* client_;
-  bool called_start_session_ = false;
+  const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+  std::unique_ptr<MIDIDispatcher> dispatcher_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webmidi/midi_dispatcher.cc b/third_party/blink/renderer/modules/webmidi/midi_dispatcher.cc
index 065760ea..8bf79c5 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_dispatcher.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_dispatcher.cc
@@ -4,6 +4,8 @@
 
 #include "third_party/blink/renderer/modules/webmidi/midi_dispatcher.h"
 
+#include <utility>
+
 #include "third_party/blink/public/platform/interface_provider.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/web_string.h"
@@ -21,55 +23,25 @@
 static const size_t kMaxUnacknowledgedBytesSent = 10 * 1024 * 1024;  // 10 MB.
 }  // namespace
 
-MIDIDispatcher::MIDIDispatcher() : binding_(this) {}
+MIDIDispatcher::MIDIDispatcher(
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner,
+    MIDIAccessor* accessor)
+    : accessor_(accessor),
+      binding_(this),
+      task_runner_(std::move(task_runner)) {
+  TRACE_EVENT0("midi", "MIDIDispatcher::MIDIDispatcher");
+  DCHECK(accessor_);
+  midi::mojom::blink::MidiSessionClientPtr client_ptr;
+  binding_.Bind(mojo::MakeRequest(&client_ptr, task_runner_), task_runner_);
+
+  Platform::Current()->GetInterfaceProvider()->GetInterface(
+      mojo::MakeRequest(&midi_session_provider_, task_runner_));
+  midi_session_provider_->StartSession(mojo::MakeRequest(&midi_session_),
+                                       std::move(client_ptr));
+}
 
 MIDIDispatcher::~MIDIDispatcher() = default;
 
-MIDIDispatcher& MIDIDispatcher::Instance() {
-  DEFINE_STATIC_LOCAL(Persistent<MIDIDispatcher>, midi_dispatcher,
-                      (MakeGarbageCollected<MIDIDispatcher>()));
-  return *midi_dispatcher;
-}
-
-void MIDIDispatcher::Trace(Visitor* visitor) {}
-
-void MIDIDispatcher::AddAccessor(MIDIAccessor* accessor) {
-  TRACE_EVENT0("midi", "MIDIDispatcher::AddAccessor");
-  accessors_waiting_session_queue_.push_back(accessor);
-  if (session_result_ != midi::mojom::Result::NOT_INITIALIZED) {
-    SessionStarted(session_result_);
-  } else if (accessors_waiting_session_queue_.size() == 1u) {
-    midi::mojom::blink::MidiSessionClientPtr client_ptr;
-    binding_.Bind(mojo::MakeRequest(&client_ptr));
-    GetMidiSessionProvider().StartSession(mojo::MakeRequest(&midi_session_),
-                                          std::move(client_ptr));
-  }
-}
-
-void MIDIDispatcher::RemoveAccessor(MIDIAccessor* accessor) {
-  // |accessor| should either be in |accessors_| or
-  // |accessors_waiting_session_queue_|, but not both.
-  DCHECK_NE(accessors_.Contains(accessor),
-            accessors_waiting_session_queue_.Contains(accessor))
-      << "RemoveAccessor call was not balanced with AddAccessor call";
-  auto** it = std::find(accessors_.begin(), accessors_.end(), accessor);
-  if (it != accessors_.end()) {
-    accessors_.erase(it);
-  } else {
-    accessors_waiting_session_queue_.erase(
-        std::find(accessors_waiting_session_queue_.begin(),
-                  accessors_waiting_session_queue_.end(), accessor));
-  }
-  if (accessors_.IsEmpty() && accessors_waiting_session_queue_.IsEmpty()) {
-    session_result_ = midi::mojom::Result::NOT_INITIALIZED;
-    inputs_.clear();
-    outputs_.clear();
-    midi_session_.reset();
-    midi_session_provider_.reset();
-    binding_.Close();
-  }
-}
-
 void MIDIDispatcher::SendMidiData(uint32_t port,
                                   const uint8_t* data,
                                   wtf_size_t length,
@@ -83,25 +55,22 @@
   unacknowledged_bytes_sent_ += length;
   Vector<uint8_t> v;
   v.Append(data, length);
-  GetMidiSession().SendData(port, std::move(v), timestamp);
+  midi_session_->SendData(port, std::move(v), timestamp);
 }
 
 void MIDIDispatcher::AddInputPort(midi::mojom::blink::PortInfoPtr info) {
   inputs_.push_back(*info);
-  // Iterating over a copy of |accessors_| as callback could result in
-  // |accessors_| being modified. Applies to for-loops later in this file as
-  // well.
-  for (auto* accessor : AccessorList(accessors_)) {
-    accessor->DidAddInputPort(info->id, info->manufacturer, info->name,
-                              info->version, info->state);
+  if (initialized_) {
+    accessor_->DidAddInputPort(info->id, info->manufacturer, info->name,
+                               info->version, info->state);
   }
 }
 
 void MIDIDispatcher::AddOutputPort(midi::mojom::blink::PortInfoPtr info) {
   outputs_.push_back(*info);
-  for (auto* accessor : AccessorList(accessors_)) {
-    accessor->DidAddOutputPort(info->id, info->manufacturer, info->name,
-                               info->version, info->state);
+  if (initialized_) {
+    accessor_->DidAddOutputPort(info->id, info->manufacturer, info->name,
+                                info->version, info->state);
   }
 }
 
@@ -110,8 +79,8 @@
   if (inputs_[port].state == state)
     return;
   inputs_[port].state = state;
-  for (auto* accessor : AccessorList(accessors_))
-    accessor->DidSetInputPortState(port, state);
+  if (initialized_)
+    accessor_->DidSetInputPortState(port, state);
 }
 
 void MIDIDispatcher::SetOutputPortState(uint32_t port,
@@ -119,34 +88,29 @@
   if (outputs_[port].state == state)
     return;
   outputs_[port].state = state;
-  for (auto* accessor : AccessorList(accessors_))
-    accessor->DidSetOutputPortState(port, state);
+  if (initialized_)
+    accessor_->DidSetOutputPortState(port, state);
 }
 
 void MIDIDispatcher::SessionStarted(midi::mojom::blink::Result result) {
   TRACE_EVENT0("midi", "MIDIDispatcher::OnSessionStarted");
-  session_result_ = result;
 
-  // A for-loop using iterators does not work because |accessor| may touch
-  // |accessors_waiting_session_queue_| in callbacks.
-  while (!accessors_waiting_session_queue_.IsEmpty()) {
-    auto* accessor = accessors_waiting_session_queue_.back();
-    accessors_waiting_session_queue_.pop_back();
-    if (result == midi::mojom::blink::Result::OK) {
-      // Add the accessor's input and output ports.
-      for (const auto& info : inputs_) {
-        accessor->DidAddInputPort(info.id, info.manufacturer, info.name,
-                                  info.version, info.state);
-      }
+  DCHECK(!initialized_);
+  initialized_ = true;
 
-      for (const auto& info : outputs_) {
-        accessor->DidAddOutputPort(info.id, info.manufacturer, info.name,
-                                   info.version, info.state);
-      }
+  if (result == midi::mojom::blink::Result::OK) {
+    // Add the accessor's input and output ports.
+    for (const auto& info : inputs_) {
+      accessor_->DidAddInputPort(info.id, info.manufacturer, info.name,
+                                 info.version, info.state);
     }
-    accessor->DidStartSession(result);
-    accessors_.push_back(accessor);
+
+    for (const auto& info : outputs_) {
+      accessor_->DidAddOutputPort(info.id, info.manufacturer, info.name,
+                                  info.version, info.state);
+    }
   }
+  accessor_->DidStartSession(result);
 }
 
 void MIDIDispatcher::AcknowledgeSentData(uint32_t bytes_sent) {
@@ -161,22 +125,8 @@
   TRACE_EVENT0("midi", "MIDIDispatcher::DataReceived");
   DCHECK(!data.IsEmpty());
 
-  for (auto* accessor : AccessorList(accessors_))
-    accessor->DidReceiveMIDIData(port, &data[0], data.size(), timestamp);
-}
-
-midi::mojom::blink::MidiSessionProvider&
-MIDIDispatcher::GetMidiSessionProvider() {
-  if (!midi_session_provider_) {
-    Platform::Current()->GetInterfaceProvider()->GetInterface(
-        mojo::MakeRequest(&midi_session_provider_));
-  }
-  return *midi_session_provider_;
-}
-
-midi::mojom::blink::MidiSession& MIDIDispatcher::GetMidiSession() {
-  DCHECK(midi_session_);
-  return *midi_session_;
+  if (initialized_)
+    accessor_->DidReceiveMIDIData(port, &data[0], data.size(), timestamp);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h b/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h
index 30be342..84d18a3 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_dispatcher.h
@@ -14,17 +14,12 @@
 
 class MIDIAccessor;
 
-class MIDIDispatcher : public GarbageCollectedFinalized<MIDIDispatcher>,
-                       public midi::mojom::blink::MidiSessionClient {
+class MIDIDispatcher : public midi::mojom::blink::MidiSessionClient {
  public:
-  static MIDIDispatcher& Instance();
-  MIDIDispatcher();
+  MIDIDispatcher(scoped_refptr<base::SingleThreadTaskRunner> task_runner,
+                 MIDIAccessor* accessor);
   ~MIDIDispatcher() override;
 
-  void Trace(Visitor* visitor);
-
-  void AddAccessor(MIDIAccessor* accessor);
-  void RemoveAccessor(MIDIAccessor* accessor);
   void SendMidiData(uint32_t port,
                     const uint8_t* data,
                     wtf_size_t length,
@@ -45,31 +40,25 @@
                     base::TimeTicks timestamp) override;
 
  private:
-  midi::mojom::blink::MidiSessionProvider& GetMidiSessionProvider();
-  midi::mojom::blink::MidiSession& GetMidiSession();
+  // Keeps track of a MIDI accessor. As a MIDIAccessor owns a MIDIDispatcher, a
+  // raw pointer is fine.
+  MIDIAccessor* const accessor_;
 
-  // Keeps track of all MIDI accessors.
-  typedef Vector<MIDIAccessor*> AccessorList;
-  AccessorList accessors_;
-
-  // Represents accessors that are waiting for a session being open.
-  typedef Vector<MIDIAccessor*> AccessorQueue;
-  AccessorQueue accessors_waiting_session_queue_;
-
-  // Represents a result on starting a session.
-  midi::mojom::blink::Result session_result_ =
-      midi::mojom::Result::NOT_INITIALIZED;
+  bool initialized_ = false;
 
   // Holds MidiPortInfoList for input ports and output ports.
   Vector<midi::mojom::blink::PortInfo> inputs_;
   Vector<midi::mojom::blink::PortInfo> outputs_;
 
+  // TODO(toyoshim): Consider to have a per-process limit.
   size_t unacknowledged_bytes_sent_ = 0u;
 
-  midi::mojom::blink::MidiSessionProviderPtr midi_session_provider_;
   midi::mojom::blink::MidiSessionPtr midi_session_;
 
   mojo::Binding<midi::mojom::blink::MidiSessionClient> binding_;
+  midi::mojom::blink::MidiSessionProviderPtr midi_session_provider_;
+
+  scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 89bf1b27..4d63eba0 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1249,11 +1249,9 @@
     "probe/platform_trace_events_agent.cc",
     "probe/platform_trace_events_agent.h",
     "resolution_units.h",
-    "scroll/main_thread_scrolling_reason.h",
     "scroll/overscroll_behavior.h",
     "scroll/scroll_alignment.cc",
     "scroll/scroll_alignment.h",
-    "scroll/scroll_snap_data.h",
     "scroll/scroll_types.h",
     "shared_buffer.cc",
     "shared_buffer.h",
diff --git a/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.cc b/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.cc
index 5b55814a..03f615b3 100644
--- a/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.cc
+++ b/third_party/blink/renderer/platform/bindings/script_wrappable_marking_visitor.cc
@@ -29,7 +29,6 @@
   // This CHECK ensures that wrapper tracing is not started from scopes
   // that forbid GC execution, e.g., constructors.
   CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
   PerformCleanup();
 
   CHECK(!tracing_in_progress_);
@@ -43,14 +42,12 @@
 
 void ScriptWrappableMarkingVisitor::EnterFinalPause(EmbedderStackState) {
   CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
   ThreadState::Current()->DisableWrapperTracingBarrier();
   ActiveScriptWrappableBase::TraceActiveScriptWrappables(isolate(), this);
 }
 
 void ScriptWrappableMarkingVisitor::TraceEpilogue() {
   CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
   DCHECK(marking_deque_.IsEmpty());
 #if DCHECK_IS_ON()
   ScriptWrappableVisitorVerifier verifier(ThreadState::Current());
@@ -180,7 +177,6 @@
   // perform a GC. This makes sure that TraceTraits and friends find
   // themselves in a well-defined environment, e.g., properly set up vtables.
   CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
   CHECK(tracing_in_progress_);
   TimeTicks deadline =
       TimeTicks() + TimeDelta::FromMillisecondsD(deadline_in_ms);
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
index 9473a92c..f9598402 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
@@ -9,6 +9,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/test/test_simple_task_runner.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/layers/layer.h"
 #include "cc/test/fake_impl_task_runner_provider.h"
 #include "cc/test/fake_layer_tree_frame_sink.h"
@@ -300,7 +301,8 @@
 
 INSTANTIATE_LAYER_LIST_TEST_SUITE_P(PaintArtifactCompositorTest);
 
-const auto kNotScrollingOnMain = MainThreadScrollingReason::kNotScrollingOnMain;
+const auto kNotScrollingOnMain =
+    cc::MainThreadScrollingReason::kNotScrollingOnMain;
 
 TEST_P(PaintArtifactCompositorTest, EmptyPaintArtifact) {
   Update(PaintArtifact::Empty());
@@ -1005,7 +1007,7 @@
     const ScrollPaintPropertyNode& parent,
     const ScrollPaintPropertyNode::State& state_arg,
     MainThreadScrollingReasons main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNotScrollingOnMain,
+        cc::MainThreadScrollingReason::kNotScrollingOnMain,
     CompositorElementId scroll_element_id = CompositorElementId()) {
   ScrollPaintPropertyNode::State state = state_arg;
   state.main_thread_scrolling_reasons = main_thread_scrolling_reasons;
@@ -1135,7 +1137,7 @@
   CompositorElementId scroll_element_id_a = ScrollElementId(2);
   auto scroll_a = CreateScroll(
       ScrollPaintPropertyNode::Root(), ScrollState1(),
-      MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects,
+      cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects,
       scroll_element_id_a);
   auto scroll_translation_a = CreateScrollTranslation(
       t0(), 11, 13, *scroll_a, CompositingReason::kLayerForScrollingContents);
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
index ff8472bd..d3d3e98 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
@@ -331,17 +331,16 @@
       &LowestCommonAncestor(target_clip, *current_clip_).Unalias();
   while (current_clip_ != lca_clip) {
     if (!state_stack_.size() || state_stack_.back().type != StateEntry::kClip) {
+      // This bug is known to happen in pre-CompositeAfterPaint due to some
+      // clip-escaping corner cases that are very difficult to fix in legacy
+      // architecture. In CompositeAfterPaint this should never happen.
 #if DCHECK_IS_ON()
       DLOG(ERROR) << "Error: Chunk has a clip that escaped its layer's or "
-                     "effect's clip."
-                  << "\ntarget_clip:\n"
+                  << "effect's clip.\ntarget_clip:\n"
                   << target_clip.ToTreeString().Utf8().data()
                   << "current_clip_:\n"
                   << current_clip_->ToTreeString().Utf8().data();
 #endif
-      // This bug is known to happen in SPv1 due to some clip-escaping corner
-      // cases that are very difficult to fix in legacy architecture.
-      // In CAP this should never happen.
       if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled())
         NOTREACHED();
       break;
@@ -436,15 +435,21 @@
   while (current_effect_ != &lca_effect) {
     // This EndClips() and the later EndEffect() pop to the parent effect.
     EndClips();
+    // This bug is known to happen in pre-CompositeAfterPaint due to some
+    // effect-escaping corner cases that are very difficult to fix in legacy
+    // architecture. In CompositeAfterPaint this should never happen.
+    if (!state_stack_.size()) {
 #if DCHECK_IS_ON()
-    DCHECK(state_stack_.size())
-        << "Error: Chunk has an effect that escapes layer's effect.\n"
-        << "target_effect:\n"
-        << target_effect.ToTreeString().Utf8().data() << "current_effect_:\n"
-        << current_effect_->ToTreeString().Utf8().data();
+      DLOG(ERROR) << "Error: Chunk has an effect that escapes layer's effect.\n"
+                  << "target_effect:\n"
+                  << target_effect.ToTreeString().Utf8().data()
+                  << "current_effect_:\n"
+                  << current_effect_->ToTreeString().Utf8().data();
 #endif
-    if (!state_stack_.size())
-      break;
+      if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled())
+        NOTREACHED();
+      return;
+    }
     EndEffect();
   }
 
diff --git a/third_party/blink/renderer/platform/graphics/graphics_layer.cc b/third_party/blink/renderer/platform/graphics/graphics_layer.cc
index a3e0f56..2c3200c 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_layer.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_layer.cc
@@ -58,7 +58,6 @@
 #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h"
 #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
-#include "third_party/blink/renderer/platform/scroll/scroll_snap_data.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
@@ -705,7 +704,7 @@
   CcLayer()->Set3dSortingContextId(context);
 
   if (contents_layer_)
-    CcLayer()->Set3dSortingContextId(rendering_context3d_);
+    contents_layer_->Set3dSortingContextId(rendering_context3d_);
 }
 
 bool GraphicsLayer::MasksToBounds() const {
diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.cc b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.cc
index 906bf2bf4..9ed88ce 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.cc
@@ -47,10 +47,10 @@
             : "vertical");
   }
   if (state_.main_thread_scrolling_reasons) {
-    json->SetString(
-        "mainThreadReasons",
-        MainThreadScrollingReason::AsText(state_.main_thread_scrolling_reasons)
-            .c_str());
+    json->SetString("mainThreadReasons",
+                    cc::MainThreadScrollingReason::AsText(
+                        state_.main_thread_scrolling_reasons)
+                        .c_str());
   }
   if (state_.scrolls_inner_viewport)
     json->SetString("scrollsInnerViewport", "true");
diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
index 1fdf708f..5f4b615 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_SCROLL_PAINT_PROPERTY_NODE_H_
 
 #include "base/optional.h"
+#include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/input/scroll_snap_data.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
@@ -13,9 +14,7 @@
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_property_node.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h"
 #include "third_party/blink/renderer/platform/scroll/overscroll_behavior.h"
-#include "third_party/blink/renderer/platform/scroll/scroll_snap_data.h"
 
 namespace blink {
 
@@ -47,7 +46,7 @@
     bool scrolls_outer_viewport = false;
     bool max_scroll_offset_affected_by_page_scale = false;
     MainThreadScrollingReasons main_thread_scrolling_reasons =
-        MainThreadScrollingReason::kNotScrollingOnMain;
+        cc::MainThreadScrollingReason::kNotScrollingOnMain;
     // The scrolling element id is stored directly on the scroll node and not
     // on the associated TransformPaintPropertyNode used for scroll offset.
     CompositorElementId compositor_element_id;
@@ -139,13 +138,13 @@
   // Main thread scrolling reason for the threaded scrolling disabled setting.
   bool ThreadedScrollingDisabled() const {
     return state_.main_thread_scrolling_reasons &
-           MainThreadScrollingReason::kThreadedScrollingDisabled;
+           cc::MainThreadScrollingReason::kThreadedScrollingDisabled;
   }
 
   // Main thread scrolling reason for background attachment fixed descendants.
   bool HasBackgroundAttachmentFixedDescendants() const {
     return state_.main_thread_scrolling_reasons &
-           MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
+           cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects;
   }
 
   const CompositorElementId& GetCompositorElementId() const {
diff --git a/third_party/blink/renderer/platform/heap/BUILD.gn b/third_party/blink/renderer/platform/heap/BUILD.gn
index 197d649..ed62cd53 100644
--- a/third_party/blink/renderer/platform/heap/BUILD.gn
+++ b/third_party/blink/renderer/platform/heap/BUILD.gn
@@ -75,6 +75,7 @@
     "stack_frame_depth.h",
     "thread_state.cc",
     "thread_state.h",
+    "thread_state_scopes.h",
     "threading_traits.h",
     "trace_traits.h",
     "unified_heap_controller.cc",
diff --git a/third_party/blink/renderer/platform/heap/heap.cc b/third_party/blink/renderer/platform/heap/heap.cc
index cf507ab..ad950a9 100644
--- a/third_party/blink/renderer/platform/heap/heap.cc
+++ b/third_party/blink/renderer/platform/heap/heap.cc
@@ -44,7 +44,7 @@
 #include "third_party/blink/renderer/platform/heap/marking_visitor.h"
 #include "third_party/blink/renderer/platform/heap/page_memory.h"
 #include "third_party/blink/renderer/platform/heap/page_pool.h"
-#include "third_party/blink/renderer/platform/heap/thread_state.h"
+#include "third_party/blink/renderer/platform/heap/thread_state_scopes.h"
 #include "third_party/blink/renderer/platform/histogram.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/web_memory_allocator_dump.h"
diff --git a/third_party/blink/renderer/platform/heap/heap_allocator.h b/third_party/blink/renderer/platform/heap/heap_allocator.h
index 01d96002..b18be98 100644
--- a/third_party/blink/renderer/platform/heap/heap_allocator.h
+++ b/third_party/blink/renderer/platform/heap/heap_allocator.h
@@ -10,6 +10,7 @@
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/heap_buildflags.h"
 #include "third_party/blink/renderer/platform/heap/marking_visitor.h"
+#include "third_party/blink/renderer/platform/heap/thread_state_scopes.h"
 #include "third_party/blink/renderer/platform/heap/trace_traits.h"
 #include "third_party/blink/renderer/platform/wtf/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
diff --git a/third_party/blink/renderer/platform/heap/thread_state.cc b/third_party/blink/renderer/platform/heap/thread_state.cc
index 05e8673..7c278159 100644
--- a/third_party/blink/renderer/platform/heap/thread_state.cc
+++ b/third_party/blink/renderer/platform/heap/thread_state.cc
@@ -53,6 +53,7 @@
 #include "third_party/blink/renderer/platform/heap/marking_visitor.h"
 #include "third_party/blink/renderer/platform/heap/page_pool.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
+#include "third_party/blink/renderer/platform/heap/thread_state_scopes.h"
 #include "third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
 #include "third_party/blink/renderer/platform/histogram.h"
@@ -171,22 +172,13 @@
       weak_persistent_region_(std::make_unique<PersistentRegion>()),
       start_of_stack_(reinterpret_cast<intptr_t*>(WTF::GetStackStart())),
       end_of_stack_(reinterpret_cast<intptr_t*>(WTF::GetStackStart())),
-      sweep_forbidden_(false),
-      no_allocation_count_(0),
-      gc_forbidden_count_(0),
-      mixins_being_constructed_count_(0),
-      object_resurrection_forbidden_(false),
-      in_atomic_pause_(false),
       gc_state_(kNoGCScheduled),
       gc_phase_(GCPhase::kNone),
       reason_for_scheduled_gc_(BlinkGC::GCReason::kMaxValue),
-      should_optimize_for_load_time_(false),
       isolate_(nullptr),
       trace_dom_wrappers_(nullptr),
       invalidate_dead_objects_in_wrappers_marking_deque_(nullptr),
       perform_cleanup_(nullptr),
-      wrapper_tracing_(false),
-      incremental_marking_(false),
 #if defined(ADDRESS_SANITIZER)
       asan_fake_stack_(__asan_get_current_fake_stack()),
 #endif
diff --git a/third_party/blink/renderer/platform/heap/thread_state.h b/third_party/blink/renderer/platform/heap/thread_state.h
index d716997..a045e5c 100644
--- a/third_party/blink/renderer/platform/heap/thread_state.h
+++ b/third_party/blink/renderer/platform/heap/thread_state.h
@@ -167,56 +167,12 @@
     kSweeping,
   };
 
-  // The NoAllocationScope class is used in debug mode to catch unwanted
-  // allocations. E.g. allocations during GC.
-  class NoAllocationScope final {
-    STACK_ALLOCATED();
-
-   public:
-    explicit NoAllocationScope(ThreadState* state) : state_(state) {
-      state_->EnterNoAllocationScope();
-    }
-    ~NoAllocationScope() { state_->LeaveNoAllocationScope(); }
-
-   private:
-    ThreadState* state_;
-  };
-
-  class SweepForbiddenScope final {
-    STACK_ALLOCATED();
-
-   public:
-    explicit SweepForbiddenScope(ThreadState* state) : state_(state) {
-      DCHECK(!state_->sweep_forbidden_);
-      state_->sweep_forbidden_ = true;
-    }
-    ~SweepForbiddenScope() {
-      DCHECK(state_->sweep_forbidden_);
-      state_->sweep_forbidden_ = false;
-    }
-
-   private:
-    ThreadState* state_;
-  };
-
-  // Used to denote when access to unmarked objects is allowed but we shouldn't
-  // ressurect it by making new references (e.g. during weak processing and pre
-  // finalizer).
-  class ObjectResurrectionForbiddenScope final {
-    STACK_ALLOCATED();
-
-   public:
-    explicit ObjectResurrectionForbiddenScope(ThreadState* state)
-        : state_(state) {
-      state_->EnterObjectResurrectionForbiddenScope();
-    }
-    ~ObjectResurrectionForbiddenScope() {
-      state_->LeaveObjectResurrectionForbiddenScope();
-    }
-
-   private:
-    ThreadState* state_;
-  };
+  class AtomicPauseScope;
+  class GCForbiddenScope;
+  class MainThreadGCForbiddenScope;
+  class NoAllocationScope;
+  class ObjectResurrectionForbiddenScope;
+  class SweepForbiddenScope;
 
   // Returns true if some thread (possibly the current thread) may be doing
   // incremental marking. If false is returned, the *current* thread is
@@ -326,21 +282,12 @@
   }
   void EnterNoAllocationScope() { no_allocation_count_++; }
   void LeaveNoAllocationScope() { no_allocation_count_--; }
-  bool IsWrapperTracingForbidden() { return IsMixinInConstruction(); }
-  bool IsGCForbidden() const {
-    return gc_forbidden_count_ || IsMixinInConstruction();
-  }
+  bool IsGCForbidden() const { return gc_forbidden_count_; }
   void EnterGCForbiddenScope() { gc_forbidden_count_++; }
   void LeaveGCForbiddenScope() {
     DCHECK_GT(gc_forbidden_count_, 0u);
     gc_forbidden_count_--;
   }
-  bool IsMixinInConstruction() const { return mixins_being_constructed_count_; }
-  void EnterMixinConstructionScope() { mixins_being_constructed_count_++; }
-  void LeaveMixinConstructionScope() {
-    DCHECK_GT(mixins_being_constructed_count_, 0u);
-    mixins_being_constructed_count_--;
-  }
   bool SweepForbidden() const { return sweep_forbidden_; }
   bool IsObjectResurrectionForbidden() const {
     return object_resurrection_forbidden_;
@@ -375,49 +322,6 @@
   bool IsIncrementalMarking() const { return incremental_marking_; }
   void SetIncrementalMarking(bool value) { incremental_marking_ = value; }
 
-  class MainThreadGCForbiddenScope final {
-    STACK_ALLOCATED();
-
-   public:
-    MainThreadGCForbiddenScope()
-        : thread_state_(ThreadState::MainThreadState()) {
-      thread_state_->EnterGCForbiddenScope();
-    }
-    ~MainThreadGCForbiddenScope() { thread_state_->LeaveGCForbiddenScope(); }
-
-   private:
-    ThreadState* const thread_state_;
-  };
-
-  class GCForbiddenScope final {
-    STACK_ALLOCATED();
-
-   public:
-    explicit GCForbiddenScope(ThreadState* thread_state)
-        : thread_state_(thread_state) {
-      thread_state_->EnterGCForbiddenScope();
-    }
-    ~GCForbiddenScope() { thread_state_->LeaveGCForbiddenScope(); }
-
-   private:
-    ThreadState* const thread_state_;
-  };
-
-  // Used to mark when we are in an atomic pause for GC.
-  class AtomicPauseScope final {
-   public:
-    explicit AtomicPauseScope(ThreadState* thread_state)
-        : thread_state_(thread_state), gc_forbidden_scope(thread_state) {
-      thread_state_->EnterAtomicPause();
-    }
-    ~AtomicPauseScope() { thread_state_->LeaveAtomicPause(); }
-
-   private:
-    ThreadState* const thread_state_;
-    ScriptForbiddenScope script_forbidden_scope;
-    GCForbiddenScope gc_forbidden_scope;
-  };
-
   void FlushHeapDoesNotContainCacheIfNeeded();
 
   void SafePoint(BlinkGC::StackState);
@@ -543,6 +447,16 @@
   // Same semantic as |incremental_marking_flag_|.
   static AtomicEntryFlag wrapper_tracing_flag_;
 
+  static WTF::ThreadSpecific<ThreadState*>* thread_specific_;
+
+  // We can't create a static member of type ThreadState here because it will
+  // introduce global constructor and destructor. We would like to manage
+  // lifetime of the ThreadState attached to the main thread explicitly instead
+  // and still use normal constructor and destructor for the ThreadState class.
+  // For this we reserve static storage for the main ThreadState and lazily
+  // construct ThreadState in it using placement new.
+  static uint8_t main_thread_state_storage_[];
+
   ThreadState();
   ~ThreadState() override;
 
@@ -630,9 +544,6 @@
 
   void ReportMemoryToV8();
 
-
-  friend class BlinkGCObserver;
-
   // Adds the given observer to the ThreadState's observer list. This doesn't
   // take ownership of the argument. The argument must not be null. The argument
   // must not be registered before calling this.
@@ -643,17 +554,6 @@
   // The argument must be registered before calling this.
   void RemoveObserver(BlinkGCObserver*);
 
-  static WTF::ThreadSpecific<ThreadState*>* thread_specific_;
-
-  // We can't create a static member of type ThreadState here
-  // because it will introduce global constructor and destructor.
-  // We would like to manage lifetime of the ThreadState attached
-  // to the main thread explicitly instead and still use normal
-  // constructor and destructor for the ThreadState class.
-  // For this we reserve static storage for the main ThreadState
-  // and lazily construct ThreadState in it using placement new.
-  static uint8_t main_thread_state_storage_[];
-
   std::unique_ptr<ThreadHeap> heap_;
   base::PlatformThreadId thread_;
   std::unique_ptr<PersistentRegion> persistent_region_;
@@ -661,12 +561,14 @@
   intptr_t* start_of_stack_;
   intptr_t* end_of_stack_;
 
-  bool sweep_forbidden_;
-  size_t no_allocation_count_;
-  size_t gc_forbidden_count_;
-  size_t mixins_being_constructed_count_;
-  bool object_resurrection_forbidden_;
-  bool in_atomic_pause_;
+  bool object_resurrection_forbidden_ = false;
+  bool in_atomic_pause_ = false;
+  bool sweep_forbidden_ = false;
+  bool wrapper_tracing_ = false;
+  bool incremental_marking_ = false;
+  bool should_optimize_for_load_time_ = false;
+  size_t no_allocation_count_ = 0;
+  size_t gc_forbidden_count_ = 0;
 
   TimeDelta next_incremental_marking_step_duration_;
   TimeDelta previous_incremental_marking_time_left_;
@@ -675,8 +577,6 @@
   GCPhase gc_phase_;
   BlinkGC::GCReason reason_for_scheduled_gc_;
 
-  bool should_optimize_for_load_time_;
-
   using PreFinalizerCallback = bool (*)(void*);
   using PreFinalizer = std::pair<void*, PreFinalizerCallback>;
 
@@ -689,8 +589,6 @@
   void (*trace_dom_wrappers_)(v8::Isolate*, Visitor*);
   void (*invalidate_dead_objects_in_wrappers_marking_deque_)(v8::Isolate*);
   void (*perform_cleanup_)(v8::Isolate*);
-  bool wrapper_tracing_;
-  bool incremental_marking_;
 
 #if defined(ADDRESS_SANITIZER)
   void* asan_fake_stack_;
@@ -721,7 +619,7 @@
   };
   GCData current_gc_data_;
 
-  // Needs to set up visitor for testing purposes.
+  friend class BlinkGCObserver;
   friend class incremental_marking_test::IncrementalMarkingScope;
   friend class incremental_marking_test::IncrementalMarkingTestDriver;
   template <typename T>
diff --git a/third_party/blink/renderer/platform/heap/thread_state_scheduling_test.cc b/third_party/blink/renderer/platform/heap/thread_state_scheduling_test.cc
index a4818fd..e1119d5 100644
--- a/third_party/blink/renderer/platform/heap/thread_state_scheduling_test.cc
+++ b/third_party/blink/renderer/platform/heap/thread_state_scheduling_test.cc
@@ -4,7 +4,7 @@
 
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/platform/heap/heap_test_utilities.h"
-#include "third_party/blink/renderer/platform/heap/thread_state.h"
+#include "third_party/blink/renderer/platform/heap/thread_state_scopes.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/thread_state_scopes.h b/third_party/blink/renderer/platform/heap/thread_state_scopes.h
new file mode 100644
index 0000000..32332521
--- /dev/null
+++ b/third_party/blink/renderer/platform/heap/thread_state_scopes.h
@@ -0,0 +1,110 @@
+// 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_PLATFORM_HEAP_THREAD_STATE_SCOPES_H_
+#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREAD_STATE_SCOPES_H_
+
+#include "third_party/blink/renderer/platform/heap/thread_state.h"
+
+namespace blink {
+
+// The NoAllocationScope class is used in debug mode to catch unwanted
+// allocations. E.g. allocations during GC.
+class ThreadState::NoAllocationScope final {
+  STACK_ALLOCATED();
+  DISALLOW_COPY_AND_ASSIGN(NoAllocationScope);
+
+ public:
+  explicit NoAllocationScope(ThreadState* state) : state_(state) {
+    state_->EnterNoAllocationScope();
+  }
+  ~NoAllocationScope() { state_->LeaveNoAllocationScope(); }
+
+ private:
+  ThreadState* const state_;
+};
+
+class ThreadState::SweepForbiddenScope final {
+  STACK_ALLOCATED();
+  DISALLOW_COPY_AND_ASSIGN(SweepForbiddenScope);
+
+ public:
+  explicit SweepForbiddenScope(ThreadState* state) : state_(state) {
+    DCHECK(!state_->sweep_forbidden_);
+    state_->sweep_forbidden_ = true;
+  }
+  ~SweepForbiddenScope() {
+    DCHECK(state_->sweep_forbidden_);
+    state_->sweep_forbidden_ = false;
+  }
+
+ private:
+  ThreadState* const state_;
+};
+
+// Used to denote when access to unmarked objects is allowed but we shouldn't
+// resurrect it by making new references (e.g. during weak processing and pre
+// finalizer).
+class ThreadState::ObjectResurrectionForbiddenScope final {
+  STACK_ALLOCATED();
+  DISALLOW_COPY_AND_ASSIGN(ObjectResurrectionForbiddenScope);
+
+ public:
+  explicit ObjectResurrectionForbiddenScope(ThreadState* state)
+      : state_(state) {
+    state_->EnterObjectResurrectionForbiddenScope();
+  }
+  ~ObjectResurrectionForbiddenScope() {
+    state_->LeaveObjectResurrectionForbiddenScope();
+  }
+
+ private:
+  ThreadState* const state_;
+};
+
+class ThreadState::MainThreadGCForbiddenScope final {
+  STACK_ALLOCATED();
+
+ public:
+  MainThreadGCForbiddenScope() : thread_state_(ThreadState::MainThreadState()) {
+    thread_state_->EnterGCForbiddenScope();
+  }
+  ~MainThreadGCForbiddenScope() { thread_state_->LeaveGCForbiddenScope(); }
+
+ private:
+  ThreadState* const thread_state_;
+};
+
+class ThreadState::GCForbiddenScope final {
+  STACK_ALLOCATED();
+
+ public:
+  explicit GCForbiddenScope(ThreadState* thread_state)
+      : thread_state_(thread_state) {
+    thread_state_->EnterGCForbiddenScope();
+  }
+  ~GCForbiddenScope() { thread_state_->LeaveGCForbiddenScope(); }
+
+ private:
+  ThreadState* const thread_state_;
+};
+
+// Used to mark when we are in an atomic pause for GC.
+class ThreadState::AtomicPauseScope final {
+ public:
+  explicit AtomicPauseScope(ThreadState* thread_state)
+      : thread_state_(thread_state), gc_forbidden_scope(thread_state) {
+    thread_state_->EnterAtomicPause();
+  }
+  ~AtomicPauseScope() { thread_state_->LeaveAtomicPause(); }
+
+ private:
+  ThreadState* const thread_state_;
+  ScriptForbiddenScope script_forbidden_scope;
+  GCForbiddenScope gc_forbidden_scope;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREAD_STATE_SCOPES_H_
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 8192c207e..eb359bc 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -276,6 +276,10 @@
       status: "experimental",
     },
     {
+      name: "CSSCalcAsInt",
+      status: "test",
+    },
+    {
       name: "CSSFocusVisible",
       status: "experimental",
     },
diff --git a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc
index 76af09c..72ab7d8 100644
--- a/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/worker/worker_thread_unittest.cc
@@ -119,12 +119,7 @@
   completion.Wait();
 }
 
-#if defined(OS_LINUX)
-#define MAYBE_TestTaskExecutedBeforeThreadDeletion DISABLED_TestTaskExecutedBeforeThreadDeletion
-#else
-#define MAYBE_TestTaskExecutedBeforeThreadDeletion TestTaskExecutedBeforeThreadDeletion
-#endif
-TEST_F(WorkerThreadTest, MAYBE_TestTaskExecutedBeforeThreadDeletion) {
+TEST_F(WorkerThreadTest, TestTaskExecutedBeforeThreadDeletion) {
   MockTask task;
   base::WaitableEvent completion(
       base::WaitableEvent::ResetPolicy::AUTOMATIC,
diff --git a/third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h b/third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h
deleted file mode 100644
index 9b813d5..0000000
--- a/third_party/blink/renderer/platform/scroll/main_thread_scrolling_reason.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2015 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_PLATFORM_SCROLL_MAIN_THREAD_SCROLLING_REASON_H_
-#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCROLL_MAIN_THREAD_SCROLLING_REASON_H_
-
-#include "cc/input/main_thread_scrolling_reason.h"
-
-namespace blink {
-
-// A wrapper around cc's structure to expose it to core.
-struct MainThreadScrollingReason : public cc::MainThreadScrollingReason {};
-
-}  // namespace blink
-
-#endif
diff --git a/third_party/blink/renderer/platform/scroll/scroll_snap_data.h b/third_party/blink/renderer/platform/scroll/scroll_snap_data.h
deleted file mode 100644
index bd99828..0000000
--- a/third_party/blink/renderer/platform/scroll/scroll_snap_data.h
+++ /dev/null
@@ -1,22 +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.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCROLL_SCROLL_SNAP_DATA_H_
-#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCROLL_SCROLL_SNAP_DATA_H_
-
-#include "cc/input/scroll_snap_data.h"
-#include "cc/input/snap_fling_controller.h"
-#include "cc/input/snap_selection_strategy.h"
-
-// This file defines classes and structs used in SnapCoordinator.h
-
-namespace blink {
-
-using SearchAxis = cc::SearchAxis;
-using SnapFlingController = cc::SnapFlingController;
-using SnapFlingClient = cc::SnapFlingClient;
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCROLL_SCROLL_SNAP_DATA_H_
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 51a23a9..540df34 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
@@ -203,6 +203,7 @@
 
             # Selection bounds.
             'cc::LayerSelection',
+            'cc::LayerSelectionBound',
             'gfx::SelectionBound',
 
             # cc::Layers.
@@ -232,6 +233,7 @@
             'cc::AnimationHost',
 
             # Scrolling
+            'cc::MainThreadScrollingReason',
             'cc::ScrollSnapAlign',
             'cc::ScrollSnapType',
             'cc::ScrollOffsetAnimationCurve',
@@ -240,6 +242,8 @@
             'cc::SnapAreaData',
             'cc::SnapAxis',
             'cc::SnapContainerData',
+            'cc::SnapFlingClient',
+            'cc::SnapFlingController',
             'cc::SnapSelectionStrategy',
             'cc::SnapStrictness',
             'gfx::RectToSkRect',
diff --git a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
index c1aaabc..ea7e20a 100644
--- a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
@@ -149,7 +149,6 @@
 crbug.com/591099 external/wpt/css/css-masking/clip-path/clip-path-polygon-010.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-multicol/multicol-span-all-005.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-multicol/multicol-span-all-list-item-002.html [ Pass ]
-crbug.com/921396 external/wpt/css/css-position/position-absolute-container-dynamic.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/position-relative-table-tbody-top-absolute-child.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/position-relative-table-tr-left-absolute-child.html [ Failure ]
 crbug.com/591099 external/wpt/css/css-position/static-position/htb-ltr-rtl.tentative.html [ Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 38975370..dce5691a 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -375,6 +375,8 @@
 crbug.com/836886 compositing/scrollbars/nested-overlay-scrollbars.html [ Failure ]
 # Flaky subpixel AA difference (not necessarily incorrect, but flaky)
 crbug.com/921105 virtual/threaded/animations/skew-notsequential-compositor.html [ Failure Pass ]
+# Occasionally timeout, but the test coverage is still good
+crbug.com/919789 paint/invalidation/window-resize/ [ Timeout Pass ]
 
 # ====== Paint team owned tests to here ======
 
@@ -881,7 +883,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-columns-invalid-002.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-columns-toolong-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-containing-001.xht [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-containing-002.xht [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-containing-002.xht [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-count-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-count-002.xht [ Failure ]
 crbug.com/776051 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-count-computed-003.xht [ Failure ]
@@ -894,11 +896,11 @@
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-000.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-auto-001.xht [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-auto-002.xht [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-auto-002.xht [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-auto-003.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-auto-block-children-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-auto-block-children-002.xht [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-balance-001.xht [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-fill-balance-001.xht [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-gap-000.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-gap-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-gap-002.xht [ Failure ]
@@ -929,7 +931,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-reduce-000.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-000.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-001.xht [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-002.xht [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-002.xht [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-003.xht [ Failure ]
 crbug.com/792435 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-004.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-color-001.xht [ Failure ]
@@ -940,7 +942,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-double-000.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-fraction-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-fraction-002.xht [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-fraction-003.xht [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-fraction-003.xht [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-groove-000.xht [ Failure ]
 crbug.com/792437 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-inset-000.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-rule-large-001.xht [ Failure ]
@@ -961,7 +963,7 @@
 crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-005.html [ Failure ]
 crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-006.html [ Failure Crash ]
 crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-007.html [ Failure ]
-crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-009.html [ Failure ]
+crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-009.html [ Crash ]
 crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-008.html [ Failure ]
 crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-010.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-span-all-block-sibling-003.xht [ Failure ]
@@ -984,7 +986,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-under-vertical-rl-scroll.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-002.xht [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-003.xht [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-003.xht [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-ch-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-count-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-count-002.xht [ Failure ]
@@ -993,7 +995,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-width-small-001.xht [ Failure ]
 crbug.com/829028 virtual/layout_ng_experimental/external/wpt/css/css-multicol/multicol-zero-height-001.xht [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/abspos-after-break-after.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/abspos-new-width-rebalance.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/abspos-new-width-rebalance.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/balance-float-after-forced-break.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/balance-float-in-inline.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/balance-floats.html [ Failure ]
@@ -1060,6 +1062,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/insert-spanner-pseudo-before-following-content.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/insert-spanner-pseudo-before.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/invalid-spanner-container-becomes-valid.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/relayout-abspos-in-relpos-spanner.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/relpos-becomes-static-has-abspos.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/remove-abspos-next-to-spanner.html [ Crash Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/dynamic/remove-and-insert-block-after-spanner.html [ Failure ]
@@ -1127,7 +1130,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/line-pushed-down-by-float.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/line-too-tall-for-second-outer-row.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/many-lines-overflow-in-single-row-inner.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/mixed-opacity-test.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/mixed-opacity-test.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/mixed-positioning-stacking-order.html [ Failure ]
 crbug.com/626703 virtual/layout_ng_experimental/fast/multicol/multicol-becomes-paged-auto-height.html [ Crash Pass ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/multicol-with-child-renderLayer-for-input.html [ Failure ]
@@ -1183,7 +1186,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/overflow-unsplittable.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/pageLogicalOffset-vertical.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/paginate-block-replaced.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/positioned-outside-of-columns.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/positioned-outside-of-columns.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/positioned-split.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/positive-leading.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/pushed-line-affected-by-float.html [ Failure ]
@@ -1196,7 +1199,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/shadow-breaking.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/shrink-to-column-height-for-pagination.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/single-line.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/span/abspos-containing-block-outside-spanner.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/span/abspos-containing-block-outside-spanner.html [ Crash Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/span/adjacent-spanners-with-margin.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/span/after-row-with-uneven-height-nested-multicol.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/span/as-inner-multicol.html [ Failure ]
@@ -1326,7 +1329,6 @@
 crbug.com/591099 virtual/layout_ng_experimental/fast/multicol/widows.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/pagination/auto-height.html [ Crash Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/pagination/auto-height-with-break.html [ Failure ]
-crbug.com/879467 virtual/layout_ng_experimental/fast/pagination/body-make-paginated-table-abspos-crash.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/pagination/break-in-paged-overflow.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/pagination/caret-range-outside-paged-x.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fast/pagination/caret-range-outside-paged-x-rtl.html [ Failure ]
@@ -1368,6 +1370,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/change-fragmentainer-height-block-float.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/change-fragmentainer-height-inline-float.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/change-fragmentainer-height-line-float.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fragmentation/content-preceding-first-fragmentainer.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/float-after-forced-break.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/float-margin-top.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/float-pushed-to-next-fragmentainer-by-floats.html [ Failure ]
@@ -1402,8 +1405,8 @@
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-large-cell-with-header.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-in-multiple-table-sections.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-multiple-tables-caption-repeating-thead-tfoot-with-border-spacing-at-top-of-row-2.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-multiple-tables-caption-repeating-thead-tfoot-with-border-spacing-at-top-of-row-3.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-multiple-tables-caption-repeating-thead-tfoot-with-border-spacing-at-top-of-row-2.html [ Crash ]
+crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-multiple-tables-caption-repeating-thead-tfoot-with-border-spacing-at-top-of-row-3.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-multiple-tables-caption-repeating-thead-tfoot-with-border-spacing-at-top-of-row-4.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-multiple-tables-caption-repeating-thead-tfoot-with-border-spacing-at-top-of-row.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-nested-repeating-thead-2.html [ Failure ]
@@ -1421,7 +1424,7 @@
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-cell-straddles-page.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-cell-straddles-page-unsplittable-div.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-starts-middle-of-page-break-after-avoid-2.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-starts-middle-of-page-break-after-avoid-2.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-starts-middle-of-page-break-after-avoid-3.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-starts-middle-of-page-break-after-avoid.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-starts-middle-of-page.html [ Failure ]
@@ -1430,10 +1433,10 @@
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-starts-middle-of-page-break-after-avoid-3.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-starts-middle-of-page-break-after-avoid.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-starts-middle-of-page.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-with-border-spacing-at-top-of-row.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-with-border-spacing-at-top-of-row.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-with-caption.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-tfoot-with-two-captions.html [ Failure ]
-crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-with-border-spacing-at-top-of-row.html [ Failure ]
+crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-with-border-spacing-at-top-of-row.html [ Crash ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-with-caption.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/single-line-cells-repeating-thead-with-two-captions.html [ Failure ]
 crbug.com/591099 virtual/layout_ng_experimental/fragmentation/table-in-subpixel-fragmentainer.html [ Failure ]
@@ -3082,7 +3085,6 @@
 crbug.com/626703 [ Win10 ] external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html [ Failure Timeout ]
 crbug.com/626703 [ Win7 ] external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html [ Failure Timeout ]
 crbug.com/626703 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Timeout ]
-crbug.com/626703 external/wpt/css/css-values/calc-positive-fraction-001.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-values/ch-unit-011.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-values/attr-invalid-type-008.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-grid/abspos/descendant-static-position-003.html [ Failure ]
@@ -4606,7 +4608,6 @@
 
 # Sheriff failures 2017-05-22
 crbug.com/725542 [ Debug ] editing/selection/doubleclick-beside-cr-span.html [ Pass Timeout ]
-crbug.com/725545 [ Debug ] fast/forms/number/number-stepup-stepdown-from-renderer.html [ Pass Timeout ]
 
 # Sheriff failures 2017-05-23
 crbug.com/725470 editing/shadow/doubleclick-on-meter-in-shadow-crash.html [ Crash Failure Pass ]
@@ -5808,7 +5809,6 @@
 
 # Sheriff 2019-01-07
 crbug.com/919492 [ Mac ] virtual/fractional_scrolling_threaded/fast/scrolling/overflow-scrollability.html [ Timeout Pass ]
-crbug.com/919504 paint/invalidation/window-resize/window-resize-vertical-writing-mode.html [ Timeout Pass ]
 crbug.com/919559 [ Win ] virtual/outofblink-cors/http/tests/fetch/window/thorough/redirect-loop.html [ Timeout Pass ]
 crbug.com/919587 [ Linux ] virtual/threaded/fast/idle-callback/idle_periods.html [ Pass Failure ]
 
@@ -6021,6 +6021,7 @@
 crbug.com/934768 [ Mac ] virtual/threaded/http/tests/devtools/tracing/worker-events.js [ Failure Pass ]
 crbug.com/934818 [ Mac Debug ] virtual/threaded/http/tests/devtools/tracing/decode-resize.js [ Failure Pass ]
 crbug.com/934866 [ Mac ] virtual/outofblink-cors-ns/http/tests/security/cross-origin-worker-indexeddb-allowed.html [ Crash Pass ]
+crbug.com/935027 http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Crash Pass ]
 
 # Device Sensor Events are being restricted to secure browsing contexts, but the change is still gated on a runtime flag.
 crbug.com/932078 http/tests/security/powerfulFeatureRestrictions/device-orientation-future-behavior-on-insecure-origin.html [ Skip ]
diff --git a/third_party/blink/web_tests/css3/calc/calc-numbers-expected.txt b/third_party/blink/web_tests/css3/calc/calc-numbers-expected.txt
index 4dbe2e99..8603ac97 100644
--- a/third_party/blink/web_tests/css3/calc/calc-numbers-expected.txt
+++ b/third_party/blink/web_tests/css3/calc/calc-numbers-expected.txt
@@ -1,7 +1,7 @@
 PASS getComputedValue(".int", "tabSize") is "8"
 PASS getComputedValue(".int-non-neg-invalid", "tabSize") is "12345"
 PASS Number(getComputedValue(".float", "opacity")) is within 0.0001 of 0.5
-PASS getComputedValue(".float-invalid", "tabSize") is "12345"
+PASS getComputedValue(".float-to-rounded-int", "tabSize") is "1"
 PASS Number(getComputedValue(".px-invalid", "opacity")) is within 0.0001 of 0.9
 PASS getComputedValue(".num-length-invalid", "tabSize") is "12345"
 PASS getComputedValue(".px-valid", "tabSize") is "10px"
diff --git a/third_party/blink/web_tests/css3/calc/calc-numbers.html b/third_party/blink/web_tests/css3/calc/calc-numbers.html
index 22b945b3..03f94ffe 100644
--- a/third_party/blink/web_tests/css3/calc/calc-numbers.html
+++ b/third_party/blink/web_tests/css3/calc/calc-numbers.html
@@ -10,7 +10,7 @@
 .float {
     opacity: calc(2 / 4);
 }
-.float-invalid {
+.float-to-rounded-int {
     tab-size: 12345;
     tab-size: calc(2 / 4);
 }
@@ -33,7 +33,7 @@
 <div class="default int"></div>
 <div class="default int-non-neg-invalid"></div>
 <div class="default float"></div>
-<div class="default float-invalid"></div>
+<div class="default float-to-rounded-int"></div>
 <div class="default px-invalid"></div>
 <div class="default num-length-invalid"></div>
 <div class="default px-valid"></div>
@@ -49,7 +49,7 @@
 shouldBe('getComputedValue(".int", "tabSize")', '"8"');
 shouldBe('getComputedValue(".int-non-neg-invalid", "tabSize")', '"12345"');
 shouldBeCloseTo('Number(getComputedValue(".float", "opacity"))', 0.5, .0001);
-shouldBe('getComputedValue(".float-invalid", "tabSize")', '"12345"');
+shouldBe('getComputedValue(".float-to-rounded-int", "tabSize")', '"1"');
 shouldBeCloseTo('Number(getComputedValue(".px-invalid", "opacity"))', 0.9, .0001);
 shouldBe('getComputedValue(".num-length-invalid", "tabSize")', '"12345"');
 shouldBe('getComputedValue(".px-valid", "tabSize")', '"10px"');
diff --git a/third_party/blink/web_tests/css3/calc/number-parsing.html b/third_party/blink/web_tests/css3/calc/number-parsing.html
index fdb73ec..2444b088 100644
--- a/third_party/blink/web_tests/css3/calc/number-parsing.html
+++ b/third_party/blink/web_tests/css3/calc/number-parsing.html
@@ -18,7 +18,7 @@
   assertParsedValue('transition-timing-function', 'cubic-bezier(calc(1 / 2), calc(1 - 1), calc(2 - 1), calc(2 * 3))', 'cubic-bezier(0.5, 0, 1, 6)');
   assertParsedValue('transition-timing-function', 'steps(calc(1 + 2), start)', 'steps(3, start)');
   assertParsedValue('grid-row-start', 'calc(1 + 2) test', '3 test');
-  assertParsedValue('grid-row-start', 'calc(1 / 2) test', '');
+  assertParsedValue('grid-row-start', 'calc(1 / 2) test', '1 test');
   assertParsedValue('font-weight', 'calc(100 + 200)', '300');
   assertParsedValue('flex', 'calc(1 + 2) calc(3 + 4)', '3 7 0%');
   assertParsedValue('-webkit-filter', 'saturate(calc(4 / 2))', 'saturate(2)');
diff --git a/third_party/blink/web_tests/custom-elements/tentative/HTMLElement-attachInternals.html b/third_party/blink/web_tests/custom-elements/tentative/HTMLElement-attachInternals.html
deleted file mode 100644
index 8a42027f..0000000
--- a/third_party/blink/web_tests/custom-elements/tentative/HTMLElement-attachInternals.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE html>
-<body>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
-<div id="container"></div>
-<script>
-test(() => {
-  class MyElement1 extends HTMLElement {
-  }
-  customElements.define('my-element1', MyElement1);
-  const container = document.querySelector('#container');
-
-  let element = new MyElement1();
-  assert_true(element.attachInternals() instanceof ElementInternals,
-              'New - 1st call');
-  assert_throws('InvalidStateError', () => { element.attachInternals(); },
-                'New - 2nd call');
-
-  element = document.createElement('my-element1');
-  assert_true(element.attachInternals() instanceof ElementInternals,
-              'createElement - 1st call');
-  assert_throws('InvalidStateError', () => { element.attachInternals(); },
-                'createElement - 2nd call');
-
-  container.innerHTML = '<my-element1></my-element1>';
-  assert_true(container.firstChild.attachInternals() instanceof ElementInternals,
-              'Parser - 1st call');
-  assert_throws('InvalidStateError', () => {
-    container.firstChild.attachInternals();
-  }, 'Parser - 2nd call');
-}, 'Successful attachInternals() and the second call.');
-
-test(() => {
-  class MyDiv extends HTMLDivElement {}
-  customElements.define('my-div', MyDiv, { extends: 'div' });
-  const customizedBuiltin = document.createElement('div', { is: 'my-div'});
-  assert_throws('InvalidStateError', () => { customizedBuiltin.attachInternals() });
-}, 'attachInternals() throws an InvalidStateError if it is called for ' +
-     'a customized built-in element');
-
-test(() => {
-  const builtin = document.createElement('div');
-  assert_throws('InvalidStateError', () => { builtin.attachInternals() });
-
-  const doc = document.implementation.createDocument('foo', null);
-  const span = doc.appendChild(doc.createElementNS('http://www.w3.org/1999/xhtml', 'html:span'));
-  assert_true(span instanceof HTMLElement);
-  assert_throws('InvalidStateError', () => { span.attachInternals(); });
-
-  const undefinedCustom = document.createElement('my-element');
-  assert_throws('InvalidStateError', () => { undefinedCustom.attachInternals() });
-}, 'If a custom element definition for the local name of the element doesn\'t' +
-     ' exist, throw an InvalidStateError');
-
-test(() => {
-  class MyElement2 extends HTMLElement {
-    static get disabledFeatures() { return ['internals']; }
-  }
-  customElements.define('my-element2', MyElement2);
-  const container = document.querySelector('#container');
-
-  assert_throws('InvalidStateError', () => {
-    (new MyElement2).attachInternals();
-  });
-  assert_throws('InvalidStateError', () => {
-    document.createElement('my-element2').attachInternals();
-  });
-  assert_throws('InvalidStateError', () => {
-    container.innerHTML = '<my-element2></my-element2>';
-    container.firstChild.attachInternals();
-  });
-}, 'If a custom element definition for the local name of the element has ' +
-     'disable internals flag, throw an InvalidStateError');
-</script>
-</body>
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json
index a748c73..2bd2063 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json
@@ -5167,12 +5167,6 @@
      {}
     ]
    ],
-   "mathml/relations/html5-tree/href-manual.html": [
-    [
-     "/mathml/relations/html5-tree/href-manual.html",
-     {}
-    ]
-   ],
    "mediacapture-depth/dictionary-manual.https.html": [
     [
      "/mediacapture-depth/dictionary-manual.https.html",
@@ -57277,6 +57271,18 @@
      {}
     ]
    ],
+   "css/css-position/z-index-blend-will-change-overlapping-layers.html": [
+    [
+     "/css/css-position/z-index-blend-will-change-overlapping-layers.html",
+     [
+      [
+       "/css/css-position/z-index-blend-will-change-overlapping-layers-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/css-pseudo/first-letter-001.html": [
     [
      "/css/css-pseudo/first-letter-001.html",
@@ -117801,6 +117807,16 @@
      {}
     ]
    ],
+   "common/security-features/README.md": [
+    [
+     {}
+    ]
+   ],
+   "common/security-features/resources/common.js": [
+    [
+     {}
+    ]
+   ],
    "common/sleep.py": [
     [
      {}
@@ -141756,6 +141772,11 @@
      {}
     ]
    ],
+   "css/css-position/z-index-blend-will-change-overlapping-layers-ref.html": [
+    [
+     {}
+    ]
+   ],
    "css/css-properties-values-api/META.yml": [
     [
      {}
@@ -177391,11 +177412,6 @@
      {}
     ]
    ],
-   "mixed-content/generic/common.js": [
-    [
-     {}
-    ]
-   ],
    "mixed-content/generic/expect.py": [
     [
      {}
@@ -179731,11 +179747,6 @@
      {}
     ]
    ],
-   "referrer-policy/generic/common.js": [
-    [
-     {}
-    ]
-   ],
    "referrer-policy/generic/multiple-headers-and-values.html.headers": [
     [
      {}
@@ -252586,6 +252597,14 @@
      {}
     ]
    ],
+   "mathml/relations/html5-tree/href-click-3.html": [
+    [
+     "/mathml/relations/html5-tree/href-click-3.html",
+     {
+      "testdriver": true
+     }
+    ]
+   ],
    "mathml/relations/html5-tree/required-extensions-1.html": [
     [
      "/mathml/relations/html5-tree/required-extensions-1.html",
@@ -311113,6 +311132,14 @@
    "6805c323df5a975231648b830e33ce183c3cbbd3",
    "support"
   ],
+  "common/security-features/README.md": [
+   "45cd74ede74d6c2fdaac80690a4e8a6b99f4976c",
+   "support"
+  ],
+  "common/security-features/resources/common.js": [
+   "678d2a0d8fa7001e5dcd2204b6f2b548d0b913c1",
+   "support"
+  ],
   "common/sleep.py": [
    "afc0a7c26e1c2aa63a54bcf39d74cf9c7adf6d75",
    "support"
@@ -356798,7 +356825,7 @@
    "testharness"
   ],
   "css/css-position/parsing/z-index-invalid.html": [
-   "ceb7448dd0b87b3b41c54d450b31cf86e539d455",
+   "d89720ab146056a6b4d24214b100d249cfac3ab1",
    "testharness"
   ],
   "css/css-position/parsing/z-index-valid.html": [
@@ -357265,6 +357292,14 @@
    "8bdb06c8271e89cfed18bae3eff5b413fc46f46f",
    "reftest"
   ],
+  "css/css-position/z-index-blend-will-change-overlapping-layers-ref.html": [
+   "883ffed46d201ed6875adef584b07d892dface49",
+   "support"
+  ],
+  "css/css-position/z-index-blend-will-change-overlapping-layers.html": [
+   "3adbda8fbf362c8e71c834e3ff20133aedaccf9b",
+   "reftest"
+  ],
   "css/css-properties-values-api/META.yml": [
    "38cd166ca8f45769c269039577aac391ad707e75",
    "support"
@@ -377054,11 +377089,11 @@
    "testharness"
   ],
   "css/css-values/calc-numbers-expected.txt": [
-   "d0e26353805094c25924c575580b20e1ce89cfa4",
+   "3ebcb2f87bfe7168720b04767ce6ea11f08229f4",
    "support"
   ],
   "css/css-values/calc-numbers.html": [
-   "995595b8a3e91ab3a72ec465d509030f082ea5bf",
+   "e9ade71e22f5d20bbb8de15c6ddf9acd99fd44b6",
    "testharness"
   ],
   "css/css-values/calc-parenthesis-stack.html": [
@@ -401474,7 +401509,7 @@
    "testharness"
   ],
   "fetch/sec-metadata/img.tentative.https.sub.html": [
-   "befc7a973bbe2f751088089533414fa6b2dd8669",
+   "802ae25b775c0b246d162cc8f41df0c47cd52867",
    "testharness"
   ],
   "fetch/sec-metadata/object.tentative.https.sub.html": [
@@ -424226,11 +424261,11 @@
    "support"
   ],
   "mathml/README.md": [
-   "175c1813deeb7b784925cbb87e7990fb3f056fce",
+   "9524d275e479ba2db2aaaab9fdbc1203c79009cb",
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-1.html": [
-   "848eb5b144cef3740b794475f699229243c1287e",
+   "6b9fb2844298cbc228f91a23c6439e0f67f4f20b",
    "testharness"
   ],
   "mathml/presentation-markup/fractions/frac-bar-001-ref.html": [
@@ -424238,7 +424273,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-bar-001.html": [
-   "6688a587b1f25e2523ef5fd2535227381a1c263d",
+   "d6151f62190768776e1a85b4c9b9bc6a8c0a69a6",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-color-001-notref.html": [
@@ -424246,7 +424281,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-color-001.html": [
-   "bc61dbf51ffe487122859f189223b2ef43f88bb1",
+   "d1a3e6eac41ff23190225954016b7b37a8e71880",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-color-002-ref.html": [
@@ -424254,7 +424289,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-color-002.html": [
-   "d7cc88cb21bd9ed62d9a269e1029f113f9a27d13",
+   "597acab652c4ad9b94ec5c612b4fda53c422309c",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-linethickness-001-ref.html": [
@@ -424262,7 +424297,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-linethickness-001.html": [
-   "94111174c6aa3ecf1fff4982bfc9ecbf4a10c2ee",
+   "83e15c83dc0bcb911eb52a6b74b86a13c2f1e31e",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-linethickness-002-ref.html": [
@@ -424270,7 +424305,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-linethickness-002.html": [
-   "5bb0d6bfb9d6113a04b9d3160ccc9db80aceaaa6",
+   "fd45994646938e4d22765524382004f19ef021b7",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-linethickness-003-notref.html": [
@@ -424278,7 +424313,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-linethickness-003.html": [
-   "e535e703b52c75800155b5b25995730b2a236287",
+   "b23cce80be40dd53ff898a5bc7d2246ae3770322",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-mrow-001-ref.html": [
@@ -424286,7 +424321,7 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-mrow-001.html": [
-   "e5c6f52529443e881b8235a67f3e8cc7aa10fb51",
+   "14476450008531dba09da4677b60ba65262dca0a",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html": [
@@ -424294,15 +424329,15 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html": [
-   "61f49e2ff5381c9684e5b36d03a51daf7f8f3e74",
+   "d734f1d1f33922d5d29daa81d2ba7b1075415b23",
    "reftest"
   ],
   "mathml/presentation-markup/fractions/frac-parameters-1.html": [
-   "543017e19006377cac0c1a434bd43400467fac3b",
+   "59e335ae5a3df081e300705d6e5d020924af7bef",
    "testharness"
   ],
   "mathml/presentation-markup/fractions/frac-parameters-2.html": [
-   "75074875c9e6b1fa205fe76b85c4a0b36fadf274",
+   "b1ee502ccdae6cf96d2f104d7daf1c2dbba390f7",
    "testharness"
   ],
   "mathml/presentation-markup/fractions/frac-visibility-001-ref.html": [
@@ -424310,67 +424345,67 @@
    "support"
   ],
   "mathml/presentation-markup/fractions/frac-visibility-001.html": [
-   "b98f68d2a585d340804b27120a89d8e71e4c9e51",
+   "8fbf5ac806e61e400214b2157180e8aac4fd2d31",
    "reftest"
   ],
   "mathml/presentation-markup/operators/mo-axis-height-1.html": [
-   "7b0031ac1ed63219130b69113ebbfdc28eec10d6",
+   "c88484b9d59a7811f6cfde7065de4facbdf1f74a",
    "testharness"
   ],
   "mathml/presentation-markup/radicals/root-parameters-1.html": [
-   "8ffcbe4a22d1225e4494d91437200ca8361a27bf",
+   "51d4713d4ea1c429e018c6a0914b130bc6dc1cd5",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-1.html": [
-   "39768315e72d13b5952e3bc743617a8d29b223ca",
+   "447aa66d4a30bc68f69fc17f91b08723229b14ff",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-2.html": [
-   "26fa5de780b086a777fb6494cfb6f163b7813e02",
+   "9e2b6dbef79089fe4c37ddbf6cbbdc4e7a3f1d36",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-3.html": [
-   "231f65ab4f46bbe64a20a7db170ffb42deef460f",
+   "742fa8cbce6463bcc2bb48bcdd98df488d1c086f",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-4.html": [
-   "c4bf4382f8ed51849d396cd313ff851fe70248e4",
+   "fc70fef9b801f41a32913ba4362927bedb94d0ef",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-5.html": [
-   "005ceea4019918f47606e25a91654a841b1e437a",
+   "a67d68d5e031c1a8b31df877b213d255f002b935",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-parameters-1.html": [
-   "b0ebaceb4355b4ddafff11febb41e36a5afe854c",
+   "208a0a870d6e61e3c7530fc620e650e00ca740da",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/subsup-parameters-2.html": [
-   "5ba66b86c3dadf5b4e4d3ddfa4c27d6286e137f1",
+   "4a9db6618bcc1fa9fd459d9b0aa70f347bc62184",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/underover-1.html": [
-   "6dcdbb7b388b6955e744f5d9eb9e1e27e9abef34",
+   "45367e3541b285bcc6256193ab7cd544baf422f3",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/underover-parameters-1.html": [
-   "802293829fd8de194ae6a12b0aea458689770ae1",
+   "cc09abb899ad629fb959aef9fc84f093ad0a6f76",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/underover-parameters-2.html": [
-   "e9d6af4901e16602dd7a54a7c74f3594e26402c9",
+   "d6d9185cc961c0d6d7e52825563b30c622f015a2",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/underover-parameters-3.html": [
-   "373d6d4d06ecc0593dfda27164fe26a4d55dc1d1",
+   "23c7dfa744550ecf4032350fdf902f28863dac57",
    "testharness"
   ],
   "mathml/presentation-markup/scripts/underover-parameters-4.html": [
-   "3b1fa575f72473443271ebbd193bfc7b866dfc1a",
+   "bfc3cafa913fb38dde5cecf83be0a4a710bfb763",
    "testharness"
   ],
   "mathml/presentation-markup/spaces/space-1.html": [
-   "cb9dd9e9acbddd54c3729962f4efa4eeb56d8452",
+   "7bc5b8e5128d031c14d73b53939926a63265b3c9",
    "testharness"
   ],
   "mathml/presentation-markup/spaces/space-2-ref.html": [
@@ -424378,11 +424413,11 @@
    "support"
   ],
   "mathml/presentation-markup/spaces/space-2.html": [
-   "072f2bda542f9b9ee64acd3161f2949c31fbf955",
+   "5b8351a1ed00d29e43d71e1f293fe63b1a0c2dc4",
    "reftest"
   ],
   "mathml/presentation-markup/tables/table-axis-height.html": [
-   "024bdd29b116de1c3112e9482a2f4ce286126a91",
+   "e723008b410342b087a0f066980f8520e55c4ccc",
    "testharness"
   ],
   "mathml/relations/css-styling/color-1-ref.html": [
@@ -424390,7 +424425,7 @@
    "support"
   ],
   "mathml/relations/css-styling/color-1.html": [
-   "4ef821340d22109a64809bbb4a1a753279d91420",
+   "8158cec6a86475d98042df02e8e89928516184d3",
    "reftest"
   ],
   "mathml/relations/css-styling/display-1-ref.html": [
@@ -424398,11 +424433,11 @@
    "support"
   ],
   "mathml/relations/css-styling/display-1.html": [
-   "a7d6277d70d1658bf291c5d46ed14aa2e1f7ec90",
+   "9ae6fe0b84f4d7b145b7fef0ed16168c3f4a74dd",
    "reftest"
   ],
   "mathml/relations/css-styling/displaystyle-1.html": [
-   "3143343da7e39ff931f552af942e62882062bc77",
+   "ddb2173a2e01ff78b16bc9c86f4a0f2ad37935dc",
    "testharness"
   ],
   "mathml/relations/css-styling/lengths-1-ref.html": [
@@ -424410,7 +424445,7 @@
    "support"
   ],
   "mathml/relations/css-styling/lengths-1.html": [
-   "e5864ccc2acaf9fb602274db13b7f6bc846563a3",
+   "0e3a74d46f99090883f5e12dd1d0701bf50bda8a",
    "reftest"
   ],
   "mathml/relations/css-styling/lengths-2-ref.html": [
@@ -424418,11 +424453,11 @@
    "support"
   ],
   "mathml/relations/css-styling/lengths-2.html": [
-   "e88111aa537c9223e9203f69c8afd6ed5d3d4390",
+   "37cc640b30783ad717d7eef8551b47754f7c9986",
    "reftest"
   ],
   "mathml/relations/css-styling/lengths-3.html": [
-   "68a144aca69c4fac862073029d8479369773e25a",
+   "aa38e9729de8569151b98307395ec8a2a5fe4b7f",
    "testharness"
   ],
   "mathml/relations/css-styling/mathvariant-bold-fraktur-ref.html": [
@@ -424430,7 +424465,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-bold-fraktur.html": [
-   "487d61d7d852ad850a9d99d56a1f82b92138bf8b",
+   "f4141810820518d0b1b3c2d832827dbaa77c6871",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-bold-italic-ref.html": [
@@ -424438,7 +424473,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-bold-italic.html": [
-   "640baf34da88b9851f3c06a60c7e81baac21be3a",
+   "7b53e986d4f07796c8d44a8356081082ad238d96",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-bold-ref.html": [
@@ -424450,7 +424485,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-bold-sans-serif.html": [
-   "1cab2372ba3405e63f615354b1b61ba98c5d0bed",
+   "544db02f2eedc3229e57eac3016e3aa086061704",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-bold-script-ref.html": [
@@ -424458,11 +424493,11 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-bold-script.html": [
-   "9083afa801d7132b7f6a095d14913a6b3e83f449",
+   "dc48fbeaaf54ba184e02f062f074443de0e4835b",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-bold.html": [
-   "b3fe917d23c67476667cc8492b218a5a38cbfc7f",
+   "a51be7b23fd2bdbc9364a29a0766b53dea67dad2",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-double-struck-ref.html": [
@@ -424470,7 +424505,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-double-struck.html": [
-   "e51908e1ea39fccdca8ba481c176bd3436d5bbf3",
+   "3090fdc85c04d037f391c34dec615ce8827c222c",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-fraktur-ref.html": [
@@ -424478,7 +424513,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-fraktur.html": [
-   "124891727cd43dd94cd4408b633169cc57c57e67",
+   "8bd15a558bf77d652237a6470cd64401f1787134",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-initial-ref.html": [
@@ -424486,7 +424521,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-initial.html": [
-   "df9e0af7fc53f6486d43e28db588508deaa3aa24",
+   "58751bd1266971584260bc5d2c25935da4951672",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-italic-ref.html": [
@@ -424494,7 +424529,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-italic.html": [
-   "e1612a528c8976e76d0f0990621f80880992b7f1",
+   "5bcbd322de85c885987457b128ad71bd7de72601",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-looped-ref.html": [
@@ -424502,7 +424537,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-looped.html": [
-   "81206e1facff7ead839d4df329c80c6896771b8d",
+   "0326e86e8f4faf907b3698d319160242949bb0e5",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-monospace-ref.html": [
@@ -424510,7 +424545,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-monospace.html": [
-   "8d4a4ad9234378ab503cfbeca89ec8cebee7b3c3",
+   "8d9a5d3df27c1a8e85e00c6fee00ff3ddb8ef066",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html": [
@@ -424518,7 +424553,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html": [
-   "70207367e0588f9460e9fc3e118103768a14b9f6",
+   "21401bc84ac95a40069b471f824b4e05e116d171",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-sans-serif-italic-ref.html": [
@@ -424526,7 +424561,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-sans-serif-italic.html": [
-   "0576236dbf990669602b031786174c5c12a25537",
+   "2573872319148c1c0bdfb359858a5369c28cc176",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-sans-serif-ref.html": [
@@ -424534,7 +424569,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-sans-serif.html": [
-   "fc880b99aff3cc117af5394b5290412a373a1c96",
+   "513e0351cc3f3e714d76adc0379fd4421ac90080",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-script-ref.html": [
@@ -424542,7 +424577,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-script.html": [
-   "5725ed510331d29cda6f08056b83378b5da88d82",
+   "efd3f7e8ff6925a7941ea387f65faf63c5186f01",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-stretched-ref.html": [
@@ -424550,7 +424585,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-stretched.html": [
-   "603cfe704fd0605dd15fb71ef1ae0b0e54260190",
+   "20c5a39a83a75e1736bd4cdcb7baf81952667856",
    "reftest"
   ],
   "mathml/relations/css-styling/mathvariant-tailed-ref.html": [
@@ -424558,7 +424593,7 @@
    "support"
   ],
   "mathml/relations/css-styling/mathvariant-tailed.html": [
-   "c00417d8d6ac3a553c930b0f1c753652fa804475",
+   "c88d433ce5f43314c1f1249aa48d36ca0141b4a0",
    "reftest"
   ],
   "mathml/relations/css-styling/visibility-1-ref.html": [
@@ -424566,7 +424601,7 @@
    "support"
   ],
   "mathml/relations/css-styling/visibility-1.html": [
-   "be8da3b00a2adafcbd3908733c1edea55f90fddb",
+   "c84f97aeeb84d79b7937338445de720986f246ce",
    "reftest"
   ],
   "mathml/relations/html5-tree/class-1-ref.html": [
@@ -424574,11 +424609,11 @@
    "support"
   ],
   "mathml/relations/html5-tree/class-1.html": [
-   "654852329b4abe04a9c2736586cb7f4dc63a8562",
+   "ee4b4b50d3f4d630c80fea170008b73d5b4b9851",
    "reftest"
   ],
   "mathml/relations/html5-tree/class-2.html": [
-   "707500de37fc117bf6174bd9aa7aaba298a705da",
+   "4e1ae6b707405d900e309ac11792606a6a6f295e",
    "testharness"
   ],
   "mathml/relations/html5-tree/color-attributes-1-ref.html": [
@@ -424586,11 +424621,11 @@
    "support"
   ],
   "mathml/relations/html5-tree/color-attributes-1.html": [
-   "b7bdf723e38149b0f30522bda8634fa5ac94b286",
+   "6f9f93721a2a9173c9efb156bcc875bd61123edb",
    "reftest"
   ],
   "mathml/relations/html5-tree/display-1.html": [
-   "64d862cf7614f29435a08a6ac66d45f84575a053",
+   "77038ee223c5a319f8536f01532530093dc69c18",
    "testharness"
   ],
   "mathml/relations/html5-tree/dynamic-1-ref.html": [
@@ -424598,7 +424633,7 @@
    "support"
   ],
   "mathml/relations/html5-tree/dynamic-1.html": [
-   "ab22ad13cdbd612eabbd160a66867472bed716a8",
+   "48fdd25915598b63a849752260349b2bd2186720",
    "reftest"
   ],
   "mathml/relations/html5-tree/href-click-1-ref.html": [
@@ -424606,7 +424641,7 @@
    "support"
   ],
   "mathml/relations/html5-tree/href-click-1.html": [
-   "6164346dc079da139855de96937f9d5b7861c285",
+   "dd6b7990a3c1719ff66c8e93d9d98b3ea97bfdf0",
    "reftest"
   ],
   "mathml/relations/html5-tree/href-click-2-ref.html": [
@@ -424614,19 +424649,19 @@
    "support"
   ],
   "mathml/relations/html5-tree/href-click-2.html": [
-   "6e5049392bd9c62e42086f3d1a7cdc9583fd29a9",
+   "4c5253df1596d4acf6208579fea731b058ac1a58",
    "reftest"
   ],
-  "mathml/relations/html5-tree/href-manual.html": [
-   "7f24f20f4f2b8756409d5cd9daf5ed364ba72431",
-   "manual"
+  "mathml/relations/html5-tree/href-click-3.html": [
+   "f2863febc1f14d4e1170b1ebcddb9bf30aedfd24",
+   "testharness"
   ],
   "mathml/relations/html5-tree/integration-point-1-ref.html": [
    "49877549670ae9fdd81e24801c74756465c4c595",
    "support"
   ],
   "mathml/relations/html5-tree/integration-point-1.html": [
-   "b3ab19c773875a6778b9588eee0f3c9cada56763",
+   "3221a67503bc0cba619715c1fd25d1e2c2ce1081",
    "reftest"
   ],
   "mathml/relations/html5-tree/integration-point-2-ref.html": [
@@ -424634,7 +424669,7 @@
    "support"
   ],
   "mathml/relations/html5-tree/integration-point-2.html": [
-   "e970f9ec8053879844bf5b50e2822fd34b6f93a0",
+   "d42eeb03ed21d133decebb8ee287c23ac08d9699",
    "reftest"
   ],
   "mathml/relations/html5-tree/integration-point-3-ref.html": [
@@ -424642,11 +424677,11 @@
    "support"
   ],
   "mathml/relations/html5-tree/integration-point-3.html": [
-   "8132acc6d7c2b172fec1509b8af591630362f14f",
+   "1feb8317ff12252bc131dd7368c8162b79a0d803",
    "reftest"
   ],
   "mathml/relations/html5-tree/required-extensions-1.html": [
-   "795f516671a616f48038cb16b6cc82329e5826b4",
+   "3dd7f168ec1e2d61e7b98d8987b94050babe5bb0",
    "testharness"
   ],
   "mathml/relations/html5-tree/required-extensions-2-ref.html": [
@@ -424654,7 +424689,7 @@
    "support"
   ],
   "mathml/relations/html5-tree/required-extensions-2.html": [
-   "b49bddaa69d4e88993301d36b0d802a4d0b8ab12",
+   "1d7af04d9edcb76cd870e63145d3d7096bd59c09",
    "reftest"
   ],
   "mathml/relations/html5-tree/unique-identifier-1-iframe-1.html": [
@@ -424670,11 +424705,11 @@
    "support"
   ],
   "mathml/relations/html5-tree/unique-identifier-1.html": [
-   "39c49a6b56b4e64a59ae2835081ed18c2e6a4c86",
+   "42a547ac218f1d8590fd48a0d6331ef3b1c2c86d",
    "reftest"
   ],
   "mathml/relations/html5-tree/unique-identifier-2.html": [
-   "97e04a91ef13e650757fc2fe01ef068932e31b16",
+   "421ad7a86d03861084a98ea00b17e7b77e1365f5",
    "testharness"
   ],
   "mathml/relations/html5-tree/unique-identifier-3-ref.html": [
@@ -424682,7 +424717,7 @@
    "support"
   ],
   "mathml/relations/html5-tree/unique-identifier-3.html": [
-   "5d66e133ab08b3068306cb2252094262716aaed5",
+   "c58e5026cfad049bef38d825df256cc0111c7b8c",
    "reftest"
   ],
   "mathml/relations/text-and-math/use-typo-metrics-1-ref.html": [
@@ -424690,7 +424725,7 @@
    "support"
   ],
   "mathml/relations/text-and-math/use-typo-metrics-1.html": [
-   "081d66b63212bbba825913b6c1aa2f0a3609a6e1",
+   "3797aef5fc0fa316cd8268accd8501be88cd6c44",
    "reftest"
   ],
   "mathml/tools/axisheight.py": [
@@ -424710,7 +424745,7 @@
    "support"
   ],
   "mathml/tools/mathvariant-transforms.py": [
-   "6094a74491d337a2d75bbc7d1ba9e73a455be05d",
+   "ba99b595f0aa6338ba7a752801c4a32dbbefc9ef",
    "support"
   ],
   "mathml/tools/radicals.py": [
@@ -425966,7 +426001,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "ac620c1075b73cae5dc0803f2e8c366105794fce",
+   "cb58cbcd9c98d3c6f67b237c5e6363cc35974010",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -425974,7 +426009,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "abc81b30191fabba25ba0461d4113d4920b95e52",
+   "815d926629c2350ac924ded0188ce42587f8addc",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -425982,7 +426017,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "27c67b081ddd75c4069db6fe8ff696bc3dd18f6f",
+   "3a9ba21f0b184368d6336ae61afc4a0fd7965826",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -425990,7 +426025,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "5fd63aa6d0b5b0d5ec6f8ece4efb537d8276420a",
+   "163b1dcb6129b908b120476e051ad5075b29b1a8",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -425998,7 +426033,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "e6f742213cc05fab2d9e97b497b8fd3b1a00784f",
+   "4dbbc6c424a084ba65ffe196a3111c3255adc26b",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426006,7 +426041,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "522e94420724e75833f9e2053ac00ee9e63b0ec5",
+   "c3bc943e1db9aeb5f507d0820326c4fc69e93abf",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426014,7 +426049,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "5e6b8cbe168b612323aacfa6dde88a34f79b7ae5",
+   "2c8a8cc34625a7985d3ec01db042184d0bc9d35a",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426022,7 +426057,7 @@
    "support"
   ],
   "mixed-content/audio-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "0adc65f828b2cfbb0fb1cae5950c4c0f2083d913",
+   "d97aaba240a4b0ae52b3226a82d847ec364a8add",
    "testharness"
   ],
   "mixed-content/audio-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426030,51 +426065,51 @@
    "support"
   ],
   "mixed-content/audio-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "283c34207bf4f789be959f1f6a1fe5a9517a491f",
+   "c04597dc71ec1f841d0e79a87716775893aceb40",
    "testharness"
   ],
   "mixed-content/audio-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "1c65507b4cef3589063981f50777fc0d5da9ba68",
+   "5b0987b3a0c885904f0c36e0bb080a1465d83a1f",
    "testharness"
   ],
   "mixed-content/audio-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "a29157047a6eb15fae5e451ba49fe18491aa1ee5",
+   "0253efc8239226441fadfd192044fa6d8065ce15",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "15fe5d2afc1c70014c323be9d5ad00c22632fac7",
+   "238565ff7267d479deac173a9ca2dd8d78708de7",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "2da4a2b9361c268d882f98ba279fe5cca8ab2152",
+   "8ddc972ca6bafe42ee5e6533cb698babef180827",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "8b610ada7db6d4e1ff3efdc5fa63bed85a8a6a5a",
+   "09ffb26b9483796cfb0beca86ebcb58123d7ee21",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "cd4d8a52e76a24345ff4f5fd744b889b1e84196b",
+   "b17073db2e3c7eb8cfed77df63e39586e0218f0b",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "20d31cf690ed629aa019fa2fc5945cec35713c25",
+   "6e86a30890fe99544e1f59eb6b97e7279a01b923",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "2ed233dc8856e96844c771bd3bbf7f6365a36dde",
+   "1aae605aa8f9bd492dd09736b807ce1f4e712d43",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "b30f28b2aab693ac8675f2f8e89e170ef2098fe1",
+   "b8ef228f54c9aeff90dfaabdbbc743d8fd19775e",
    "testharness"
   ],
   "mixed-content/audio-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "c13fd88e47e95062912a1a8ef2a9ee66dd83592f",
+   "51302745cbf4cc34734f4ea6f2c3d0cd495154bf",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "f0c5ae172baf10ceace32750db54b207f372a907",
+   "52aef359f77032d6bd37e3375b26f1f426269171",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426082,7 +426117,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "e592db53c3c844eb18aa1ec0335749331a18469d",
+   "44fb9c586a2dd45c56ee06e9cfdce7a5448c34ee",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426090,7 +426125,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "ee9c3c6d22dd091846f32d90dccc464fb1a32997",
+   "bd211c00f5da0b017738e8fea8313c9af609ab35",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426098,7 +426133,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "e050885df3b07d9be3869b6cd9335093d3a011c2",
+   "fbb550269e5095bca286c7e7c00875c02bece00e",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426106,7 +426141,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "369044ff69e629b33250afa186dc43a0eaf8edca",
+   "3392d1ba1c25905c7336667bca1aa61330e4ad55",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426114,7 +426149,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "aea84f71e64fbbc39230a6ff6804996ec93983fa",
+   "5ea4cd975702e1a916f070fff8c66f8c9270f86b",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426122,7 +426157,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "83d425c58ebba968afb68fe6087c1cc5061906b3",
+   "2ea1e3729f7ba33ac3c7631762a9a127cb294807",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426130,7 +426165,7 @@
    "support"
   ],
   "mixed-content/beacon-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "728e6ce73ff25f30d355e3f752262b2e63e93aeb",
+   "89d7b827a4bfb20e69ffb361b044af446fa87170",
    "testharness"
   ],
   "mixed-content/beacon-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426138,51 +426173,51 @@
    "support"
   ],
   "mixed-content/beacon-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "4753bb3208d266193d9ae843887bb3b0dd71f0f4",
+   "ac20526946f9386703ea282c70a246f225ef314c",
    "testharness"
   ],
   "mixed-content/beacon-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "e82c6cfdc1883f05ddcf62fc8ce14343d3582ba8",
+   "9cf67c8e15b0afe4de489abd78fbff947110ed33",
    "testharness"
   ],
   "mixed-content/beacon-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "d9c87b30c541275e076e9f9822827a6e5fb82a67",
+   "ce86221c298db6706d3fb6d196adfbe83b0ceeaf",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "2a4f6a5e4593f7495c8931c10e8dfdbdeb1fc3b2",
+   "e331f5772f5b3de11d57b74efe35e474e1fa96b7",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "6b9d9b4f82668087661c12f749b7b247e5b3e684",
+   "bb5d94c95e74976c7fda7127bd55e24e13c5c649",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "a3f302ae60b876a3fb6e2bb5a886fc03311a759f",
+   "f3cddf53e74de9b137bbc668cd45a6cddf319b69",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "0a507e5b109638a49e348f87b3cd1b42856384ef",
+   "ccbaeb971ecbe22df77751ba5e4f5924e790c61f",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "5375ae50b97e618baccf4421834ef7ce8ae41a8f",
+   "6b0daa222412bf1d190e77a9d42cfd7ecece873a",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "c6afc29050c038fd925374f527e992236e0ce739",
+   "adffe353e34409760eb212c9e3bd03d8c3a9ca7b",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "2b83f31198b1808ea577e21d45de3d5e024a41d2",
+   "f0353c39fc757752a93b4b17cd733e1d5e1a7c4c",
    "testharness"
   ],
   "mixed-content/beacon-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "efc6ce6881d38b80be1b5daa67b2d8c5c338b53a",
+   "2cfc38016f2103ebc7ee6964fc442c408cb8bbaa",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "a6c8fe82b59ed5a908b6c4faa5b38bec85906c5e",
+   "af17b7ebd7f91dbcadd0d2362eed14d3acea9069",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426190,7 +426225,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "035904520990a2bfa75bff3e7f1d1cb9fb82097c",
+   "2fff8e851a3de3eb3947909621740fd3e02f313a",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426198,7 +426233,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "3772f3b64ae282f59f82bd5f85509b3668370747",
+   "d654f3b89e01c783e4da50760b1b5a60106d8db7",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426206,7 +426241,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "92d7db06f96e0b76baa16c32bfd51908309a9461",
+   "af004635d1dcdd810bd873c563d4cd044d275830",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426214,7 +426249,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "bd51356e2f9a22a27f9dde778fdd33ac4bd9eb3d",
+   "bd45fa9035b3e13d91069c5ce1f0e65f01eb698b",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426222,7 +426257,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "51b84997e39f97d62ec8138e75924a35999aacf8",
+   "6258bc9564d6449b80291f5b9d041d475802670d",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426230,7 +426265,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "eff7b592dbb1406ebfa564f6e3a437f2949b6123",
+   "ce000b18cfa98cba669d8b20db500fde19279dda",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426238,7 +426273,7 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "1b7257dc861219b2a48b7ee7c649848a5ca4790d",
+   "84342c0289070f096b6bacdf6c39e08d0d3a1cda",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426246,51 +426281,51 @@
    "support"
   ],
   "mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "b3bb1383564f43ce32f02eaea719e3d23532a357",
+   "d77d38640b9725f01dc7597c17337d9629017a80",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "eb3b0a9eb5110d74d501e93d0ea2ac74ab7d6595",
+   "433477730362e86e665bbccfa91c98b6458c65ba",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "9c7b75354009f000b662800be90ca631e94a75f2",
+   "1de38b5a7a14f956437c6d91ab02cdd8916d87b5",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "61288bb8c772fe96846369f44953b6205eea7dfe",
+   "6b811116fbd47f7440726e1f423bd4c8a7506cda",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "4b326660bbb965156174c18f393d1637962790ba",
+   "35a7e584f689ab32f59e41c75e58f012a11a807a",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "031a3728534a0d9ddff17a46e736de375007c4ea",
+   "e69505d7f07e235be5d6c5d6f4d0587255e59871",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "253234f3b3efa4cbdc3479b4aaac445318ff41ba",
+   "b56a6baa1163d40c83968a92b56c971a8c1cebfc",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "61ef1c2d3bc0b7ebf0394a7a8d4be439905dd75e",
+   "4ae4cb83ae33eaebb5d914cc9450ecd57248f241",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "d4dd6daccf5bc7bfe405221d3bac24a96d3c636d",
+   "919e992cc55787fec471baba08679791c419dc9a",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "9b28a62a9a989bde0742b2fa1269f85929aabfe2",
+   "e56db94fa07a492c452e496a6e43df56d9d33b3c",
    "testharness"
   ],
   "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "c1496d038023dc66b083182962b0190cc4ad3bc4",
+   "e5110a44c393aa875f639c9fc555b657e43543f1",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "012bd3540a1a10571942f7b0185d3997eeb4a52b",
+   "a84f29e51b6286ad5426030764e4a9c209818abb",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426298,7 +426333,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "54fbe3a8477b82be858c10472a5d16a9c9cfc503",
+   "4de2f75f02253fa38ac1ad4876a8df846cf810d8",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426306,7 +426341,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "f955545580762077668a5a1ee9deb3eb56c62c32",
+   "3e0fb529f04f8cd84118f3b5f08a7d7dfe76b5ec",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426314,7 +426349,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "c03b96f01fa13d9406674212ae79e19cfa0a5be6",
+   "542a1866c79ef5a9b83831ff15d8d77af7083cf9",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426322,7 +426357,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "a7ce2a53055c55c01ef6a173b2d36bfbb9b721fa",
+   "39ccde3c15462ec94d06dfd704843748385fbfbf",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426330,7 +426365,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "1eec54d3b2c8082e7165d026aabc516a43193c11",
+   "4c9d38ea19201d8b7a9fa12913059753578639ca",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426338,7 +426373,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "260fb14b0424d57801f2fd948f099808a33eeb81",
+   "fa4e8f2ac3117cc37e2554e14a6a39096dc110a9",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426346,7 +426381,7 @@
    "support"
   ],
   "mixed-content/fetch-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "9b18ebb78b21e69a2aa0f77ad34db83149f09b32",
+   "f05c4b9e694d1522d1deb163217745ba47f90466",
    "testharness"
   ],
   "mixed-content/fetch-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426354,53 +426389,49 @@
    "support"
   ],
   "mixed-content/fetch-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "a1b37ef1ee7b1a3f7daeb62308b07435193f9d56",
+   "a1e69a67b9686189d205ee231e4a47bf518e81b6",
    "testharness"
   ],
   "mixed-content/fetch-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "0fb506de19f4e5884521a1c4de5d76c976c68e67",
+   "b9599b28fcc233f57548526f6dcb4c08201a60e7",
    "testharness"
   ],
   "mixed-content/fetch-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "825fb2441b4fc836b570e71fe79785c041903739",
+   "256fca634112f76f7fcffa113956f1f276e45580",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "f35fd03dae8ec43bc11bd848032bae90ececcd16",
+   "1ebe92316fb4f4fd5167f18104c3e2e832615542",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "3b2d158d63176b3035eb25072c79c159aea00b18",
+   "250bbd4f2e75ed15e4b1b6c13ca9d73df2a545e2",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "24a1e8671d88f03739d269551a0046833dc371ab",
+   "98b12d213e1c6674f1ed4e0ac160f4bef09eec41",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "d7aa3899bfaa073f910d188f10629ab359d5bc06",
+   "a63a7940c0a37dfdd3321cbf4c0c5d44984e307f",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "55c768525d1ba650008139791bd3b6abb04a0d4a",
+   "43a6499938c0501bfcb31d914a0908ebbb744294",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "13de80df73c31e44f3ec1659ecb675716dab26c9",
+   "b1534c8777609155fbfbe075781fbd97f7ffc373",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "9045019de11f7b57f1faca355e862f0f22dc4129",
+   "bbc089ba473f0bb36f817c6324ac2d0724e26983",
    "testharness"
   ],
   "mixed-content/fetch-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "d4b8292af3242c70d6449864143843fe4c786d5e",
+   "704042109cce25f023b753bc49cc0a5ff2d93b2f",
    "testharness"
   ],
-  "mixed-content/generic/common.js": [
-   "f1574e99360f456640d0c1a2882a54eb98fce17b",
-   "support"
-  ],
   "mixed-content/generic/expect.py": [
    "2c360c1d9315db12f3463c2d005a111b02b3818a",
    "support"
@@ -426426,7 +426457,7 @@
    "support"
   ],
   "mixed-content/generic/template/test.debug.html.template": [
-   "013bb6250279d9f70155346c0177a6946e5813f7",
+   "77f62ef1da36a4c2f93aa674bd374490de41fb72",
    "support"
   ],
   "mixed-content/generic/template/test.js.template": [
@@ -426434,7 +426465,7 @@
    "support"
   ],
   "mixed-content/generic/template/test.release.html.template": [
-   "ca77389cc682d9099f0428fe97a47c6010f55158",
+   "188e32fde4bc2821776649f47540f7ac86cfdb57",
    "support"
   ],
   "mixed-content/generic/template/test_description.template": [
@@ -426474,7 +426505,7 @@
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "1816b4231bd54b7ee0f38e54eb4dde1a35faf6af",
+   "9b3b46ff01222a47b7b90acba2885741ee5bce8b",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426482,7 +426513,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "509fc34750f8418bd90ecae9ffdcf70a6aca1333",
+   "f39f0c6965316d9e2c0503e2eff1b2f8d298ea4d",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426490,7 +426521,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "61baeee7944a02033a83c86325f19dd03608e0ed",
+   "149d0dc524a74a72ad9bc25b8d5f7eb383c0c86c",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426498,7 +426529,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "ad615e9b23f29764bee97edad62a9f267b1c511d",
+   "d37a441016d4ca9614d140494da38a74a9f5c7ca",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426506,7 +426537,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "b6f92431a3a1a347c7f6ed32d8d58de224bf8f3c",
+   "49d3813b04901f744a74fd5597bc148247380688",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426514,7 +426545,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "580f4b5492f3681e0c908592460bc77bb419f30d",
+   "9787e9c75bf46343bd6d2620d0f6964975817ec5",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -426522,7 +426553,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "77adba6442ac54c9c74d2e464e9d77b26238f877",
+   "740e202ce303cea263b85a7d63118314902397b3",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426530,7 +426561,7 @@
    "support"
   ],
   "mixed-content/img-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "b08d413e8ebb74616a9feb46d85c5c9a3a2471ca",
+   "d45384ace0582331b50b6b471564b564086d0420",
    "testharness"
   ],
   "mixed-content/img-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426538,51 +426569,51 @@
    "support"
   ],
   "mixed-content/img-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "684d2449a4efe4bd1bd349df4d00e428507761e2",
+   "b1e4649e008cca66197472dc7351c873be33cbbe",
    "testharness"
   ],
   "mixed-content/img-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "b05dff3b33d56dea91f5dee47c045cff6e1ead05",
+   "3c0bce6b72de566b3f4c186023aba22f6e2ad199",
    "testharness"
   ],
   "mixed-content/img-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "e4ac20f4f08954059584b10b09597ef1106465bf",
+   "cc943fd1b5014b99a4a9e8e6396bf734c7dafb8f",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "5a7bdc3b538ffa83347eb7440028cbeefa81c3cb",
+   "8cc7a82c3e86871947d56de05d241677cf522386",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "6c0a9f5e6865b79e0fe871b65094f8260426b53f",
+   "fae9b1e4d7086721678b96a645684e638be7525a",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "c9ffbfd0c70754fef57d39d43155b564b53ddfb0",
+   "9273ac43c49fbad1c28fe443fb171b1f5e12f281",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "aab662fc3ab3efd1443dc99d98b4bef78c58313d",
+   "030de7033a7c909bacc61b2151d091693610555a",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "6f0a8fdedefbbe771401833b33e884ec2b9a9a1b",
+   "c9c20812db2f79fb27d97439d980f1f1c7656ba2",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "f55cce4371339dce41e60a40ebaa909434358bf8",
+   "dddd339fb0347ac089e873a29acfff9e17a78988",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "54bb60accf14f7c0519b98d6f92db8694805e097",
+   "3e78d29d5aa9cf7d1dbb07e2ce08fe9671d6a4d9",
    "testharness"
   ],
   "mixed-content/img-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "26d7d2390aee53f14924c932e17ff58d7ea57fc1",
+   "5d5e55ed578ebd16ffa4b7eab5ba0b1d238229f3",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "7376626e2e1982384c93ac018d077750da58f700",
+   "482accfd3445c9dc71b01f80440705d7d0be7d2a",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426590,7 +426621,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "fc123d9638d8933648a98fb282528ee8a0329607",
+   "4db97176aa9394178ab6a6842010f1b3b9d7c559",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426598,7 +426629,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "f7fd32cbf9bf9c71ca37834e1adde743e511dee0",
+   "90aa192e60559fe76ffc7f90c8b26131d2ed96aa",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426606,7 +426637,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "b93d177842299eef04c5751542985ea7fdca7c0f",
+   "3a8c8cfa9837214b0ca0f57f210c3e77a9d28150",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426614,7 +426645,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "b23f9f0eb68c94fbeaf67bb9a77fdf3e37b660ed",
+   "a44839fb874f2972d0654351f20ce498892a310e",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426622,7 +426653,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "122ee404dc7496831236cb7fac9f91eb173f91b1",
+   "7a8949053efb49eb262658cfc29f24487dec0e14",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426630,7 +426661,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "606887e3dd529aea3740fc7249ec8f39199c2da2",
+   "585b54c738b9dbcff980a463ba68a146f6db3169",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426638,7 +426669,7 @@
    "support"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "2f4f750de9fc3538c0cc5b73e9d745836fbb497c",
+   "d6166d041af6101a37e7ffb4cbedbd7df9c06144",
    "testharness"
   ],
   "mixed-content/link-css-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426646,51 +426677,51 @@
    "support"
   ],
   "mixed-content/link-css-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "191b4a9ea66404441c6903b026bb1d813951a710",
+   "9b6036b96a556b7fbe5cd23924a44752cec4cd10",
    "testharness"
   ],
   "mixed-content/link-css-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "5e71b99d4c61bfb1962c2f2f3a11dfb90195fbd8",
+   "dc18ca79c36bf9f95f7adac75add66859d401756",
    "testharness"
   ],
   "mixed-content/link-css-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "869c05abeca09f64798294e245ca0c429a5d8ec0",
+   "5e74a770db8d8c5758b1317905a55f40ce94f02d",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "13c536f3eb58c0ae4bdd32ee604d97f54af5be38",
+   "e6b3dedf6a9df07df214d4c61044c9ebb3bfcf10",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "e941030043ee499603d6b9ee709593bc499d19d3",
+   "88f21d4bbff70c80e85ed598f4c03cba90a3e567",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "c9efe54e44a74ae0894f2f46613171f001568c69",
+   "ebd1747a8ce8768d984d1bd75a9e28336fb082fb",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "11d8f4877a760b14d7dd72eddcad89a2c94e7d5c",
+   "76b18d6f7e03d28d4f6b788cf03d9c6f27a936c4",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "ce383d9aacb9605e86de85fd34b14561d50157c2",
+   "4449e58c1b673a903d9ef461580b65b66129ece0",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "67b58e0096ca6d3fc878e75f5d5efb68028e6ef2",
+   "1000359b175bf5910e127ce20ca3aa8abcfd5335",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "7d620f8da936860a456be52c7ef089b23b9f774e",
+   "e07e2fa5b41eabb3411f05dc48d960da67a13cd1",
    "testharness"
   ],
   "mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "f6d23405dd5e7f8907d77b26541a5172cac4f54f",
+   "cbbfa0723d4c6460e038657d5388056a8cc8ceef",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "bcb7abb7c0e210edd372b00a50a77d2de6228513",
+   "9f69cae481f5ed1aa1b4bcc2582871748266ba8c",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426698,7 +426729,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "3c6de84218b69e2e425b34b4d6a1641884e94f83",
+   "883cfde572e67efb54e031e5b4f85836e9f52186",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426706,7 +426737,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "1fe904f138a2d1cbfd662577080f22c3f5da1e4c",
+   "13e9b46cac4521659cc2d83016b1a47a963145dc",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426714,7 +426745,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "2db9724a2ebb49efd7c15569998519126a77469d",
+   "a806be7e0f107468f43b441877e037f7fb3774c5",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426722,7 +426753,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ddad38792d40c06efc0fac25131eee0e38475666",
+   "69cd3b29d5c1f4388c6e0c378d81fa8d42a0a7a1",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426730,7 +426761,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "d2d15b98dce354773df860faea1e9361ee0d3223",
+   "f337745eb43e37732aed9d7b8a4b8dddaa9e5d02",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426738,7 +426769,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "a047941dcd48d385c998ee796b5efeb896c6d5a5",
+   "9e0ab39c5a9d66ce0a42fca56da0515caf2c5d4b",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426746,7 +426777,7 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "bd24109afe28c87f39dd30a17ab6661c99b99040",
+   "819b543948da30fe171b787a4cb7b2764c49a598",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426754,51 +426785,51 @@
    "support"
   ],
   "mixed-content/link-prefetch-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "16c1e07a50eb66f980b28f6daea1b885015c7cba",
+   "a9e57c17ce11b1bcb32b3ea4053fec1bd0836ecb",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "f3adaf6cec99f5eed9f3533f7d9e70d4d0e409b2",
+   "f2025dcee2a6d570e9e42ad9fc213d56b6862ef7",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "71ef6d359d1be2afbbfe17c99eed3772c8fe0cf2",
+   "b787497cf92a3fcbffbcf45b00b14c4085e9028a",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "6db10199649adae3c25c99d2cd0385e393b2dc09",
+   "9317d5c73a785878737bb3a2d84eb7f972fb1b69",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "5c41820d55d53ec06132a85799f04c8328c9b648",
+   "8dc0000ba7781b179b8879d640b99d60ab781661",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "afa70d38e9635fa75b3d402b4c9c255fe2695bfe",
+   "64042683224fb90147fff3e6caa4916be092684a",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "00241b622cda657763f67ca2f89e201712a7734e",
+   "1655a2eaec69b90477009ff639f74d83890cf807",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "f1be54283e0403df4e1cfe60b7fcd546e9de617a",
+   "a47869e4304e4d98bbf98926613665005fadbdcc",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "bc14146a24be8c6f6cb1f46628b96275abd0cd87",
+   "1359609a6028faf6873b912699221b08c443b02c",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "c3ea33fdb70008193370465525a42acfaf3a426f",
+   "853bd279af52f16de804e6635c24b73ab3a89629",
    "testharness"
   ],
   "mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "4c59111539119b51143b5fa7d9071e238026aa5c",
+   "f450941427d3bd55558042a8c5efde11bdfafae6",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "ae4ebff13cedd09fee7befefd5525a71fe6d4a96",
+   "0d0e79c5624f2bb066da72706a3572fc1736af2d",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426806,7 +426837,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "aa3fc778fc4769953f474d76d10bbbf4a2db0619",
+   "8f09c46e61b0bc0885daa83e6498f03993a2e16e",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426814,7 +426845,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "c9d2d22c8a095447ba7f6ceb7756fb4af42a759a",
+   "77e7aada13c13131c2567e712064f5d625e16a1a",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426822,7 +426853,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "5202090bc564b8823af995daac2dddcf6bce2dd9",
+   "adb8f0711bc47a5759a68f34629b6a3c835ae8f5",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426830,7 +426861,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "2013b19c6b64890492ebdcb7f13c57d2a8f11cd1",
+   "39560f5eb4a176cde427be6de6d8d9bb86db091e",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426838,7 +426869,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "fbe8606d65613214e6971278067f2c2f3bc7440c",
+   "2a3781149b6f4c58164de5236426d26de9ea3aa2",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426846,7 +426877,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "c6c56e0c9f4c7686ff7c0ff311d3b29f01a5415b",
+   "5b8b9ef9570535ac2f44c1226bbfca54d0a12884",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426854,7 +426885,7 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "c62ca1208dad25c8271a6214cc5f0e8029b827dc",
+   "ce6e20725289c564ab4a82eec56a083544c641d4",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426862,51 +426893,51 @@
    "support"
   ],
   "mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "349a3731fca66bfafadafb354ad332b8793cec0e",
+   "5055e600a12d18acae4bc2f6995c61602bc0b168",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "6536bef9032bb65e98e0c76eb1f4c1a0984bfba7",
+   "f2e537b7854418766ef5532c575419c4aa8e9011",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "9632f6963f3b212827daa01905545f7471a843af",
+   "acb39ccf4950e0738e80813585d5f90c8405850d",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "fde3d3ab49c948ce33de11f8ccbf5fa0ca6908e7",
+   "9adb36a3c7c0ff40c007ee8dd90c42415d42779c",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "4fe1a650df7a17b5f22ac2eaf85bd9797d7e08df",
+   "4124504484e4271f2f2a244fa949d10abe82edd2",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "93d5a1b631bf246e5f5ec92a661cf3339c142b6d",
+   "20133bca312456df342b403d8f21067718615e07",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "2810c3c159bb827e976d39524f89ba29bceabb9e",
+   "29010dfc2b4dd95c80aedf6748fa25f769929334",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "afb1ac17cec58fe6c8ec3e83e57a4035012a21db",
+   "fb989ecc2bd6522d4e8c76181f5c0d538d3ed6c5",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "e54f7ba9618b0775a3c52d0c41a4e46458d688f1",
+   "c4a8417f072f48f1b560c1cdf110ba34870bebc7",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "7791db2e61f7c0e16f45992518d56ffc587eaf6b",
+   "1f734b4618d30c44886f0a115c880bc13d6aa624",
    "testharness"
   ],
   "mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "d50981f6dad51a632d83b56f62d16a060376decc",
+   "4c171710212868ff513387551f49db431e8a1fef",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "65c121204d4fc078c6ba5f897ae80ba40e4e2bc0",
+   "48bd7e27934ec24d6dbf3ff5ee7c6e7f80fc3095",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426914,7 +426945,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "29d56963e7987de3d061c1e3bbf07cfcaeda854c",
+   "905108ca2f94c47abfaf8468ca36897acf6b0646",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426922,7 +426953,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "25bbcf1e9e8a05163c23951d173d40b213af0ded",
+   "9992cf98607dbf761a8d11341bcb4f420283b5db",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426930,7 +426961,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "5d34ff67cc53f856d3f5adea69f7b73af362c274",
+   "895b87587038f07339fe5c0a3f679b4e1d066b9d",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426938,7 +426969,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "347c57cb3a66faf991e4c589a3297c7e47654fa6",
+   "ed488953ce2ea8382868bb3d999abf1f7afabf9e",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426946,7 +426977,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "ab991d2c8d25e2bc2495d9aef99c4f22019b774e",
+   "4dacb3a7c43be79f7983e2a2ec1a9e2d3a67f2b6",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -426954,7 +426985,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "775fcabb1beb8aa642ab5218aadf8d1607e01ae9",
+   "e7e01df2982563c323c6a38ff4221dece455e7e4",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -426962,7 +426993,7 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "6a9a6437c8d1daf2b843e0eadbe7a0cf17c1d046",
+   "1adac7769cd9627ce958f08887205b51577883cc",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -426970,51 +427001,51 @@
    "support"
   ],
   "mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "e873d4a73d12fa1d3e1becf56227ab4ef293cb6d",
+   "bff5398b2634c78f61282ffd621f680b88f16ab7",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ee6c6da0c3f66611c0457645f183f6636dcf5e6f",
+   "ac623c71a45401258780e1cc7b76080ddb2dd503",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "2393202ae06da4689725b1fd10fab939fd5aef97",
+   "ff7b496a197daa0d5d9b22e2b090f4f6252f5fb4",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "64f777ea3d0477da70d4c977547036df85e91eb9",
+   "fd30ae973e5565e2192c95f9b94538239962ab6b",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "4950c32ae14fc3d62e320f3f35b976127ed69c03",
+   "2fa81d5b8a43e1e7e58a0052795376b865be9a94",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "7301b826e84c97e99b65a61833cb776fda4c201c",
+   "7a9a84582d64839c84f6f5a835c5634a691fe64b",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "b9a59ad493481273578f14704dcebf7e5b1503fc",
+   "4f9e97917714639f209d05de503173832e8b413e",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "f1d99109db61000faa070dfdb3b2f1b80a67c224",
+   "8d83c1f93eeba6b4ba67ecfc61725d7b7b227a5f",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "17e86bac43a92b4668b8f16c25f0abf6253d6c3c",
+   "5719538c0fd7ec778875b494bb5ca5d9faaef49c",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "744ad87bb24fa0c32dafb93e087f24d4efed7320",
+   "16c4d61aaaf6deb89a5074972cb52b04f9da3320",
    "testharness"
   ],
   "mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "e04e9baeed863aa47d259b3e42174e93dbb47303",
+   "91db1463370877cdf32eb2bd4eea11ef86df0fad",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "8ebd99b0118ef4ee214bb56a9a1153aef34e0945",
+   "5e710368a6e1bd53e803ba8f7229923deb32777c",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427022,7 +427053,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "b7743daa64c8e342f190926f46164c41822754a6",
+   "242569e5bcc86f06b1024c955eaa55832f41ced9",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427030,7 +427061,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "3fe162a2f7cb5a8b077d29c709026e4864af3f11",
+   "d2fe8eaa661e874cf9a33bf78b2723d1147d57b9",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427038,7 +427069,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "4c43f3aea64713d07a16df82ff6a4f5384d112fb",
+   "4959d44533e2be5581d76499c7f77f86543f5ab4",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427046,7 +427077,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "27da8b421be657bcec8a71234864574f7d853f05",
+   "45d70e8185c6e36108ca4240bdbd9b583222d374",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427054,7 +427085,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "01df78229ff99b2b4e2426a90a0ef6398a8165d8",
+   "119dda323ef8dfb07deaf716f0e4c97be4b251aa",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427062,7 +427093,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "d1be723f15d575191c62b713ac5624aa7037748b",
+   "01cc0998c0ecf07f9386a8d0b19e6d1ecd0b5840",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427070,7 +427101,7 @@
    "support"
   ],
   "mixed-content/object-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "3f8ec136a1c59a784e131587b09bbb036519faa9",
+   "72275f9946225f637c8c7f53380b3fea5e7bcba7",
    "testharness"
   ],
   "mixed-content/object-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427078,51 +427109,51 @@
    "support"
   ],
   "mixed-content/object-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ee5cfea719226d0f0fbe030a841dfb770ecf5cca",
+   "4cba2b547fa1369c0b16966a702f0e03ae310b2a",
    "testharness"
   ],
   "mixed-content/object-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "28fdc6f0887d3f81100aa73fb7b7a000e3b2bdb9",
+   "ea3e1dc4e76745913f3b558ec7e9dc171322d3a6",
    "testharness"
   ],
   "mixed-content/object-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "662ac192a8819519e600e9eecbda9e2aa3d945de",
+   "d8c0fda2bef7e0d8e027192f496a9de81f599600",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "23e6badf7ea744b9967d4a73a087712ab5181d4d",
+   "5ba57440bff7af3e13e83a5cb393b51d59958fdc",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "482024535f9ab51f4851e0ef10687c9ca8d3681c",
+   "414ed3a0e5f4578c718774cfaaa8f2242236b031",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "f91df5037e7f215fbe9b9f7ca922090f64a06f9f",
+   "a9a07e7c68986c0608a30dfa28e2bff7e3ae1390",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "190b66b0d62c685313e0957a7acca1fbdb02aa53",
+   "36ee1133c4cb83468d0b73984c3a814b9706aab9",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "c03d5036a385886153df535bc4bf7632b15e63f2",
+   "32bf8286926e6db575a8646d25317b95a3736d3b",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "d9a1666098166b40d2537ccac30586f195607446",
+   "57d8e55701ff70b67d18d523abc644581603bb07",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "ebfb5195eb172b0609cef28acf6123da32a496a3",
+   "1fc9bd34247187e1c46fde78ae0fa8be9cea44bd",
    "testharness"
   ],
   "mixed-content/object-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "f5ffcf3a8b2f3aaf6473d8844e6a6fed9479c8e5",
+   "66e4183460ad27035fe265e604ce6a9f7fc46eb3",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "6f71158c2160e4ca2634e0d66ae6f0f276f13387",
+   "f4284d2710dd07d2ea2c7475a9c88bcac2e1c8e3",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427130,7 +427161,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "48012dfe5504829a6f8d3fc0f1417755d84444aa",
+   "81c5e313e1f3e443e3e7c26d531a90634f778489",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427138,7 +427169,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "b76c48a658af25986695099ed1ee9c0e10d065fa",
+   "423d55b6b9e90ea302e682e7aba4378385a1b1f7",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427146,7 +427177,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "27e971ac49c1d49e7c4f9120f5261193370ca7b4",
+   "265c22fef5c4bc5aa84814be306a9258a4c800e9",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427154,7 +427185,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "0fe505a4b05c96d69265632f2717487fb702c5c0",
+   "e78b35af9b7336d559fb27fe2e1df5f96664e3ba",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427162,7 +427193,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "d066d7f4af16cb751cd03f7cbfe036de9f8946f6",
+   "e71eca9f52103b49c81c9a62313490a6e0dabd10",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427170,7 +427201,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "3ae09e2e3f31d757b6a61a7c6e75c81f517a9cc2",
+   "60bb06333c80166143d3b6e15d214e57bfbdb724",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427178,7 +427209,7 @@
    "support"
   ],
   "mixed-content/picture-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "883c0bbdf780c5a56551a21a58cf18a137d2f62d",
+   "082a5d0291754da2a64233f1c48436050959f75f",
    "testharness"
   ],
   "mixed-content/picture-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427186,51 +427217,51 @@
    "support"
   ],
   "mixed-content/picture-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "abe50087f63ecebeafa1f539d99ae62856bf0523",
+   "d240025aaaaf179ad50c32bfe07573addd755d48",
    "testharness"
   ],
   "mixed-content/picture-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "9c484e398a2b226b836b6bd3331e994ace23af48",
+   "545858eb23d91f0e90b59bac2ddd1a2e36de990b",
    "testharness"
   ],
   "mixed-content/picture-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "0d846777fab3f9af654fa77144ac29771743ceb3",
+   "1722e18842ae15422b7c6c46af967ec92ea243c9",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "09fadc8d3fb98f66e785b57279640b6d054c1290",
+   "07b58b5e8f1c23eaed9ad3a2f3e568d5a47cca4e",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "63505012881f4d6847c2deac2ea693cf261cc95e",
+   "7cd700532308bfcf504bb53af702579f3f6220c3",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "c3bedd387d718366662a6ced17078124002f086b",
+   "5109e5a031d4d74218df0f3814f70e20c86e9b1e",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "0b2a8c8ff5a31ca718446746702f2f38cf220981",
+   "1005c627f67ad8b3f0893a93177bf71c58f2fba1",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "532c97bf066cd512c4b5a11caed0334762483e4f",
+   "98bf20f362e791da3740eb45ae5dcf75e1172c82",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "662fc90485af68b205d920e0c79b19cfe0be36c4",
+   "a5b1bedb767f4e460309a0fcc765370284953f4d",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "57efd6f5ec435c412abfcc9249714b980452fc29",
+   "76580a4deba1158dcdbbc5164678585b066a3215",
    "testharness"
   ],
   "mixed-content/picture-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "e3113a84c9f42dbaff2362a2956e48a9fa9604a1",
+   "7e6f59e33add340e9b3d288a8ff2ce16a217a4ce",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "61f10dfbff3c457ab88ed4e601a65c5a0ee94b51",
+   "a1c58ee77b0e2913ca0cce48a127b1864abae910",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427238,7 +427269,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "69210c6061d86afe74ac959afa4778f62a04e79b",
+   "53729bbbafdc767028991c09897004edfa70ce44",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427246,7 +427277,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "a2201a2132a40c4186030b191c0c74b04738fa12",
+   "3f6d76717c0c9821778c2240828a0dcdc644554d",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427254,7 +427285,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "011e515da17668df96e748e8663cb8d53590e12b",
+   "c89c2a58c793e6b6a74d8b46e6134b45db491c42",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427262,7 +427293,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "5c8d860a695742c8a678473b849c633feb6a3bb2",
+   "84d81d6036616ace866de9747b3518825ee25bdf",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427270,7 +427301,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "123e53d2027ffca05daa79805a22b92fd5ebcaed",
+   "83110755a63da18d90a4bf109866da6463063c26",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427278,7 +427309,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "cb3528e03c903a64b564fd856c2c8c763f84ac97",
+   "e7b7bd4e5c8a7fe16fbc9789e2c459d2ab386b91",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427286,7 +427317,7 @@
    "support"
   ],
   "mixed-content/script-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "7bffa299c5dd914b6637545b207fab95bac9363c",
+   "1aaa44590e831448e87beb06089b91caa9bac0a6",
    "testharness"
   ],
   "mixed-content/script-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427294,47 +427325,47 @@
    "support"
   ],
   "mixed-content/script-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "7e9a2395a3cd228bdd09426868c486c44a036524",
+   "bcb3b05739dfeeeb45e513abeacaf0ad69aa74ee",
    "testharness"
   ],
   "mixed-content/script-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "44b4795c91eb591486c42c776f60a51b3e1bdae6",
+   "c6af6e42c53d24303b594b019cb2052156d71a46",
    "testharness"
   ],
   "mixed-content/script-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "0d0eec01c3667998f6fc501cd74ee035d6b6ab90",
+   "df5aa5228da2e8e5131d55bd74535fcb0aa4dede",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "4c375acd157788d0ea65bfa5d00ebcb4ad1fac90",
+   "d0048db305551954b7934ba3e3d90b09281caf0e",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "21d152557194674f062b51f678d34205330d547e",
+   "a1519d9c2aca31674525075d1607fb91067d37dc",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "cd56451c5e4e75975e6bff3825b378339d209c48",
+   "9e46278e860dcac3a7c84740e3b83a1d0bdc6e64",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "cc1c051a364f5075e525bb904a7b12e5a6985313",
+   "d92025d3d87ca3719fb136f842dac1142d530509",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "23efca0a54c18f37f81d516ecf38532716dc9d74",
+   "d84c70e54e3005b46645c7912ee002f162ea3c95",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "69e151519bb25e47a722d5958cb78e5d557f1d11",
+   "d4ee7953bf7c36a8a4ca7f0b428a746cdb6e6df5",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "9dc0bb122c47d7c172a8c9290eafde9c9ff0e453",
+   "d8b2161b7c8f039c082f393d18870c547f77c484",
    "testharness"
   ],
   "mixed-content/script-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "bad7e7f21044796d322b1f6dd59b0397edd85ed7",
+   "7b4423bee35da00b8906f25e83ed46f93a0dd3c1",
    "testharness"
   ],
   "mixed-content/spec.src.json": [
@@ -427346,7 +427377,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "029d34c4f4178e488644c546e9f395ec6edef91c",
+   "97d76b32ffe55ab7116a2cbcfb26067d42fefdd6",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -427354,7 +427385,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "c72ca267fcbd2098f89d2ef6f0f906965f19c3dc",
+   "6d2d972ef94faf7dc74daf26533adca2b808c3ee",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -427362,7 +427393,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "b50a7b70a01c11836b23104023df5c52fe856398",
+   "912f59015641604e8b48fc950b0d01e7d20f525f",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -427370,7 +427401,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "8b64104bd2f2b7e39a202718ec562239abec5918",
+   "a0957ec2cfc315fad8924bc6db3b37e035150fc8",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -427378,7 +427409,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "abe3385b06a730f019cc98ec51008529a25a48cd",
+   "a01f53a05714e6e5c45e5aef112ae1f7080f2ad2",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -427386,7 +427417,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "78d9f8d5d4e2080e67b2b839833cf588c2050e5b",
+   "fb3b6344bc44623e29dcf1ca777f9edb625dccc0",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [
@@ -427394,7 +427425,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "ce72664408e0246dc4798bcc8a651b84a3d0876b",
+   "8bd2c9f602131245ce20ad7807484508057d78e3",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427402,7 +427433,7 @@
    "support"
   ],
   "mixed-content/video-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "b9ddc78ff18c7fc9c35405d65b5112036431ac08",
+   "94a5e8e640192c36fe9f3eefd7fa1fcc2d153325",
    "testharness"
   ],
   "mixed-content/video-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427410,51 +427441,51 @@
    "support"
   ],
   "mixed-content/video-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "a181ecd388a3b2dd807b9e020338e72612e02dd6",
+   "5910d534508f84083b5a08615ed59754bd46a7a0",
    "testharness"
   ],
   "mixed-content/video-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html": [
-   "05f1890c98ddf4596d53e465c8c8e11fa180907d",
+   "44fb60208295464efc1d99fc3857353de313fb71",
    "testharness"
   ],
   "mixed-content/video-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "cf84396315ef2800c9e4677b957cf41a713e1358",
+   "1cd1855b2ac5d510d27f436b2dc5ca7e25ea94f6",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "561a2f7c1b5fa1069d649f742e0ee2b8262bf004",
+   "48687c66ba9816aa5902add40485ce6a34ed77b2",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "e02134b4acfe6eb35a9486530a904ad943237263",
+   "e39519b4bc856899fcba23a652131ed13bbd6f85",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "f90575c137a6ae69ea78e2673c31d69999dc0b20",
+   "1075bb4110fe2bf722c77e3f9b04edb1ecd17844",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "68bfc2b84a81b51b77083e777d8d307bde0d3a51",
+   "e97fcd5278a8a7716de29c64614e916fe4223e24",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "2e5eff5a74efc3190062df98b56a7139f2c85395",
+   "e74ae75d66f7217176851184a5b4b8a891f07cd0",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html": [
-   "8c5bd7b080619ee6967ba75b205aaa51b192e0be",
+   "eaaf53bc36ac0ab092b3db0f46240ea5dc1f5f5a",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "f044783e62ba264cf29a47221c9f63ee9b7f3c29",
+   "399566ff204af8a4883ca42f0d5e6e11e565f388",
    "testharness"
   ],
   "mixed-content/video-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "fd0a1f923a7850cc6335ce074b57b90395d5a7ef",
+   "2b51bd4cf89679eb48bdeb02efbb3c101eb69437",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "5f4facece9f5ec53fac0f82c74b4f1243c2a3b95",
+   "4f52562fa8f1508bf04540592eeda051071a97bb",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html.headers": [
@@ -427462,7 +427493,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "0d700202fcf8b606c892aa614c32c936beba2784",
+   "20fc9b91116f2726b58dcaf639030371237970d2",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html.headers": [
@@ -427470,7 +427501,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "22e930e20b4b9a8930a26a9ebac843a6135eb5f2",
+   "3a67d126dc6c23f59cef0bf8479bc33c8437a711",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html.headers": [
@@ -427478,7 +427509,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "972d7f3d34944b6d50a3b674a622d5cc2e30c189",
+   "0b1702a56e95ebb96fdb6d1df63247127ae8832d",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html.headers": [
@@ -427486,7 +427517,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "66b20800ffa6eb3164bade8a82bf06e8ef0f8cae",
+   "087f54d287cba73e0f9dac22c4fea78fb29774b3",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html.headers": [
@@ -427494,7 +427525,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "664acc6fa8ef6cfc52083a79ccd6760c99b8fa8e",
+   "2491c53841857272d969f1262bcd1a03ab8f834e",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html.headers": [
@@ -427502,7 +427533,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html": [
-   "ff33c35d16982635cc9c542c772a86e4f1abea78",
+   "727cc350f4a25b4799342c9f547b30d3548ea442",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html.headers": [
@@ -427510,7 +427541,7 @@
    "support"
   ],
   "mixed-content/websocket-request/http-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html": [
-   "dabaab28cd62017c1e6588f44e503d009cc874c0",
+   "5a10108a5d892e9057aa6a14008e71ad4d7b2ae0",
    "testharness"
   ],
   "mixed-content/websocket-request/http-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html.headers": [
@@ -427518,51 +427549,51 @@
    "support"
   ],
   "mixed-content/websocket-request/meta-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "1bc4b11d9a704b241dbdcdfc1eef824dd614975f",
+   "f2e2642498215498c7035e2f0abdd60f10ebdb8b",
    "testharness"
   ],
   "mixed-content/websocket-request/meta-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "a3cb304e034f8341900f5b8024f9f4d4c0c767d3",
+   "e9442970783d6b1f0780ac16113eaa2ef6c2ca19",
    "testharness"
   ],
   "mixed-content/websocket-request/meta-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html": [
-   "f1cfed1984c653586b40c3f09b37ce84fd7240a0",
+   "45bf7d3bb213cc1700bdef4b6bde621cb3c95e6a",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "ef959099b113a4dff84573575383276f7823ce06",
+   "049e61b1ded901af8ecb0282a2ae2c78bad45e8f",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "9a344137bb9623a95443cb8425d3087247add271",
+   "2a282084a1de4b9d2a457dd4a59c16ae37d899cb",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "fad857a6ee1c4b34be670cb1a46d2e2f0eb28ec2",
+   "099056fb25b7f3c430a5258008402ec36f23e692",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "cc63690459aaebf3867785ac7e5130e41ba45df6",
+   "c24e1d7ac99bd40eb7eb2af0cf07077ad0df2598",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "4b7ae62fd4b2398f21772bcd7a2164378ec4c9fb",
+   "83120667aff098624ffca28ba3078c2bcc6b974e",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html": [
-   "278819b938f692a92b958c91b74cfea66b1bbd2b",
+   "5fb923f2b5e2d88a16bf79d4d8fd339eb22dabc8",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html": [
-   "52684b1a5015fdcc2ca99bedaf21bec8ebd62167",
+   "09fd3e4259e751c2822e29a4261f60931dd27938",
    "testharness"
   ],
   "mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html": [
-   "a32429b8866c5a912540ca6e98226dbb4f4fff43",
+   "4e104fb8519fa1b985e43056a2c1bbbb361cfb08",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "8fc3283a0acde7db2af7c31026a8955da4cedf7f",
+   "3b1be17ec596604e3bba1378a4fead28de6bc8d9",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427570,7 +427601,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "21f63bd7307400dbdbb3c5fb4bbe5a5d22a5ef1e",
+   "e5c5a860341549c49a6c7ad31d2d2b15b26ce35a",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427578,7 +427609,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "d4c437147aa3adf643688e72a04db3d9b4d033bb",
+   "f318d00b762d0760c280a65151f087c383ae20d2",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427586,7 +427617,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "735c267a88a82a7ada24d1707e18a12a570c9f79",
+   "1e133c2a8ed340c9374c7deb6a6643ed29eb52c1",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427594,7 +427625,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "d70b857689740a0142b4f9001783fb9ece7b965a",
+   "1d7c1ec1c4de362a8dbd46dc7c1767e63c41b7c8",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427602,7 +427633,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "bf77ac6d77ef0b8463000d99dff11c68e219333a",
+   "3e31998cb632fc7286c6da67468f6185ff10bcf1",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427610,7 +427641,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "1a9053e4c3eb23d995550a31db8c3468c61dcebf",
+   "2fa9e6b3f6d97b6ca3879d3ef820e2c029f7b249",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427618,7 +427649,7 @@
    "support"
   ],
   "mixed-content/worker-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "0488b133755097e9fb20f55dfe61e07ba7c49cfb",
+   "c4651834b12903b5fa7480d3f7d3ee027d277bd9",
    "testharness"
   ],
   "mixed-content/worker-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427626,51 +427657,51 @@
    "support"
   ],
   "mixed-content/worker-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "63ba904540373c412ca3491d0e0c24908190e8ed",
+   "140133fcdfe410f14156e91a7a7f586135dec63e",
    "testharness"
   ],
   "mixed-content/worker-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "22e7c6eac283343a6b75ec82f8f0913425178c4c",
+   "f664dfc3007065ddec1adbfa6d4eb438a239f2df",
    "testharness"
   ],
   "mixed-content/worker-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "e5bf5ce95a8226764c0731af2cf7d3e2becc3500",
+   "f639f30ee341201ec30c2f1bf7e6c7d7eaeedf4a",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "4feea4b7dc0a8dae64e992465f929f71822db47c",
+   "7a8df78728cfa3f7cd417a993c1ef7a9fd153132",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "2d4f15b13e202a6423f162c87fa4dc27ead8eba3",
+   "99162059a7e1a7ba2a7cbad35bd526e37a0f0253",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "a6782c7e5b88ec9a59d22a4f5d44ce58d019cf28",
+   "5b69f15948310f519d93c9a5b210ec8eb4a38492",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "065ff5ba526da3c50977852b2dbf29a28b57f54f",
+   "f6bad6b76b752ee4d249c41ec1847afb1a1abf1c",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "3cd8a67482ca4fd67ceccc93d59ce76f2bfc93e4",
+   "e2f8a28561ad6fa98ba7f2d8f267e32fb7ebd770",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "3b3e17c27774517b69a7760568395ff2df413d23",
+   "54b34e77788e9fe6f44645e6c3d50c3c69e08804",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "d720fc4fa993a7384760b8a23fb8f3fc6d4f73c1",
+   "a277471b5d062e31571ef64c8757e8210acc80a8",
    "testharness"
   ],
   "mixed-content/worker-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "bd69a14a9dee83efd7fc0d70ec2c061a6597e29e",
+   "db091027140cbaa22ccd79772470f4e711dffe22",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "99c2795851f6ff97e3e9912cedf545ab36487007",
+   "1db0a1e4436e7446e8dadad3ceea926fcfdcfdcb",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427678,7 +427709,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ea193eadbb0a1918966ffcc362ea6ea743d27cb3",
+   "30cf903d12fcfd16daff32be00af6d54968c1653",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427686,7 +427717,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "f410e1cf8e8bc0fa27040b0cc97bc1820494417a",
+   "8840673a63024d3ea6a70b77436a0e458fbe4f3c",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427694,7 +427725,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "cfda98f785f15bc37918a4da640ed53cdc776700",
+   "fcb3ed1f3af2730f703a720f55d5f2d47726cd07",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427702,7 +427733,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "a85242a83345971e145eae86fb9153a50372c08d",
+   "e97d9ed90520552a8100dd56879abfcca87c2531",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427710,7 +427741,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "48d74bc30817ad37f6a85c985b91e2f87754cd41",
+   "b9e6af0d6b3eb1c132e996118be5d1ea5689ca02",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427718,7 +427749,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "7d0cdae613eece8ba3b267a3016b9ed95590b395",
+   "79ace7792930d23ad46859031c9eac0e6cc1bb14",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427726,7 +427757,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "94f97850ea7e9a66c6808b4ad0496ccec013ede7",
+   "3a41ecf140b52b10dc9d12dbd52e9e4464dc9a1c",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427734,51 +427765,51 @@
    "support"
   ],
   "mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "1a895d0fd70a5d6d24c4b3bd49e0a60db4275e43",
+   "9bf5482526add89390a5975cd4eb0dae018c0aa4",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ab90656e54ce2f2459a1c4e82ff06a3a46e64f8c",
+   "a7d02739da227ecbe9fe1529cf6b7e7cd7dd653e",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "113460364e35acd4bed4b591ed82f2579bac0175",
+   "2e7aa07099090093c980d72f0da9023d21395a91",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "a636eef658b909f9a72b554d574783f26aa9d176",
+   "4a97df5b5bab0fbbbdba16836a41ca806b541e65",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "8aa7d05881f0a95f2e553c011ce508b382b0ba9a",
+   "0358e5fb6bebcfaaf55e3ee4b7cd824866b79184",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "5ef502f0c29f8189e0c6e250cd6b0189c551e2c4",
+   "d59023de3847c1327119cd28888268bb63f8c681",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "34b6be42bb5ef26330b92944b50be0fcc23c05de",
+   "13e9150460b21591f74950adcadd5df6125e90ec",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "1586df97fc5af16dcd3286ccdad1dc39638095a7",
+   "84b53d8f1ba92fce5bf6466d5f31c39312b417d4",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "73f621edff11c115e5fa8a11ad73598e27fbde5b",
+   "4b6dc464b46ae6dad73f43ce82593627be1f2d83",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "2b32f598852c15ead544b7d37022807dcfd9bda5",
+   "ad35a459266b4fc1ef05ee83751fe1ceecd830b7",
    "testharness"
   ],
   "mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "35995bb976f0f8211b2121ef5726dcbb54ab625e",
+   "2ca7129d2eec2420226f35301c847d36a17f256c",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "c858da0c4b60ff29747ce9e915276cc647469710",
+   "3ca94248773ab57aeb87b1115631a19fb529664d",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427786,7 +427817,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "0387b165e1b7fd435d927d3dc37db4f540408cf8",
+   "0ebfe517fd1b51dcc7e31b2439edd6257621203e",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427794,7 +427825,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "34a4e1e532aae2644d64daee7bd785e5b4c40317",
+   "85f339a461fee4d61ae3e27b9d5ce1b86d31cc74",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427802,7 +427833,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "b683d8267eb6fb2b7ea6947434186b37c6389e75",
+   "2ff42bf27e786d77d690982671993d1f61728b21",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427810,7 +427841,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "5655510609ffb7f3c39b6bbbf48cf2b2982895d9",
+   "3e0fbbc958521564401341635c5f10c300ebb009",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427818,7 +427849,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "0ccf4bc4229c5150a5ac82594c29e34479260cbe",
+   "b12e3d7fbe2490739e3bde39730080db6725f915",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427826,7 +427857,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "7c54048c0a9cb68a83c0371775fb7a7686bd75b9",
+   "3877b4adf8c57082f2a8400677a4db589dff8a5b",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427834,7 +427865,7 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "2d3eb78d6186e411f56ce651fd441d2a77803ff0",
+   "1aeee584cff45e4d230ecdbbc89e53c16ffcac0b",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427842,51 +427873,51 @@
    "support"
   ],
   "mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "989f1ad507802cf299f70a51b7f45bf1f1264dcc",
+   "f96210c1198f2f37e6996a8cd6a82b98a02aa8a4",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "46bca306999c4ba0865a3343e9786d0ee42ffdd6",
+   "86e8c0c4b5e01f062867df308997c10b365e11a3",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "313f7755b48205a19b2370e571311771603a72af",
+   "ef94f6df86a2e19ab6a595ce8d604cf3c11c9728",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "033b1d9798f0967bae1204aab8216237fb45fc1a",
+   "557f3f78e3bb31a2d42abe8bd5f104a3230fc9f9",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "c4d4629746b36b8a5b49f6f02cb68333094a0f2a",
+   "f9dd0619e04ec7950b2321237d53271c142b9f28",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "90ad6006617bc7e947c49032b2c8fd448529838a",
+   "f6e6751ed4824570ce440ea2be1b900b175a3423",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "5111667254f67dcc684a7d8610699dd423429aaf",
+   "2b1b0b2d913bfc20905f79921a4d9ef3695ffd21",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "7d54c015391f9459c30b4c7a9ec78a08d80c3a0b",
+   "159329a1ff0b48def00e858cb899edcf341b50d4",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "e1a0ac5a997a0bd3f1384aa1d106204557f78488",
+   "0e045e1bce01971b6983cd41a133110d4c2fb3a4",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "812cec20e183e442d905608174db0bdba5c3246e",
+   "6658abc73aea2ff423b930b177cb5465af13ead3",
    "testharness"
   ],
   "mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "a3611976131860574ef43436ce4b10c183611eda",
+   "32ac8f2c932e2ef0f108a69d4e3a63dcc1f7c721",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "81e57b110c0beb38e1b0bc8e80258e151ccf1359",
+   "189a25b2e6d3d28bc53ae475967a7572a648b2a7",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427894,7 +427925,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ec537f5792331dfb420c2572264668f01c457bc6",
+   "3144aba7d7abd05c6e3a2341a4adcce31bd78385",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427902,7 +427933,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "0b8ddb9cc9293ef86de47a67e0ec985b8ec2de94",
+   "6e5dcc59a868d05ab754128759f250f843217970",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427910,7 +427941,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "d2ab9e1e32510155a301074236d04b978197646b",
+   "d78de561bb09e0d859cf045b94beb0e65de631d3",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427918,7 +427949,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "e3b0cb8117978366000fd08530072073aecd591d",
+   "a1f5f72bec62c27f2de079e414b2e7dcba481dce",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427926,7 +427957,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "063c7b77c21cb6821116bab4fbdfce8e149c2ed1",
+   "85d1a1e954516a3d8b46c5a9842bcbea3ce83d89",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -427934,7 +427965,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "802b84c1899da2ce51375a566fe437610457ca35",
+   "00b5d6f7eb21f39b4d87729f6513bf202f682782",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -427942,7 +427973,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "7e40482d496ef5f69edebbec5b040f04cba60abe",
+   "9cae068af5131066de201080ccdc39608f3115b0",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -427950,51 +427981,51 @@
    "support"
   ],
   "mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "1c77b65b666a0a13577c521ddffbc9b99b3e4a67",
+   "c4846185f223efda127f1dd9bc8f253a90ffdc7f",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "c5ec8343c9052ca28f905171bfd097be776aefe9",
+   "5f10d56162a980616f9faa89c2ccf5edb95fb923",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "918aec37a419430a8cb42afe4bf1efdadf919ed1",
+   "502407cba75cf89603cf0632d1bf549fcbbcee74",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "b801db0de2e4a137c6884951ba36d66c6f497a52",
+   "c0f2fc7a1765269e2f43935cb96ce2181cbbb967",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "65d7c00892ce6843cd6c572fd74c8c3d46614f92",
+   "7b6e331e2b178f2a986d6952ab5c38c69e8b4e8c",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "bd3afe9856e09f1b95b287e9a594b40c4b2a9210",
+   "94cfb964c6db44e32d542fad9582d0007abbc769",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "45759c1b31776383026ec6d2661610029c0a272f",
+   "49b910332a532d822f0ba6dfb9edeae8d18e44a0",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "5d2f67b7fff589312caa31550640dc5d57dfce76",
+   "6f8ea0151178d55cde1be8bbb30edae779a4876d",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "fbf57e8b64799a0f13b0e64c9eba25597fe64995",
+   "1b18de0c696c532466fe615df01d71576bf524fb",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "e297efb9433c63a4bcaad6db6c893d343e84477a",
+   "dfdbae7cb0c9573c347c4cf395a458e5f70ae6ec",
    "testharness"
   ],
   "mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "6e1e6cba39cc9a4378754d97b004ecc874287c8e",
+   "c6ce305c5fac3243e8a8d43f058f388e986d5a21",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "68329ff582ed7d5bbb88b5affa6988d859efdb87",
+   "cba9bdc351cfd15a8bd0eef05ddd9c0a569b45d6",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428002,7 +428033,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "862abf012b55d586e91a4b3e74484e0791720db0",
+   "13eb20d20b4a9a1695ce0e1cc3b3225acbd2476e",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428010,7 +428041,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "9e8ca3cd5731b0cc4bd385e8662297f5d689117c",
+   "4df48a8f80f2abe08896701ffd9822db86abcc72",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428018,7 +428049,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "341e9584d94d79e46c43970229cf4cf853206074",
+   "9c796352a1d73ae10b66577f3b0e2e0a57f21ecb",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428026,7 +428057,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "0bf45c0d5114d6190e5bf8959e5400f0a6c3079d",
+   "176da0f4d48a5a8db59717df40da02bb26558c0a",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428034,7 +428065,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "017a388848358f7b52782e4b5fcc003baa251e0f",
+   "3ba97cc4af3349af5984687ba54a7caadbc7153d",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428042,7 +428073,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "c7f37dee35c366a95a8b01516618b68d33e6b4be",
+   "66857b1c235487f0b1cf0df30b3b30fdae422188",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -428050,7 +428081,7 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "84c5ae0d05ac74bfae97bfc6bc2bef541b8d1e61",
+   "e0b664bca0975f2b7f0d4bb655be397ef7fbad06",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -428058,51 +428089,51 @@
    "support"
   ],
   "mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "b7f5cdc9c9c5637d5ff82a4b925ce224fdd2d8c5",
+   "6f688d70dd907a0228caaa3d30ebeca492203cd3",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "adb418f61a912beb67f1a0aba73f0c39dabb0ac2",
+   "63bb81d1b8aedca3b8412fc6c34c60e8796dd91a",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "ce31e04d1b1c4eea33af796b39d0369a615dd996",
+   "e9b11532395b322709abda14e9cd47f6bc03cf40",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "8197d981d8beaa20049ba1e78c8004a18a8dfd17",
+   "6d72fbe85c2c0f5bbbe53d3a6a33e146a60cb9ab",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "60a5b9ec6e24b76a555a3c313af591fba5d987e4",
+   "ddb4146a26fe33e1554384d05eb31821ba341c3c",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "035fe3bb0b132624bb9d64dd343b7bc190c11126",
+   "f2e6058f0f2ad1c5c01adb1197e95c7adf5168c7",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "56c5e14673e17db4d0ecc02368a635f3ce3504e3",
+   "970723e66de3a941d477ff8e522f13c41da2ce03",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "f1e134adbed18a9ed295536a34ed501cdf13f31d",
+   "49011184e6c826afaaa4a44eb3b27dccd548d35d",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "ce5d3e1c06576394619fb80f0b90971d2a146103",
+   "b0ea6b38a56ea35657a337ea3284ff8d7485151f",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "5c123ed6cb1a8b30d5c3c6fb37cd19ba314c5ce6",
+   "4b1452782ea6a75372ffd654075b9c8c6a2e7d04",
    "testharness"
   ],
   "mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "06aadc3c3ce3edf8b0809a0cc8c7e31e8f453a25",
+   "4737340b7010ff3d4ab07e0f76458aec88dc715e",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "bcc60543ae09b84877d4411c34e4a038ad558090",
+   "7e1db35ba0020fc660bd2396e95e0774dff5b829",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428110,7 +428141,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "e56443cb86bb6b98fca22eb3ff2a4630ebd86e05",
+   "617237da801b746d71b961ff6c7165216603916f",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428118,7 +428149,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "40569b7188d9dd0b069c255633fb98172faaddf2",
+   "3a90c1da480bdbb5b4bca01b5f06bd9776dba083",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428126,7 +428157,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "17226d674591f43976cc64e259ef66d9f15ef5c7",
+   "3f2b4aa46c11506b94f79e29911967e4044d7865",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428134,7 +428165,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "034c2f727de6dd945541c13f475e0f0d57fd0583",
+   "f6201721afc8c8b81df602a157c28040c31850c9",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428142,7 +428173,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "1ecd9d94e024decd21bca928de6acb4e9cc01eab",
+   "c96d2d4b267441369f9713bf8f87cb831661e22d",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428150,7 +428181,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "a60c79d490ff67b18047306dc6b2bc54b36289de",
+   "685bd1e4a13699e977357a7906821185270fbb55",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -428158,7 +428189,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "88efeaf094551471e55f72f5a9d63f301164e2f6",
+   "aaa62a95e808f3ff3dc817d1586639c6dce925f1",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -428166,51 +428197,51 @@
    "support"
   ],
   "mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "2e33579ee35bf7c094be49835fd43b7132bc61a2",
+   "37d3c51754a5f024d3bf70bfce1bdb466a7bd119",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "7f1353c5477fe8bef4ebcc721ae4f27a608d1269",
+   "8c1cecce2f9335e88beca9cba8f53630e1578219",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "5cc77dd2e6bdbdf3fec827adb4f71da6d50c59b8",
+   "c766c5ed130a03f1c01647dd1bb99e105b7f8149",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "6af86dd96b3a65df28a71731831f84814601c646",
+   "408d01cdf7c53c3460340257a9e5ff1f8efdd439",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "e6a9c4c426d22664e2530c49b16b2cfc475c74c1",
+   "bd5f1b0563e2029a1eecccb2354154946d2db2c2",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "400622006fcfc2b5eb70d6c9974e1150524cf38c",
+   "006ee9d12bb9ee3151cfa634f9889b29cb88724c",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "b4be536c9232548d97941af8cb4ec5195364755d",
+   "905856f6ceef4cfbcd09b67ada351c4e52d4b640",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "0d7b7210a99f472b738184b8a14becbc70c375f9",
+   "c031756b389ea1b9eada6b2f4fbe6985f6d8d584",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "708c0a5d75f25389e08b8f2b4a104ecea580964e",
+   "c8c56c457f7af902a2cb5b9d87a0c6d3975cfc11",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "2414d5f321c1868c340adfffc305762fc34408e9",
+   "a86f3b4429d3b6ac9838b443ed9561fbd051ab4a",
    "testharness"
   ],
   "mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "f0fa9aa60766f615fa90a02226c2cc0859dbfbfa",
+   "e0a437e26d6e70693371c75e1397642ff41a3ab0",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "440630b5c2992992318574008eccfe02fa941e44",
+   "89b2402ec54478780912a3694d8e53f955f37bce",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428218,7 +428249,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "51cf26bcc86d8485fe3f9d4eb00766bcdbd391cf",
+   "5b01dbc1b7009b67683e7214ddeebcf995117f70",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428226,7 +428257,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "d38c0259e95bb7d214d8cd35126f855facede25a",
+   "55d23f9724e9926ed80d6f0acc642637b2bae8bf",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428234,7 +428265,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "f32666f28ac951258726c2bb836b771730d3a742",
+   "64d45885ecd5e8e07ecb7036523bc46036ce4ec1",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428242,7 +428273,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "016ea765f53e5597bc32c8746811a2f4281fe29f",
+   "27bb9376848de9611de04064ec63c3339dd75c39",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428250,7 +428281,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "47ba0d806743f000233b04e672de42ca4bbdad24",
+   "2bd8a109a029dce1717baba638f63aef5f2cc04d",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428258,7 +428289,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "6b339518948baf060cfd07cd0e971b327a7df2f6",
+   "8fec9a030fe9fbfe4e63dcff644a99b56cf5fd47",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -428266,7 +428297,7 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "349d1ae1e630c7f8cedb7533f1f5893e1bcc5a61",
+   "4bd827703940b87c6a30171630edb81e6d0bb78d",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -428274,51 +428305,51 @@
    "support"
   ],
   "mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "ba7834dff565fc04140c987e16d9c3d7d2f9a9c9",
+   "cc5688915fe5b89adfa1cc381cef0d351de5ec2d",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "d1514320a5c9c997a70b4ae2d0830fee14e97064",
+   "f50bb1848c2e1dfc4614904b792629528acf416a",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "42b9de520ea1a8c3616da5d737cdd198546acfd0",
+   "785bc579c25f9867fe748152e499ae3ef72f0a90",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "3a03aeae626722ad0595bfdea6f2b4f205db6c5a",
+   "2918d12dc193b74b697a466c58b3a3780b87d1ee",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "c087917e88dd39c37f4f2adfe9e10427c067ddf3",
+   "63ce10a6b6cb5b961e1b5d7569468342cbb4dd79",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "f4192c219a49491089a0e489c19159f66011dede",
+   "333b26e8db573960bdeb7dfd3a7222194dcb3ace",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "82713253b046a9a96d5720d3ee2b161938b690a3",
+   "29edc68057dd53c177e5de4a5fd7f16f49df9ef3",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "35ad440c528533853f33df9dca27c915601366c5",
+   "12ea7f2dbdf7f597e35527e65430f82a7a29eee3",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "58227b988f35685e973a16a7d253417a6d30766b",
+   "ede2b9eb18f3802a3f22b00f59026e25d5117e0d",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "e43a2542b1b386beb0571e3550940ddee95edb48",
+   "b35999d891a704c61c49a1b1181763add60012be",
    "testharness"
   ],
   "mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "4e0db8fc4486c3a061469776b06dd7df49ed7f6c",
+   "5ad4fdc5cffec60186da1f84aa3fa666d00c661b",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "84345fb74a58d0172377f7f642d8df65983d2fa8",
+   "94dc4faaa08f876ec3541504ed5aa36e44f00f03",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428326,7 +428357,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "52595a63b0f0178873a02f1bd6496db6d40deedc",
+   "16377236490276abc35b59dbbc171650b262534d",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428334,7 +428365,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "0844824ea72a6e5e42d3560c0ea318f1692c39e2",
+   "c0df2746529db2ef99713d941e3286e48ae08b04",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428342,7 +428373,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "8b5df2cacc7175aaf424eb58a9045fa084e0417e",
+   "2e99652ac62d9709a59ba1834a44f50b38a6f2ca",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428350,7 +428381,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "b03a99c5e6a2be3d29f5502582b1e2f5aa5148fe",
+   "202b22c4be514baa35004a6e00dc8d47e59e7179",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428358,7 +428389,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "7180a72690d41cb07a2ef5ed68d18d02a0e10023",
+   "3e4c570310d6c9419e2d0f28cb8542248183f30d",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428366,7 +428397,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "f228ae5dc8e835e66d40600ceb3a20a0ca1fdb59",
+   "df15dd97a6c3266f165b247eb803ec9e84286a85",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -428374,7 +428405,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "ca0a9f47db39d98227d5e2947755014061f2b756",
+   "23668777f15b77d6bf57e64dc41b743eefca9413",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -428382,51 +428413,51 @@
    "support"
   ],
   "mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "7d38ae9f8d468e27cc6e5d5332b018414ea8bfca",
+   "a8b19ae720fec371c96ba376b79c5b3decd1a256",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "c8bb0051668a8dc1a1ca3e24253348cd54522c2c",
+   "cfa30e472c2489daa23c1de079ff088f28aaa6fc",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "e97507d57490bc390ec11e711fa4c01ae6ca8090",
+   "1c8391eb4cfa12e856c1e373246be83478d66182",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "a9b350b5c9dffcb38aabb20d71cf388251184303",
+   "d33c7928abbf4a5b955cb81568aab47446d8a2ab",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "81db7898f321970f5c5ffc3d84fc968da6c00604",
+   "939f20f9dfd8615a329be81d78060599932d74ad",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "999411c6297b12632f471e31bdd649a3efa0cc8c",
+   "be7e4ce7cce9f50ccb4ff067409265c64502c8f9",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "de2d00317561424189967b2c2631cdea3accb513",
+   "f69486e70eb7462aad9b84f00fe88595f2dbd6c0",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "453c5cb95d01dc95a105f98e3d2bc7a7ba3eec62",
+   "806b2ae13bb870e7b267b1077304e3157383ba93",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "fbf362903e17644fe760197abeeeaa43314bc46a",
+   "f0b30f8f3ee36353cc89390c4ea2c79745941599",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "a34698e9f7ad0498c5337a5d6098e77e445cf6d0",
+   "9ff4c3ce1cf89a8b6bb43092b96042d58cc75510",
    "testharness"
   ],
   "mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "bbd268ab31c2debc8fb6324a1f7b51c9daeaf8d4",
+   "0edffdf2502bbe8cce9d6b9e711bacb2584cfc7b",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "45472963891f1fc2690540fce6f4558477f48c68",
+   "ab3439a3bd888bd0c5c0b4bcc0d3d0d400831404",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428434,7 +428465,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "6d519a352c425bdeb1a8013d71ba9f748240c61c",
+   "3d17e69cb37c29fcef48747135c397b8d68187c0",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428442,7 +428473,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "2a317beae4e9f63546b3ce4a2dd7648b6846e19b",
+   "c060ab3384953cd17d9087931fa33c242838b3a9",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428450,7 +428481,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "44d4b3d88524d6f016487ab5f927a3b7c0908e4a",
+   "22760d90a955d5c6bc247acf070d4daccc27d351",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428458,7 +428489,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "f1af455623f28726236b979f5b27d71774e27a29",
+   "9f3bc48ef900e35646dbef110fef8acb54c226fe",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428466,7 +428497,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "6eb6e95ef68aa994075a0e0a1bb669a4c1f845e7",
+   "95ef4692ed9dd8c94bbcc00edaa0bd37309561fa",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428474,7 +428505,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "9b5656b9613831a4323fd22f1305a499e7bc6eec",
+   "145cb040149e20004c574bc6d9e193b5d16376d7",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -428482,7 +428513,7 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "4fbf140e66032e538f502bab8673416ddbd11b57",
+   "911051752d59a7cf137feb75c357316e72b3372b",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -428490,51 +428521,51 @@
    "support"
   ],
   "mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "d1b9d5d6139a7525f8cd673082a28f9a0bb4db16",
+   "82434165647753da3fea77379b2a3873cc842443",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "c328f8fe8a525f8a81fdfc0e02ef9b586a1a2526",
+   "e8d26e88be17340a9b3035d838eebc9cae8cacc6",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "dc7cd63dceabb6ba3b6a9d76cb94be7a3dcd9737",
+   "9db55dc535487b9a2de666ef271437e45bdb526f",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "1c7d29835bb84bae1a071a91e68eba12bc8fb582",
+   "4412335c444743a9b9ec22efa9755171dd905ede",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "cea0a88bacb62a3d14de770e5b19112edc152145",
+   "7f7d6b2b477601f47a89e8c64ca90df2016a2e83",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "224d7c767b5cc47ec5b842efc376fdbd588660cc",
+   "9766454014906994e62ce7bb3bd4416db9fc1b68",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "b1432e78ac28ce3b16c8b3bb0e0fcffa40204e96",
+   "196f60ff46e62fbc23a998288000df59eb420990",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "ce845cb3d521bbe85cd33f50e0a9d30efc9fc835",
+   "b2bf5c412b6e049da0ca26c96516c023e3bfbb03",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "1e9acdf88e2930b242b2131ea3ad75e0155272b9",
+   "b931d339fdae1973f7d53b9709ba0c3fb31ce096",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "0ff9576d6038a0735b0d9104aaaf269a3baef9ad",
+   "0eeba32e2134e97de2bdd07668d4fa77790636a4",
    "testharness"
   ],
   "mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "d0e64b29b2dda75cbc11d4480c3b5b59a408efae",
+   "1da3a8484ec5762850ac9c67ce831f9ace3fa924",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "314f097890579c1dee9bd9de7cfb58caa263cbcf",
+   "f70e0d7141507e4fe3db0c9bbcc34332bf03c89a",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428542,7 +428573,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "d44e65bcd190a82cc4e90915f15412dd1298d00c",
+   "be74d7f085c2ce61eca89d1f292f13a19cb990d2",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428550,7 +428581,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "973db8006fc6145483ca334142aa1d152d5b554d",
+   "39f508c2b1656a8e7a413ad7c13d5b55b8ccf1f7",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428558,7 +428589,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "f8509416232c5c94e11ff13f495cd6dbaa139898",
+   "703e0af2959190ad224ec0d668606fde542f3c32",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428566,7 +428597,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "0dd9e88e885f88d548f84714b310711236ea94e1",
+   "a1323d428a3857f56c1403554da4965123aa3cdb",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428574,7 +428605,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [
-   "eb7f7ea2c7393290fe425db7633fd6eaca4b44e6",
+   "0aa1bf3f82f276bebd79aa862e0c9406fc620709",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [
@@ -428582,7 +428613,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "23f0a1fc89d3e36d278c785bea96d58328df3aa9",
+   "61fe95dbd29e0ef263a7d1d3fffe12156142fa0b",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [
@@ -428590,7 +428621,7 @@
    "support"
   ],
   "mixed-content/xhr-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "7baa3e54a98fc165157dda95fa9beffefcd8cd6a",
+   "8a0c5b1a51ff752134df853a5f2bc84a47adbb13",
    "testharness"
   ],
   "mixed-content/xhr-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [
@@ -428598,47 +428629,47 @@
    "support"
   ],
   "mixed-content/xhr-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "cf95677c7f6e2b13ac83da80144a4d0c407cd818",
+   "df3f8cc6f628896db6685b19ed491a696431acae",
    "testharness"
   ],
   "mixed-content/xhr-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [
-   "80a633ab22fe886c4a01a4b8e8b1135c68d418aa",
+   "74261daf151ab48e374639a871e40c433d6472c0",
    "testharness"
   ],
   "mixed-content/xhr-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "ebbc9ec0c6751715146686f12f38e0d6cf190efc",
+   "45cd5ea84230f32c16748abc129adb83d283e5d0",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "b2ee591a74aa3d94a876bd233791086593de933c",
+   "ed8f550d8952802112e267224964ec48a7c3dbb1",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "e49db79f3d38c40862f3f79cc89407639c3592b4",
+   "c14bc41c79e62e3836202eb40e0495ac0c9e0cc9",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "ffd8aeb9c0b9a2f3202b832d785098cf147f7aea",
+   "1061f61fe383c4a07fb74a0c1e79ee882a10a6a3",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "897354a798ace13936db781c7eb78bd5f7d7f37d",
+   "18a5a3e8b4d19008aecea4b4550b2279bc1d2921",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [
-   "ee787d05aa3c30c02fae7145bf6c38c23f7aeb2e",
+   "d47797aca2316c12f22dbb62d878e4693a862960",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [
-   "9a9085b86ebf5db73243a637077a49f161f6745c",
+   "ff17fa2abbb545249e81f3788e6cc102c10194c8",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [
-   "9da0d9f98ecb9dbd9a5857d6ac03622ea77c014e",
+   "76d5442339d42d11a1f6f38f06194f268f149920",
    "testharness"
   ],
   "mixed-content/xhr-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [
-   "b0fff36eb94609ac24a76121bf9e201234885db1",
+   "e6eba571c0e79242412a23f073068c1db3d0425f",
    "testharness"
   ],
   "mst-content-hint/META.yml": [
@@ -437878,7 +437909,7 @@
    "support"
   ],
   "referrer-policy/README.md": [
-   "a4cc29b3851d3c2f985a01861d56b7f45380dae1",
+   "c4694dc3728ba40c97612565886215b05d63965e",
    "support"
   ],
   "referrer-policy/css-integration/README.md": [
@@ -437890,15 +437921,15 @@
    "support"
   ],
   "referrer-policy/css-integration/child-css/external-import-stylesheet.html": [
-   "6be475e98bc2736a0f1409261d48f8f02a6c9461",
+   "9245ff39c6eafe272e70d3f208eb6f18876f2c62",
    "testharness"
   ],
   "referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [
-   "37370fdd3710c8459e3f6b19980f4308559ad7f4",
+   "c25b99926a0a12bf2f1a2d60bf1a9cc9c58fae22",
    "testharness"
   ],
   "referrer-policy/css-integration/child-css/processing-instruction.html": [
-   "5362234177418da5eba46bbcbc5e5f62d3366de9",
+   "36d8bbc0216df9536aa8e9ffeb5b7ff673c31174",
    "testharness"
   ],
   "referrer-policy/css-integration/css-test-helper.js": [
@@ -437906,87 +437937,83 @@
    "support"
   ],
   "referrer-policy/css-integration/font-face/external-import-stylesheet.html": [
-   "300960d2944d11fa327077ac57df5336b0337296",
+   "6bd0554ccdfdd9054ea984a1d95799de838954d3",
    "testharness"
   ],
   "referrer-policy/css-integration/font-face/external-stylesheet.html": [
-   "45da018cb02e82ac17ec74d5e63747ad2aa972fa",
+   "8773664625c4472f7ce75c5aba76be83573bd5dd",
    "testharness"
   ],
   "referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [
-   "dd06b7d7bb1f7a0fccf532e395f32cc2026235de",
+   "6dcf6be3e7d705aa6694342abc9cc86eab97c966",
    "testharness"
   ],
   "referrer-policy/css-integration/font-face/internal-stylesheet.html": [
-   "a0a9067b3b846edcc4acc548c74e6b643116cab3",
+   "0d54bb766f771fedaca6676ccee539ed7429133c",
    "testharness"
   ],
   "referrer-policy/css-integration/font-face/processing-instruction.html": [
-   "a9d79a33b08e6b10a17495663fb4c7d9337370ef",
+   "26203a822681b81b0a5192461d1d99decb54ddc6",
    "testharness"
   ],
   "referrer-policy/css-integration/image/external-import-stylesheet.html": [
-   "2a7ac43a75466ec6e1c47d57ad14c01453728c3d",
+   "7c5a8c3d70941adaf679a83c8073b36f3b09a5e9",
    "testharness"
   ],
   "referrer-policy/css-integration/image/external-stylesheet.html": [
-   "c763ecbcff781a7e047b1425f7bf993e363721a0",
+   "72a807bec6ba56b92ea62c8fbc1c20a9d8fd980e",
    "testharness"
   ],
   "referrer-policy/css-integration/image/inline-style.html": [
-   "da571afbbc830b7ccdb7b24ced20bf7aa20c9529",
+   "7e3d8879a4ae243fd75ae33c6a308f20983636f4",
    "testharness"
   ],
   "referrer-policy/css-integration/image/internal-import-stylesheet.html": [
-   "e320e063f2df492e99944328dc3f009cfd9bcbb8",
+   "e94218d419e6dae751c757f915cc5d4d1133fcbc",
    "testharness"
   ],
   "referrer-policy/css-integration/image/internal-stylesheet.html": [
-   "3e2fc109936203732e0b25fbc96e3ac519df559b",
+   "a6107cb3a995d7808312f0029afce11d209ece69",
    "testharness"
   ],
   "referrer-policy/css-integration/image/presentation-attribute.html": [
-   "e810df54b8291120b13fb68cbecd9d1a71b1f8ce",
+   "ee70f15885c7145d7d235a9efd146856f4fca47b",
    "testharness"
   ],
   "referrer-policy/css-integration/image/processing-instruction.html": [
-   "e5a1e20af72468994fc6120f1d29e894804c13a8",
+   "c2b31be889938de3402611f02fffc6b6404429c7",
    "testharness"
   ],
   "referrer-policy/css-integration/svg/external-stylesheet.html": [
-   "dfa6fd073b9b1e2268e1cc66754d7d0e442bdc02",
+   "54ee36ce30bdf767f4d42855621d9c603fff7b43",
    "testharness"
   ],
   "referrer-policy/css-integration/svg/inline-style.html": [
-   "fd6e4baeae57d1546de2b47766dfa507b23361e1",
+   "59fb4025f3ba1ad96eb734805a162c4a39f08faf",
    "testharness"
   ],
   "referrer-policy/css-integration/svg/internal-stylesheet.html": [
-   "228de6d700b96cfc7ae85ff9c7ebb60f20197afd",
+   "82d75665ea1cc14efb3d9df64f8c115b5f6a1792",
    "testharness"
   ],
   "referrer-policy/css-integration/svg/presentation-attribute.html": [
-   "65bb642f5bf3e3a6fdf27a39c55b536365375a23",
+   "8e616416380e3527535c0bf12e6aca630efdefbf",
    "testharness"
   ],
   "referrer-policy/css-integration/svg/processing-instruction.html": [
-   "c0e8d4bf8169bf210674d7d9acf7bda994b01bf4",
+   "99ec1ae6aeb8737e996bc355f6e42cc5705b1a0f",
    "testharness"
   ],
-  "referrer-policy/generic/common.js": [
-   "f1574e99360f456640d0c1a2882a54eb98fce17b",
-   "support"
-  ],
   "referrer-policy/generic/iframe-inheritance.html": [
-   "6c54c43a81542a8349eebcbd0d35c28fb15d3e23",
+   "3bab0979dd91afb0c6bc09baca8ce1eafe07ba5f",
    "testharness"
   ],
   "referrer-policy/generic/link-rel-prefetch.html": [
-   "16452b1d690bd19ac118f34efac385264450569d",
+   "0f78596fa2d78e066d8152cbee56815d4bc7b5d3",
    "testharness"
   ],
   "referrer-policy/generic/multiple-headers-and-values.html": [
-   "ccbc02bec1bc5bced33bf88b97e4afc49f7949c2",
+   "d6b9408c1536b7526f101ea27473b9461534aaf4",
    "testharness"
   ],
   "referrer-policy/generic/multiple-headers-and-values.html.headers": [
@@ -437994,7 +438021,7 @@
    "support"
   ],
   "referrer-policy/generic/multiple-headers-combined.html": [
-   "7def76b9dd1e8754f6c8a243683eaeb4c25989ee",
+   "0b36aeee94c33de08f38491bde31519acc504527",
    "testharness"
   ],
   "referrer-policy/generic/multiple-headers-combined.html.headers": [
@@ -438002,7 +438029,7 @@
    "support"
   ],
   "referrer-policy/generic/multiple-headers-one-invalid.html": [
-   "eb6c21731b39ebd310526cc3345be0ac868dd919",
+   "599ffdccc3ead1b56b75e30f5f41a857ecb50eaa",
    "testharness"
   ],
   "referrer-policy/generic/multiple-headers-one-invalid.html.headers": [
@@ -438010,7 +438037,7 @@
    "support"
   ],
   "referrer-policy/generic/multiple-headers-one-unknown-token.html": [
-   "91e216b22a1392867d27db0b02aa318aef65d613",
+   "cf9a792162621e905873c5deff774f6aeedc880c",
    "testharness"
   ],
   "referrer-policy/generic/multiple-headers-one-unknown-token.html.headers": [
@@ -438018,7 +438045,7 @@
    "support"
   ],
   "referrer-policy/generic/multiple-headers.html": [
-   "a74cf60d89a5e4ee4a036613745acea5a83cae25",
+   "418044a14cdc4fc5d8cbfd54648a7c24981b9cbe",
    "testharness"
   ],
   "referrer-policy/generic/multiple-headers.html.headers": [
@@ -438030,7 +438057,7 @@
    "support"
   ],
   "referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html": [
-   "73b48f1d5c042cd121a2d3715ac4be70007bbb87",
+   "103627b21df00b578ac61bb3acc021254820ba66",
    "testharness"
   ],
   "referrer-policy/generic/sanity-checker.js": [
@@ -438038,7 +438065,7 @@
    "support"
   ],
   "referrer-policy/generic/subresource-test/area-navigate.html": [
-   "c601c249d0ff1c226dd495a23bb348010e1c16f2",
+   "b7f05be9892b1766820d10154a733c80126ee8e7",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/attr-referrer-invalid-value.html": [
@@ -438046,31 +438073,31 @@
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/fetch-messaging.html": [
-   "4d40245123ff6071aa3db4e96c379ec553866154",
+   "2c12ae45510c7b1d226dd7d9878fc3dca9e3dadd",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/iframe-messaging.html": [
-   "3072436bc64a11299233132297147a028c9a8065",
+   "3bfada318f2a2b76bfdfb79f53950881474c437a",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/image-decoding.html": [
-   "b132c06c3f15dbe497e58c1be31aa75c112b2cfb",
+   "807344dab9f14221f37bb7d731a8022fe9db9869",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/link-navigate.html": [
-   "583458b535945f77f89879bd56ad0527ffa6df81",
+   "8c5d2c8386608dd5b8eafbda88f15e0045b3f837",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/script-messaging.html": [
-   "7bc36dc7abf068116ee457a292cc29c72d7926ef",
+   "cdeb1a03ed3c3145c6c927cd851435aeac176640",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/worker-messaging.html": [
-   "9daf6d5f9027a51f5bcac2d2364d6cd8722dcbad",
+   "7ef9b381ae4f151ae409495b28bf7cee8db99a0e",
    "testharness"
   ],
   "referrer-policy/generic/subresource-test/xhr-messaging.html": [
-   "a0208051206a4cf4b48ba0574c63fea589df1202",
+   "1bd1b4c724ea6da41cf3d42b30189649628d211e",
    "testharness"
   ],
   "referrer-policy/generic/subresource/__init__.py": [
@@ -438154,7 +438181,7 @@
    "support"
   ],
   "referrer-policy/generic/template/test.debug.html.template": [
-   "0faf63bddb3ad9ef5a5a90e6a5f8561bc117e141",
+   "ce7761b949df343162767f64612ec713805fbf10",
    "support"
   ],
   "referrer-policy/generic/template/test.js.template": [
@@ -438162,7 +438189,7 @@
    "support"
   ],
   "referrer-policy/generic/template/test.release.html.template": [
-   "0d63fd68aef8e9954949ff9844539a09c71bd9ce",
+   "e55a50bdc418a1cc817a4df0b2d3f6af6ea1fd13",
    "support"
   ],
   "referrer-policy/generic/template/test_description.template": [
@@ -438198,171 +438225,171 @@
    "support"
   ],
   "referrer-policy/generic/unsupported-csp-referrer-directive.html": [
-   "40942a8a0358149f1408010b224a4317a1f940ce",
+   "f639ead4d4387c412734e3375569413f99cacf81",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "101f20892106a6af015d94d43e8d21393bf39930",
+   "cbe5c3409c190a60a35bec69136a0fa7ad32e188",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "e5e6a7861d6002d8245703693270b53ae1ecdd82",
+   "bdbf8c101283f756841492823c88ff21cc2b9ebb",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "9d0ab2400728f2e31fbd96991cd268d48a5fa0b1",
+   "7bdbbc130dbfd593434d804ce711c272dbc41992",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "a8935c2be47f7a49ebea983b68bfb4287b429c53",
+   "7badfd8b68fcdc3db91eae7cf0cbb09e0164aa72",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "35d6245f51afa9d434c009f9e25803feca55b229",
+   "456672827fb7fbc3a1789e4754ff24a9aa72aa7f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "dae1ad56c19a62dffa1d43c5771590e342249e5e",
+   "f3a056045a9c1ce4fd3660c67ede9a825a10c29c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "86fa9997caca90db4b705410c6e14fb12019c6a5",
+   "3498954b56264ac32055792c02e70ac68ee27aa1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "f8712fd2a42cbef95771c217eadb63813001342b",
+   "d474e014b14ede70ab26b2375ecf2cdd53733370",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "701ec1dba42c9585f5ccaa5c019681fabf162b57",
+   "d4835b418fd5c9520c89df35db0a7d73baff9a5f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "d1b0482e16f9dc4676d2a2dc059411a19212114f",
+   "df7e879bed26b972e86b5b70dc1a3c13e8e40ebe",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "9dcfbac38af31b054fb55bdc783ac7afde820346",
+   "4fa4a9e8389305e2d8f17b375a8552e97f72a67f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "9f8f2d884db7ec32fcd0f7c598697206efa930be",
+   "72be051717d694cbf72cb98381f4719e845f12f2",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "ca6ada18114f3bb2ec371d05b4a128bc1700ac9a",
+   "1ad65c0bf41df971fc86add02247fb7819d8ee10",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "49a8973c42ec06c77837f417d468b804a6fb0f75",
+   "81f4844a678978dac933de3079f80ee755a84657",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "a1eaf56efbfb72064c29ce2aaa1b62d9ea91c200",
+   "1c7bce4c0dd62169b6d9167f42c6b04450d9afeb",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "70e193434bb367c53a769a5ca56e342c8c1ea5a8",
+   "370d63871938d535f48bf9c8da695bb3e2394f62",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "85d4a15f7af5be95f1a029b2dd01c24b2dfcbf16",
+   "81553daeb1952a99f0794f8bbed0d0934807f464",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "e6863a13df8b568198918f04942af37f10a761a6",
+   "9c5d60894ea86ea31a3a4dc169703c444db7d072",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "9a2dd530ff9403e9d11a24ad76d0d593bcc6e6fe",
+   "301c53de00098644a3522fc78c3b4a4080b0a36f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "058e087238ad080fd40007edd39509cfcba21279",
+   "a17c9867c1c3ddd775ce690ed160198f52bf3377",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "20d2c1be3d7ac21cd25a579bec62da38970b7272",
+   "7035e54e0039674f53063156eabca93e0d26ed52",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "c5c0dd241579c0fb7644f28eba2403f79273681b",
+   "4208fb4944fbd9ee317640148771c24df825b759",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "d5e3b9fe04db7635debb625c75250b88763d14d7",
+   "79180dd34081593d13752dd2be55ee1700af0b28",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "b3e883240b74350af724bf0c3e23a469f7eae1d1",
+   "cfcaf54f0258e35b81ffabbb71f1f2a7aeaa2c8d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "1415f88e61b7e91ab40c9850314dd9332524b830",
+   "a31e8ef5d949bbd5cc72703f1d6765acc2d79aee",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "c9e14a5c67af7fb7aa2b0737977f8541073e9099",
+   "59edb33d0c6acbe01511fdd1c1b1a2636bde5c7f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "1197e4ea08a2f20826e8cf6114945f079f8515f3",
+   "c9959ff21aa79856fc2dc0e6d6f4baa8f397dc3f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "c2c4ccdb7147b4a9d5cf09c965e5e24f6ca51523",
+   "2d0c22356dd8604508fc616bcaf36157758b1c1f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "e5da88157d58dc326197fedd2b9252f462cc6642",
+   "91c0a42f51a2f104cfe1bc454e46d16185a55f3c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "a0e3be12513e469a3025805e6a12b7f8f6207fab",
+   "dc29dbf6b805abc400dbb5d725adbb70862ef917",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "ca23aa444bd77e3a44a001c541183e195e9a90b4",
+   "11bfaaa5011e38a7134d2ade2337c885382120bb",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "34a7176c909847a5e10962f2c49ec0a6b50efc27",
+   "cde4ea0089d71adb0d0c8a6d0a6208ba0465d1dc",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "621a3f4f5de65035a5718cf187b07c5fb3fce6fd",
+   "a28f30625e83ce411a5858101d51b9d7de7ba68a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7081357984aa1cb124887ce39dfe8811acfd057a",
+   "65bd20884db96c32f14dfa64948183b859f5329e",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "ca8b0837bbb5499c91825add5fccc49e2c478ab5",
+   "1e92417cd9cd09bfd5608024a323936d90bcc7a8",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "553af1be531592d8c7f7f4ea3115ad9e00831fd7",
+   "1ea239cd8395ce4acfeb8cc03c8522026707f56a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "5ac87bc663a0454d4aa413006a6c17be10f49848",
+   "f0826241b16967d1959e18df81fca2f72be95b27",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "389921d4d8f360fccf2fdac5f830132d28473b32",
+   "feec9a66a67066bd686170454e1a0e01fe05ee2f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "dfbabf21082184dc015e247195e9443521044850",
+   "dac22586386c7eeee7466fb75a6986c019d6ac94",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "233611e6952311387599b944e38f60c2c8d26e4f",
+   "1710dd861f8820d363ee3225f832037e4ce41c38",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "133936739413daa9ce407095177d8b44cd90b84d",
+   "43faed2e589636a3d980e3718a34b3d557b7393f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438370,7 +438397,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "301edeccd840595d2466a7c4413ae97115b3d72d",
+   "53d3ed97e59ec8207f65b371cc9386288d264170",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438378,7 +438405,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "e398d4662d6222f3e5fe315f9a9ff80a562b20e7",
+   "9386254ef461d713021498195cd9a4dde89deadc",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -438386,7 +438413,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "eb995697d5cba3f902d36529b1e7e5d9fcf79bcd",
+   "97f3d84dfccbc98d80a64d54186117e5642f333f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438394,7 +438421,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "a05ee8ec350e65556578e689a2b04c225fc1055c",
+   "9f12fd80e53b242cdba1994320cc7421bf6de523",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438402,7 +438429,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "00e0b12f96b4dc3c67785707db704e1e3faa5459",
+   "7389528742f86656ee4020d79ff4814a94ad7d1a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438410,7 +438437,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "4e1745300b2ddd5a425fc48b3e81f6ec96e4a0bb",
+   "3e87aa52cd9f65f2817318cefe0a331ed45a3ff0",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438418,7 +438445,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "99be5759bc8eaa2cdec152a07b747161d0b00214",
+   "8d779a2ac85938507a411310a018258ebb194bb1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438426,7 +438453,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "8b4c4a85cff3c22e46314da1cf254d5f11ad4f42",
+   "f8f58a8ed4dd899f710fceb3a03ab51982e2e9bb",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438434,7 +438461,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "3a808fa1663c046c3326d2bf24b71873c5d0e876",
+   "61e507067e89a2f2ef27d1d415aad973d5a82bf9",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438442,7 +438469,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "e6a4a48ef5001b3192807b1f327b411e8fca86e6",
+   "ed912fdbcc655dcfd6c180abe9c55ccdd536753d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438450,7 +438477,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "5b6a0f069f0389bdfe1bfc77c967e5d0eed3c9f1",
+   "bb4ccc4abf275bfbd3a56dd3fa4e8a4938b1cf34",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438458,7 +438485,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "45a76a77635d048d7255ee640ad6b87874da7751",
+   "ddc4a43ffd780f2b276ebac5008ee8afb1af4702",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438466,7 +438493,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "a3f6a8b6092188e92bc2c5ef219177ffeb48e9fa",
+   "0adea708a1db934d57a672c810e905386b541227",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438474,7 +438501,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "013ad95a13af247527b49ef3fbc855fedc01ed75",
+   "2756f3764504f7b022ab24fb4b8e8f9b7b548e7b",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -438482,7 +438509,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "eb834de9b0ed120d2a29991946f95a9a1c10f4ac",
+   "a92a57a999bc9ae8a7ddc0566ed67068cd0f3e6b",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438490,7 +438517,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "babd2f18cc56c3b556b3ebc19bb4121e7954098d",
+   "5effff6c0e032730da91ef80147373ec330a82fe",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438498,7 +438525,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "a3f6d25c82f6fb66905ba9746954f4f403338e15",
+   "a386a250de015f043d6247ab492a5edd152b174c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438506,7 +438533,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "7e456c4025a41162be104da028331a208af31cf7",
+   "041a0deff1dc1abcfcc804181d07b97ae42e7921",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438514,7 +438541,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "6684bb31ed0923bbd3be331d17bae5bc43c74ecb",
+   "3eed81bb188ca21e7dd91b7e18ddd0d5ffb80b23",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438522,7 +438549,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "2937568168156103f0287d42b259ae9766e08e00",
+   "91e8184af98d0a14f00d7908374714a05cf3301f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438530,7 +438557,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "695a773b087771ad9cb4885ab12be19f84eaf2eb",
+   "4dca8709603e8a6e9c7b7627f732618ba45ec655",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438538,7 +438565,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "f7e7f0bf280d4dae34a670f5a9ed06532ed1b930",
+   "451de2c941b2a5e7d9d55f9a3cca5e205abe1b62",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438546,7 +438573,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "a54cf8649954b4d4318c9909d53c685e9b2edc95",
+   "7f40332eebdcdef3ecb3b15282bbbf04daca9c42",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438554,7 +438581,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "b7adfc59b0e43b462290adfc6661058293de4665",
+   "427d70cb5c6d5b670a39ed3308af1890dfe4ab14",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438562,7 +438589,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "6639c028e2e33cab86611f480cf5f99c4bdfeda5",
+   "d6783b5588923e27d2cf87cd4037f3c80fc7af33",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438570,7 +438597,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "f6e4ba09b587844a443e1661d38923bc5dcf8aa5",
+   "3299615960543d5c798cf9f64dd4febbc781136f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438578,7 +438605,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "8aaee1ba91b0d1c0ee9e20c2215bcb9b3f62a2b6",
+   "46da8711749dd52ec4d55cffedac36643024af04",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438586,7 +438613,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "0a7d63121c2db30676dbe46d0a81e50b363b6c4c",
+   "b7cd58894796da066fdbce0dbf8fa400e13f401b",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438594,7 +438621,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "5c4afd6b405c04c6e8b2e532f9751d2ff9d77f12",
+   "63841b8db447063096819ba8fcee072ee52a74d5",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438602,7 +438629,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "bd9dec511f49701c143ba1ab277dba704736224d",
+   "6b9d4d1c99128c61f539925ccbcc29a72ed0b986",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438610,7 +438637,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "dd03fe581760b3749bd056a11a00da9937b1b6e9",
+   "d030178341fff62882187169dff343f613e9ca47",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438618,7 +438645,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "ca38b699f4d9a464d57e1fd0b07772e7f766249e",
+   "2aa0c8e1e43529d8267ff92d5da19209492ec607",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438626,7 +438653,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "5b0157e85f2bdbb3a163764e2b84b6ef7ff3e9be",
+   "720329eab8ebc67623a884d9c14974d1b5c49991",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438634,7 +438661,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "47a08ddf8458eb62ee1acd3dfa39ebc2887de911",
+   "116f07c80db7da716044ff92d8592fd750c63af9",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -438642,7 +438669,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "be990f2112a2ac4de8aa22813b9272bd5b5ae80b",
+   "4bc58094681cf8d4a583d7a3c828c197de69d265",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438650,7 +438677,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "8cf74125ad869995ade9fc063b6459b54bc75b15",
+   "df2d8fc463e77633460782852cf3c756995291d8",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438658,7 +438685,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "7cb08817b904d1c593a5077f439ea31151549d82",
+   "dafaeb26443004caddfae5b4d1575249c780af02",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438666,7 +438693,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "2a4bde0b9b62e79fb4ba0edf23240c2ce718040d",
+   "b2aa15f1be1dec1b8e1cf4b4b764c63de8f3fb29",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438674,7 +438701,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "55ccac1f143b1346822406eab675a294536f00f0",
+   "8082bae869f3a5d933cabae76b30ecb2518ac87e",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438682,7 +438709,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "36e1fed42e44966e272ed89fc1cb52c677f10434",
+   "dd54f1d1b9065f32e22fa2ca713d945aac289c20",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438690,7 +438717,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "fc4a9865cad7ce01d4ba4319dd4c296c54103b7e",
+   "e6ab88cc7dcfa2229854b44adb4dd531dc37c58a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438698,7 +438725,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "6cc76f7583b2f1bcdff27ee6e2fdba8634d26afb",
+   "3032473568819cd0fa261830eef8797cc3755de2",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438706,7 +438733,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html": [
-   "7eb7b813825853a2207d5016fcd1fd017c71c903",
+   "e8c152f1e5451bfb574cbbefd7fd0c94c48bc78f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html.headers": [
@@ -438714,7 +438741,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "c0fe57edd2661e8ae300b6b07f81abe43a0103d7",
+   "35f607209b41956616a4b78c1d04599f99449461",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438722,7 +438749,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "dffd45534d182f878397ac29b24d90606e860d11",
+   "fc629c39dabfdb6578c339bdd34993abe84c8fb6",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -438730,7 +438757,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "79d8995f9c326cf69896a91e4fe3c8d07595b1f7",
+   "7148d4973c430673d46c612ce5b201cc04fe37c8",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438738,7 +438765,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "ab381f0c907d7ca2fa231780ff099c41286c36cc",
+   "0fefd8d9e7647897eb94d0cd165cbf1f5b6a4c6d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438746,7 +438773,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html": [
-   "d0b3f5affb19c6eb7978472c8ca8228011746f84",
+   "1929fde3fa89503ab18338d6432698fcd2eff59d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html.headers": [
@@ -438754,7 +438781,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "b900876cb4ab163e8aa9c957f22d47bc8d2ef08a",
+   "acf66a905b2cb899867ed58e077fe0b4665cd05d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438762,7 +438789,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html": [
-   "834afccf6769089c8abfb4d112d0560b001a28d2",
+   "75e2cd73efaa5ab1645e46bcb634578ceb6ec75c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -438770,7 +438797,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "d521c167171457b18adf7426a5f607c13cd3bb36",
+   "f9fb398c8788ae93a69ea4468567a8834f5ef1c1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438778,7 +438805,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "6299e8ec7f65292273438256f555b000e2b0d183",
+   "559872f1f31bc0413e127fe45768dbd640d7a0c1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -438786,7 +438813,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "c67433bb7242b01b35398e656898c12aac4e988a",
+   "ac2bec35ae2032cb6becc988242b865b03f9617d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -438794,7 +438821,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "eec9e271431e0f19e95ab4ae709d3f5549d828f7",
+   "34d782c22c7d46612a4661ca1fba7ca25b0a9ddc",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438802,7 +438829,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "8b46cf58362a7ebbb17ef1bdbe3b188afa9af661",
+   "f6f19227db00259508cd334dbefc02f0f1de3470",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438810,7 +438837,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "94290a0c45600d3cb8dc1b3e8ba763d326f383d4",
+   "149727967ddc1963e23b8d841e0864d04a4e5d28",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438818,7 +438845,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "dd800d38e482e10a241a9c053360acbf058e94cc",
+   "eef23b2791d8460acff6eece7cf9dd529b2d4115",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438826,7 +438853,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "96b2d3201b48cf53c662afe5301d0333ff41065d",
+   "45f515c04cb29648460b3b9a1657b43d801292b1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438834,7 +438861,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "75f0f333483645d1bb1ef0dd2c173e2e2aa5a0fa",
+   "6970b1f74cf7f14e2ed45f4562432b82391f484a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438842,7 +438869,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "97c4bb92e94976f94ee8c4362c270fd1b441a9a8",
+   "b529c14ef8a5fa0b4e9213150fa6a42f4d857d0c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438850,7 +438877,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "f6e9650e24161a143075cf8c382d85589568b697",
+   "54d02b588ca6d988d67066653aaea5c0a2249a26",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438858,7 +438885,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "71ff29503cb034fa7b9050c2766c67570daf888a",
+   "43c1f774cc4d30364182de950ad83dcd1d2d855f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438866,7 +438893,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "399bb0c14acc5f4e4079b013318c97782d7f80f8",
+   "8afc89e111996ac2ecd561be90b129922be55b0c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438874,7 +438901,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "2ec45b40a56a8f86dbf4bbfc3d527bb04f5db1c3",
+   "c8046a61bd93dd4ea0b98bc23dccc99baa7fa388",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438882,7 +438909,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "6a93f8429db02b7707aec72269c617ecbd811ccb",
+   "f5a167388698388f59108abb97ec3245e7ea3f01",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438890,7 +438917,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9b72d4bbb75b521bb1fd1513599915f99a1bb10c",
+   "f4bec4504c02d79500354d147809d93ce340488a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438898,7 +438925,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "a7fac617780c7ab44d5e08ee7e2b84fa83d5bba0",
+   "68f694ea714aa79d8cfe4050047fdeba23ffab40",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438906,7 +438933,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "6e8a612c8c483d2730556673ac5a58a7cc56037f",
+   "4bd40993f26fe0f7f1d23aa2e90957a52cce0b38",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -438914,7 +438941,7 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "68cc56301584ac4d6933ec78fb88a4b04d7697e6",
+   "7dbb5581889ffc439f23a81004f49a2758e2015c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -438922,447 +438949,447 @@
    "support"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "af2ce4df2e84aa18c55233b80041dc7810c74b25",
+   "2476110d8ef6c1796ac24530470be511f78cb298",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "33d9214bbe36f7536f3a05746aaf119a8184550a",
+   "afb6b13cb43f039d79a33c18fc46f66f0e72c7dc",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "fe4596ea07807e378c6d1873d4a44bb4fffd4c1c",
+   "4c6f5692736b31b899ea05e66528229f13811c2a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "0f6a74f590f47e14573736be0d5e7ead2871f1ab",
+   "ba9f9a0efefa94157463531641347a0f456c0f8b",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "59fec560322965390742c15f93ad2f053e605ef5",
+   "6517df335314860093384d4d4ec3a48aa35232c7",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "c3bc39e7afcd0072abeb3c5585519740921c964f",
+   "4e15e43099d11170ee408229890bffbc044bf8e1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "d6efd897322008bce9c38569af02bb390082bd14",
+   "7638b0adf61a26ca0ebe3543c8fa0aa5fc2f2a99",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "aa00c6f71d70b6a5b13eefd275f308f2fd6e6215",
+   "6eb29336a51b8d80d60537bd54591253152fb559",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "55083571c65dfb9c413a26947ab2b93b81f26fcc",
+   "1a8e73ce41b7e61cf8eee3bd23d1128969bed636",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "e1d4a6b3f2f876e4f8a0393224579fa3ed994da4",
+   "12b0d017daed5716309600030f02a56c78db06c6",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "6717cc2aa041f3129ac51e12897987b8f5e07c52",
+   "3ae13145cdf538d5c65e707fa754bbe61e1cf1a0",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "fd9e5863833fe25ac40b0e27fc4d0cd4454fcb06",
+   "219c254ad1b27ccfbebf8eff1c62210aeced244b",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "d7fd00050f69fcc98e437cfed96e83691d753286",
+   "7f3aa55d9d9f001447b6380d4d3a5544e9cf123d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "21f16002490268304ff2c325fb1deccc487fbd42",
+   "e69ae0802d615b641ff3c69e8c5ffd2e5a5b4d47",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "aac4a2a3f41c48c39ed79ea22f5515b287ea5c28",
+   "e199ae2cd97ab520d8148fe30a102809cc35ffac",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "7e1ce57dd77267ceaa351438d83e08aefa726692",
+   "2198438fa27ca7fe374916ab3812ce92c2f5bbd2",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "05b5362b4f5b1a84529635b2c1f1c12661dde52d",
+   "41e2e81b3ce87f5116028fab6f056ecd69b35551",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "8d84056e7ed3913abba9e031ea9cd210e0673b9a",
+   "b66d22e3da7dd41fa7b0210960a41534c0219b0a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "e09f582d7360f67b555100197fece4fda3df88b3",
+   "f5c003efc762430b1c2285ebf742ef902c74e515",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "e4f4232ae8683b11d99776532e8160cd1a8a501f",
+   "8e91b249fa76c077fb0efc5967fe3466dcbaa14c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "d3b557d7961e42cd316d6fb48a28abe9e26f1fbe",
+   "af01d1e1cac12b7e0d681aad24d4d9dda22788d5",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "c748f8c251ac862b23bfece5c7c838a76de75d65",
+   "99cfb54efabeb78167bc5dc6caf5942e7011eaed",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7ff4aea0e1d2aeae9b7589d64dc1ef057415226e",
+   "31d98347369d073c7329748213ffde2a64afdd5b",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "cad3acfe5afea36245475a103573d7eedd11e187",
+   "528ebdd0ebc81f804ce883dfff832c2a635950f2",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "6975f78071b1949756c7707e9dc341a3bb3ea370",
+   "9a773233f627ec7f0c79404ea97b3977a7b90e17",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "b55f5379b4687948b76404102695e453b9199ec3",
+   "691f8033a86872ba77e041e0bf3c468a5c61713e",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "514baf51fc461d9754ccaac559f0032b994650f6",
+   "86386e1910dfb5abaf3baa5ad868150fe88399b9",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "41ad2badffa26f22f1a32a7be2e8bfc6fd0b7af9",
+   "2d1cf98d233e04179cd3cb634f0ebd54e94d3ea3",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "36c8aaeafc92cc885e57c8f0d153b98c90226072",
+   "dbf7e11488110b238e5e53ed750b06e7104f07df",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "6cee2216b9f397915659ff8c9c3181ab195e2bf7",
+   "078f1e84f48b447bb6c48a9af2fc12775a2386a9",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "5a67b55e663200dc5f885b1887355a5310b0555f",
+   "d304fee7032922ddb243b7e78c5f90b6208a06e0",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "a3d17dd1d0b6af6be9c79ac71781f09374250446",
+   "d03e37d4e9574e7ae69941482d6b067d62f41287",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "5a33e4c4b5020a9a21b0a4a9cbfdb25c5d9468f6",
+   "b07d53206cd1f218da89bfa5b184847c4ec42c42",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "c86db50d203a25386d9619434ee76beb7fc234c2",
+   "1593e0cb35845469faf8e75fb37c8026b2986f5c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "ba698b85d32e9045da7059c8a9c6d8ec3932e05b",
+   "33baa60317c7a75594d1b518abb684a368efc1b1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "e153ebd848c1d748aa5c886cfb38bcb717a028e3",
+   "c31e2ae39c0f92a7063930952d9a2b4869110998",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "e1d04f843c40934b7980aff4dbdcff042090859d",
+   "9222a8c716ef579d0b78940bac7741499462eb82",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "4451804cd8cecf9a9a02fcdbce527c6d9adec28c",
+   "d8168c9bd1c2782d5810f9f95614ac6d6897d58c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "ec8dcc3bb9fd029031c6970d7a442b53d4711f1e",
+   "eba59dffadbc392fb9c08a2a429e9ce0b50ee912",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "13d58dccf56625fa9dabc9a931b41f67b79b0465",
+   "d1331eb6d7f0b49ff34600d0de43e1c5642df60a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "e7ed38632b1b99fffb0d78f383054dda0b594606",
+   "6c9dcdfedc3454008ab873f5bccf8acae4924334",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "ce744e0093b15d266dacd23992ae2201f0436987",
+   "09d4ca95c43b74841fefc8a51a8d9a7f38bfbaf0",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "574cdccc9b6dc4f06fa5193088361069c1fb4f56",
+   "54342e1433f568478fa667474c94c112a9f64c2d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html": [
-   "f452387ad236f0b0486bc017d63f92880a9cd6f9",
+   "69775f37f6726daf515a424928c4668ce139e038",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "a70858c0585033e2f46fb80175b6b912aa1d2ede",
+   "0ad290b7edae496c8363a66405513fb04a07f7f1",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "621b145501934cbe5213267a7782ff5d03effd54",
+   "139ed4d4fc7844bedab70f9772815f538e8d7dac",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "134267bb13c920ca0ccf360e8311c4566082f84e",
+   "dcd8b45bbbb4bf7b5f2fc600c15555651ef9369c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "f7b4c6c37e6977624da21cb5ac59c962fe4004cd",
+   "5e5ec8c220a0844dfcb0442db15a842558a59749",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html": [
-   "dce5baf64e0a7261950ef12879e135b73125b732",
+   "7fc74dda97ef810cb276b89ab42821d45f377a51",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "ff6b14d5a845795b058f6fe1b398446eedeed6cb",
+   "2d18c27a667e61ff9a8d272bfdc0bc186b0b4335",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html": [
-   "d2541d3407f2a745e5b273f671abc96dc36edf37",
+   "bca073ce3ff0015a9f745b2252e1e214e44e6d9e",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "74f1935efac3b45abb16b9f391c0d03bd9669ae4",
+   "abb708940f381c0a6fcfcee952d3adbce3b3f2d8",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "2da8ff784bad94d9b7977635d86ba9cd7717f972",
+   "699544722421154f17ca340177ea6463fe681176",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "559862ade9901a9a3136a2e9370f58e6fe088b9c",
+   "4ff4f97ca7bbaa3876faee06d601420bcfd1bcfd",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "844daf18c8814172cad0bbaa320eb77c7fe796bb",
+   "4c74d8957b6cd223a61d568459bd686462819d48",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "293d8c3304b82162b468d0f73eb676ba1d635694",
+   "8d26b422dd8f527518f5f0ade939eac454258678",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "7571a86f52ee22834c6df053dbf7a4505b1f51d5",
+   "9337d1e45d5b7c05351f97a03740efe3114d9798",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "96939619cda2ffab5a83bd26df85f60a8b8d3d9d",
+   "27928aa098fc5083ffc1bd91f0aeca0c0a40a03c",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "c79814f0ec87d971dcb67ef95025fa25d3953376",
+   "07ddfbc1555d8cc30b55cce46d56ae0a4a6ad17f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "04b4a59463f0b29d9c6cac7863380183bf8febbe",
+   "d60eac9d39ba5f4c47bfa2ed47b2cbd3abc4d28a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "5c749f4bf9738aba3197cdd690896b61b53f85c1",
+   "dfc8c35b49f117117f17faf02f35fb16859aca62",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "5246fb54f55ca53aeabca3224a0edea423bc528a",
+   "cf4586caf02f3f06f968b16b29cb2cd10dad4049",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "3885e8a6a5a88aa0179f9a1bbc802c0823a0c6e5",
+   "0ab6410623edec68e49fd1548dc5c4d9633e8375",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9de62cd2afbd6ef929cfc5459cdfbe2ecbcd06ff",
+   "53153eb74da4a0c94cc1782ebf496eb592658254",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "af9798b9c0fb69a1e93e4cd171a7dfef401a1733",
+   "a176cffd623a7be166fda59695a9e221861ee47a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "36464436dea596bec11f29258de36c219dcc2764",
+   "1d6d93b81b703fa4f522bc673f881848ef35a04f",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "455693efa7eeab5bfa2cfdaa26b779e70565e15f",
+   "eaad1a0a98e8ba1beebddaeecc0ad5c37ece987a",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "25ca0138fa4798a94f6fbe9e05c7be6d6f5ca784",
+   "f1bb3cc7079b83d94957edc8871c6d403f77e621",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "dd5055d0e35ca29db583b2d492121950758b29eb",
+   "7aee747463a4f3e2cb3003cd12192d630970328d",
    "testharness"
   ],
   "referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "dbecd94064eba3b30c40f811a17c74f7d0490a24",
+   "34e69f7c7438abf8e947834e98effbfae5c7a48e",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "c58c2c723ad203eeefd861f94c66d33b2e844670",
+   "42461c7c8291b6e0d92a08832d2c18f78a46efef",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "0b7655ace11cfb8dffa91a5499a4af987b76f47d",
+   "8e2c95011ff11b63911ecfa0046effbf84b07b9a",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "fe44085e3ee2fe26c765b1445131fe3148f793ca",
+   "76b93cb60d55a213caef25911751cca559280f95",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "875a8ffe49ed2c918e1cc5942b308f066eb1c73b",
+   "def23fdf12f7a5c3581ce4982b6b7a0b784fe41a",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "58af86ef04a660443e9fff78e19d3ebd9fec076a",
+   "a3266512ba4a92fd7ce6ae81ffa7e73e8286a773",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "fb82ab874ee24bae76c35ed66f202586b591fb0a",
+   "1c950d203e8d3c11791c28275cccac6f13dfe76a",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "bdabcd3f3bcdcd2124175914566b683ce000feb1",
+   "610a20c12696fee3bbae10c4baeb62e9b2225368",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "542395d1f3061f36fd4b3beb0bddf8e4557f39b3",
+   "f625618a1ae815929c0de858c9c8759ce043aeaf",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "178f813a614cfdd2bc6295751dbfd2d878e1239d",
+   "678c75ab7d45b7ab5e2028cd3d07f14e2c4737cd",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "ff9462ecbcd46f5058d8cf4435beb3ec675f0bfc",
+   "000ce7b3969f464544cdffdd719efdf7f0a9a9e9",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "a0b8c34f540ef3ce342a34cea0551ea7a1467b7f",
+   "ef883cab54daeea328dc7130b7e11bc97ff8a966",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "c5434c6cd00212786adbb323a1cf95025a0717aa",
+   "24510a06613fdcd581e839269aed5bd6bb3078ce",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "0531f45d3626917c74a16206408e53307280b096",
+   "64efe12111b0d61918c7d36adc73302259db1678",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "8691721fefcaff9046b8060f64cbda4bf3580c59",
+   "0f0dbd681633deedf1818767ddb826aef2c328fa",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "4d69c86dd1560e5bde819326c739892c8bf6126b",
+   "275e6cfc16f3c0c489352d75aaca8600991062c8",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "3330e7cb732a015b96b4892527541a023dfef201",
+   "343fecc8a78ca10c9441e4b22a72842e177b6dc8",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "f159ef61ee95ea67ca831c32c90a81194e982b5f",
+   "f648b8cf33e5df46d7df3dba70d33cb6c4be6370",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "890ab5be5d4604822454a2f21e5c7b5cdfeca7a8",
+   "e99813ab54325408f4e32406b98cd79f98e1c5c2",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "1dd2d1c1c2fcd6804c95c68af49dd053c57297b0",
+   "1f77326ca746aa7b124cec57398d4926465be824",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "4c9e15551ebfb36ac501aa84d0082111063dfcf1",
+   "91aa649a8220db068cb25e28dc0ae6e16d0edd9a",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "0a9f0a3af747c59153f769a46eae1506e5302243",
+   "a9d51a2f5ad7ed9795d4127ff97c9835ca237f8c",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "563ad1b91b8f71544786bbba428f9e4c60d3cfa1",
+   "c56bd5bc449877e481d03161aff5f1e8486836fb",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "1271218d08bfab238ff0d52ba0abda3ec6781653",
+   "e7d6a220827a69377dc0940623c432a6cb041c9c",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "a7b4ad7a5b9364f84a742e8ce701212cd3eaad42",
+   "91c171fa6d1921e8e6317fef09a0012d441ec34a",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "4ba159c7fb5c116784c9d15983e333dbc6f14284",
+   "5ff941231bbf285efb59614acb5ff9af0904dcef",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "c52392c324800f90c707d8729ef6fdbbdc3dbeb0",
+   "5b394487e18b59b7378fe65330babb795b7069a5",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "51c5c52477286e5d8399e24a7397552d775393fb",
+   "59f2fff31ef62e45faaeeac1a7328bb44da2044d",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "6edeebf3d75e1b3f2c90bcd315fd94073c74dea5",
+   "68cd8261ebaf1ee2c1045b7ba8b220a201b1156d",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "0276285cd04bbd9ffe5feb131cb058e2710a980a",
+   "93adb6103c8b249d2030a8acdbb93e8ee74094db",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "2760fdc1ddeb9952010418345a8ccf40c8ffe2d4",
+   "de49d97286f2411240f99766dee84884f007632d",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "2e65b4d125e446e91a284d8eabfbfb2d34c58c00",
+   "3c2855c9faa8805cc2704c7007585cadb8e5e822",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "639c0246bb838185183ed3a5b549aea3236bc4bb",
+   "0c7d14b0db36cd2428d165237cf04fb2091e9612",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "88db01292a34bcc6594920ae00a6fe527d3a5df5",
+   "64920f628190d0b97df877783a8ab308088b7aa2",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "2663e303da5cda53aca53410e483705b37eb8761",
+   "2e10439957ce001ff7d6bfd6b1897c3815298b21",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "11f22d858586a4cadd9c785f5e8b5ff1346fff81",
+   "55dc97173e88e4e12adb7421a6a5f098a0daa8a6",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "3ce8fa97772a81b4bdff71ff73e19b439f1101cd",
+   "d08bc429041d7c879fecfb78faf6208dd353c1ca",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "c17e9a8461c45038ccc7bc07ba1dca52cb42b34a",
+   "5c49deb29f51d417df7a7f36cb5053fa0b490f0c",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "d3a2a47288141420051558f56412ba49b9fcea75",
+   "eac501edc0981aea836ebca815582c87f9a18ebf",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "393a92a4ac0eb9718d2fab77dc0c5cfed0b8e4d7",
+   "1db72da39cfe2b62f2c5d4f48b5ce83d9c7955d1",
    "testharness"
   ],
   "referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "2f2926b128c30fb39d8563a0595a96edbaabe27c",
+   "31aca378f6d32861a217dad870b450097a995917",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "34815f46112b4b9836bbbf4db544ec7c9c8a26ad",
+   "99902760f7ce1411c1160c0944c87c7eb0c7d989",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html.headers": [
@@ -439370,7 +439397,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "57cddb7c4a9d526406655a463030ecb3019263f2",
+   "8f7caf149403ca017e80595b845023acfa521aa5",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439378,7 +439405,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "e0388dbf5e2eac9556bd6f8c79dec85040f3c808",
+   "0ef53d8e08a14a7390856c6faf8dc34ce9394470",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html.headers": [
@@ -439386,7 +439413,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "a3355ef9732a76ce65eda548285b1d0bc95db665",
+   "a81bfc961598c5e55aa91352073b9dcf4674998c",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439394,7 +439421,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "1aed56a52c87e23d5258fe0f651822e496192004",
+   "db728004ffe4fee4ff0ea3db2bb074b33ef8dcd6",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439402,7 +439429,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "4dc27f057f46617a242ce0a20ea9c0188f07a0c3",
+   "62a8de9b1212ffc18b6f53dcc5d9ff27b743124e",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -439410,7 +439437,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "fc98c1d720a9a88f7e260240155a1a58a9f4cceb",
+   "a4efdd16e1c21454bd90da2b8a2c24d66389abc3",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439418,7 +439445,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "435a4b7cb4fbb7a0131cbf5af58b32c0e05b258d",
+   "106e6eda1b4ae3003f4fced185342417dd7c17d4",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439426,7 +439453,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "787e03d5b2eed8115867b2002f2736a3d5f37267",
+   "d1093145df9a9e124b83eefe7b893c11427082e4",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html.headers": [
@@ -439434,7 +439461,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "8dc6c82e1c1523f3755404e548477dde5ff4496d",
+   "d8d6b6eabf8f23514430e1c7ce264beeedb07e90",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439442,7 +439469,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "4a52130cced3d8e7945dc828177e3785f7e858ce",
+   "60d19d4305f4c6454d04895e87de308ae2ff168a",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439450,7 +439477,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "0b5fc2178587a841b54c25658a52c30c8d075326",
+   "9b31ed7bef641e37c7ded5ab68bcc2b5f40bcc92",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html.headers": [
@@ -439458,7 +439485,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "5a47798f03e185c150fe9ce3905aa9078c728467",
+   "7990117a90400d4534050cc58a688c8715e360ea",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439466,7 +439493,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "5fece1114a6a6add14f163edce55f6e71f1f61a9",
+   "bb87b5bda2b6238378c52ef1a94429da020a6559",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439474,7 +439501,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "f3921aaf56dfe7989a13cd8423cca1ff5596a7e1",
+   "b4ed0577d2cac23fbb7769b3bd209fa17c43a24c",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html.headers": [
@@ -439482,7 +439509,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "04ddbada0aa82e81096211827af621b767cb9106",
+   "36d5d03971a5d5443c666ae7e5042f0c9a0dfa19",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439490,7 +439517,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "1d3f7dce1f976175227d86995ebbd51fa71f125c",
+   "ee6a4b4ba23fafc9fc2c33d5060ed1d3f61eb564",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html.headers": [
@@ -439498,7 +439525,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "68528a3d118e375b7136763ea03f786e314170a8",
+   "d40a7ac85810d9969a0ab84f15539163ece2914b",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439506,7 +439533,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "0485112fb137d689b16fbe10700b87d5975643fb",
+   "d65fd11b9c83fff9a9d9d3c544c86f98496659e3",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html.headers": [
@@ -439514,7 +439541,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "c2ae6abed994767fa5ab1e34bc537efe13a1c72a",
+   "8f80e8154692d779a0ccd2941c89150c746b660a",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439522,7 +439549,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "43a2c9c6fb803d25c7d760c98674fc09a568c1d4",
+   "5bbfd0ef4a15ef7f11b391c4a13251f0ade9befa",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439530,7 +439557,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "c6fafef57351261944b75feb0d8e6dc3eda15ecf",
+   "a0d023540f2212f2cf14f22964f23020e8d7c903",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -439538,7 +439565,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "d0b61af2ba9a78aa9664c3315b1f5f8d56183f0f",
+   "0515d6436afbd0a64e972cd827524da861f7cc28",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439546,7 +439573,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "07949589bd712f1cabc2017326995972d29bf185",
+   "3d1bd73fb7a1e535f1e617a98eacc028a30c06d4",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439554,7 +439581,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "325eaeba031d39bad345dbd6eceb73dc97ce475f",
+   "f13681a35268f13ed15a8e6d6a0df49f5e158c6c",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html.headers": [
@@ -439562,7 +439589,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "b68a4e51795a3066ff61a8a4abdef757716fe575",
+   "e1ebe43e3916f1dc6458474c6cdd5dbdc50caee5",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439570,7 +439597,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "8f8f01f20fd9438a7d3fae2bd9165c7cf99eea2a",
+   "bd6869a2baa02bedf5406126d2116c01b0be2495",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439578,7 +439605,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "74cf6d4e792376bc2be2baec352106c914f7fb2d",
+   "3d9b9f132ce79ab77d4c6c749035803ab2a3cf78",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html.headers": [
@@ -439586,7 +439613,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "57c858aec840ab4c21757ff015524b2a07ffab31",
+   "1d35ee33a7221a3ea86d6bfcfdaf2b791ebc8199",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439594,7 +439621,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "097b8cdd3f05546329723da4f3a2346cba6897a1",
+   "44011453965b809c72962349adf81d0f836e096c",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439602,7 +439629,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "c53cf0d94ef79d12acfaa574aa14421a3acd5157",
+   "86a68a6727e599b92a4354211afd4b1ad6d3034d",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html.headers": [
@@ -439610,7 +439637,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "a9370a998dd7f625820c8dbf9cf190bafe31e1db",
+   "df3ab816891e0adc40882a164f778f91ae476e56",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439618,7 +439645,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "713221d297a91809b84a0f6be3e8c9f42ee3c1b2",
+   "f1422ed24cdeb8e671e9ec0d23007e621c81592a",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html.headers": [
@@ -439626,7 +439653,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "712a2cee4eef1c682097e275b2501d099cf37efb",
+   "cff3a8801ff1217a4c03101b89fd07df28e94196",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439634,7 +439661,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "db4b684c794478d545da174748410dd2cbdb80e3",
+   "da2c5b7e1f5d5e6328bc01ea99d79a61a5b31e99",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html.headers": [
@@ -439642,7 +439669,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "334c549171be49acf4ecbe699f9d9a541a22853c",
+   "5f3514b0b4661b7c920cdccb54b96a674eb6fc6f",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439650,7 +439677,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "9a38440128a7cc0779f1ff33d9809bcc4e877041",
+   "bc6d22ad5075d0ef5129a7ab31fd91d43d269967",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439658,7 +439685,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "5e8d81c2d042357f7ca70d64ca8f657e46efd79b",
+   "1290c5100b6bd34b582cae98d979579ad51b88e2",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -439666,7 +439693,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "a49ecda4db78dda0cccb163bd03aac99f3b6d4aa",
+   "c903683a81ba3edf30cda3dbc2928c4eca3d8cac",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439674,7 +439701,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "723f22630c80e34a5d3305b22dce56aec548f6da",
+   "d940f08389425caa771f2635cbf3c07bf4114ae8",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439682,7 +439709,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "c11e69041be63c7b5190ffc32bdae361fd12fc81",
+   "ddd50e267bc838a372249dc5048ad0ce296091f6",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html.headers": [
@@ -439690,7 +439717,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "fd4612effbfdb284f38bbdd55777e373259df936",
+   "2ef7ddeffcc42dd42b4974a0b616f3d8324112a3",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439698,7 +439725,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html": [
-   "b18fbef56a84c969c71e014e28d7cd4e8e984a0b",
+   "b9e3c4b3f0d4d89af73bf144ba5d322df56d51f3",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html.headers": [
@@ -439706,7 +439733,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html": [
-   "3edc386aaa29596a1d61b9f37b6ec03a5cf990f4",
+   "9ec62aa2d1b3be5accb38c18835010e4b85282c9",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html.headers": [
@@ -439714,7 +439741,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "4f12853c0fcb909db6e403deb430e835cf229b38",
+   "303a8d0182413aa8a239f1b897ede082d551aa77",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439722,7 +439749,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "52d3ae1264cbd0413f42d87cacfd012d692a4e39",
+   "f7e1767c96add5ea6e250985b8adebbd9bbd10e3",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html.headers": [
@@ -439730,7 +439757,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "cb20e18af7c23b9b03da2b0b5041625a9888d1e7",
+   "635660b9017dc3e75b964b9b2826234da431e185",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439738,7 +439765,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html": [
-   "636bf3735b1cf7edd969e0b9d07501d9c827be1a",
+   "b2f2be724c159537c71ea03bde146432304aeca6",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html.headers": [
@@ -439746,7 +439773,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html": [
-   "38473b34702d43a771695c4b1ec78301b82c11cd",
+   "234103dd8f7cf6b73a98a93cbb046b4aaadbd474",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html.headers": [
@@ -439754,7 +439781,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html": [
-   "e0d3bd0faf8ab80a11cf37f6823d68e000d913c5",
+   "c82c8a4e9713bd117693a4975db3d87c9850aed0",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439762,7 +439789,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html": [
-   "f6a5f615bb4e0f2c58520140546edac1bf72fb69",
+   "32a281aaf9a50569b32455524a1b98d5c04dfd0c",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html.headers": [
@@ -439770,7 +439797,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "8a49347b7b10e19d83e7d20d94d50126e70eab1f",
+   "c69b1e7d41b9fbdbd41dfd6049e48bf663457e44",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439778,7 +439805,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "9ab2958e4b777973bfd2ea38f14d11304cbb3864",
+   "9568f28ecdde56e7e18d3ef739a92f44a223ba9f",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html.headers": [
@@ -439786,7 +439813,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "bda2e617536c6846c2665cde932d1e302873f9ab",
+   "65b43ac75cbd8bc6eab2d89c51c3807628c7650f",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439794,7 +439821,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "131a9c07803a9cd4fe39b80c804445522e6ca8ea",
+   "76805bf942a7cdcc422d50f6e77ea4b8363bba89",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html.headers": [
@@ -439802,7 +439829,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "c114a3f8a85031c6968d59d5698f16cdbafe7115",
+   "e497c4ba0aec793d1d1aeb7c07e02ee762757545",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439810,7 +439837,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "f1dc1238a12092b79132b04e148e1c11304ee7e0",
+   "f2515906f5837d2a940efc75ad2cddc4ac2ed60e",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html.headers": [
@@ -439818,7 +439845,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "44e0199f5b3dc1fe08c16b2a09ed26d735fec39f",
+   "f7ca726736d74dcbda22a1c0a6276e0381a57d9a",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439826,7 +439853,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "b7b1fc54729ba61ccd39db18f456889c081b7f58",
+   "995443fbcebbabfb85e44db2b7a168354e85ea75",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439834,7 +439861,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "216a1e6cde3ee33146d53ea569fca88cffd3db9b",
+   "2c6590ac4b324bb0d7abc8260e8e9b484cd50ae2",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -439842,7 +439869,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "355f562c1d901e56ad8c3403ed74dd2b59e87a5d",
+   "5334977c62db45978d9b659de220c2ce03b8a578",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439850,7 +439877,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "e6154259563301c96151434d7f123705e31e2414",
+   "db04564136b7d39527b0217776a6ff8de5dfb893",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439858,7 +439885,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "7170884a6e3daea2abbc73e5db613239c78c74c1",
+   "d4672cd6dd42b2240bb8695a6177da9860e94059",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html.headers": [
@@ -439866,7 +439893,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "65a9ba9b7bff9a66af1381087a3b3a07a2addeb8",
+   "eb3a48481c3e33b233cbc36c704c9bba1c947e75",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439874,7 +439901,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "20dda3fe160f30987bc08b9265c82506c7bb2fee",
+   "3f28ff207990f257ec9d8fd664c063a337228cc2",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -439882,7 +439909,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "9beec5d648d17347cd5ce9c403856a8dd24b39b2",
+   "cebab2ca35c2ff1d3748c8c0513e1229561b44f2",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html.headers": [
@@ -439890,7 +439917,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "d02fce2bbeeb22731e6bdf986d550905a4af7de9",
+   "05b25458fe010842c291f6fcfa4f9d2188b0d755",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -439898,7 +439925,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "ec472b264cd3e2c2d115d18cfd22f4dab675137d",
+   "7dff4f79bbd20f8622867a8a5d74369135b2ce24",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -439906,7 +439933,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "deb8d736bf486ecda9de896fae3d1b0483a25c6e",
+   "bb4388c10172851b53d87fc25ba03c77594fa8f9",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html.headers": [
@@ -439914,7 +439941,7 @@
    "support"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "8fa40cb48711c5f6fbae9c97b68ab2eb7a1a3465",
+   "f2a7ddc32962121896b81cc5da47d05ca737765a",
    "testharness"
   ],
   "referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -439922,447 +439949,447 @@
    "support"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "4f02037581d61044109b9391a83bb0ff17dfca71",
+   "93289f82c18d4aaa8e00d36ae5e94ed06a51881f",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "bc1c5021a70da5b8ae361cf1f11b7b58d8175013",
+   "26d52678563ce794d6e35cc9b810ebacf5d3aaa2",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "7b2c327c32015d8931a116150b1d19d7d7c0029c",
+   "7e483a269035b5a5ff89bbd77fbafd1f928cefe3",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "e5ea31157f48b7ca3118e7a32f61cb2d0d36edd4",
+   "c06245306dc6d2d301ca26982e05a02b4ffef2a9",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "cd54256ad03730045a6546ba4a2d677dd5532cbb",
+   "fdbd90e2f820d631446df036b85c53f9d5084f54",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "84b7c650fbf213db54e25c3644ff17d5e780bc13",
+   "3825e542977556a02b168a995e7e8b0d1a9141fa",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "b9e130b9623c49a1cedf213739094566b8d85011",
+   "4d7d1e02d9ad495d1cd99a433641a15ca2718b61",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "ee64a3991678e54101ace14da67a127f687e3348",
+   "5d5c4a021bf71cc52a64e7f0ea60f23172a61392",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "83168afa28a24049e903cff8500bc9c7313c32be",
+   "e0ec15fca9cfed01c14e0b84b49ddd5814b41fcf",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "6e624a4c00610c1d51cce3b5c616c50d28178088",
+   "f803cc2e72ab22de7c633e5a13ca4670b8d88211",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "206283f31617b93fba55622b8b5c0d2e40a27da5",
+   "4365a3afe01ae63a5522d0e97cd7e415e4e805d0",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "c45116994e3e90d1d2d3f10f80e8b52a9530db36",
+   "637ae9566e6571da6d2a3c3a8394572b28ca4d7a",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "c4399815df93f6dd8f0b526673d1a7166f9e37e2",
+   "fa6e076d365aeaee8349a3396109d1cbef928fee",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "29831095ffa45e02c388b74dfb51fdc7717788fe",
+   "1b27a92e3da8b0bd3996b304c6c19b1f4f30e063",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "488a26b4330651043b9dfb9204af89a7bb9221fe",
+   "8185f0002716f48eaf47be74194862853c4d851c",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "1cf420f9338f72b42f04d84c093c259055a47741",
+   "5b2f107682eef3c0e4688d8f3ec8b80c23612c78",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "31e5d1662cc3da3dc1ae67c89538a52a588dc5e4",
+   "a82dc84b109912a5ad48d86f1919c863c59575fc",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "15ff3f5ac478f49d34a3b3ae36c18e72df9b42b7",
+   "c9fa90ef0b8869c9352322cef269975fadbc4743",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "0dd487b42c73b97b632c8a270fabbeed83d1a154",
+   "4765b57cd8d9da0112b761da8dd38b13406facfa",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "b48e453103fa3e49e8a564ea1475a439a35e844b",
+   "1bf43d9a4fa77aad01af879bb87651ac104298fc",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "ba04f94ac0756ad03bae6c3f891cbf0048c7d6f2",
+   "d71c10f55ef8b1d0ca8d567cbe43b7b77092c4a4",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "b35d2db838a1f2a86ffee7872bef7883c757ac8d",
+   "765c59ffd9df960f05b78ec03674700645f453f5",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "e923921d1501f865abbdce06c87c63c30e10d08d",
+   "375e1d4231c01c58618ede268bedb27c7ef7bf8d",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "c1b54abd4bddaeec954217085856141927520f16",
+   "587d613bbdf14c73b7f88622baab12091f1aabb4",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "3ce103711560c80a1d9494ce9d0f2df08d56d1a7",
+   "58b04f610da6276c4dff14d9d3b0f2a982c65428",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "1b4719a32c65f1ee90c84e98f185288669a7543a",
+   "046b05f8b45270d6b6126ca94d4cbd57c8eeb50d",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "b83af76c638b27cfd2ea80e385e859061ba6523c",
+   "5f8628516a889a3c8df2a3711a20b2a05c287214",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "a370ed358851c0552ebb2c9d5436c87d4a76d244",
+   "fa09d764d3b5367acfa1487ea11a2b4236fed615",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "fa2e7a8f5d0d9ae28a5868f2d1a159ef598911cd",
+   "f0ceb06c7cf9df731c9be66f899101fa2458611c",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "485702bc2345d1d9f3c887894d79505f9ad1e31f",
+   "f6f7a8a8477c279488ecce2f7f03fe1a19818e15",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "c412dce6cf1a6fcda03770a7794cc4c846ef6c5a",
+   "8bd07880730a7834bef2564f449b87c88b05c158",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "c1c32ba312c9eee601ba95b16e94b08f233ef017",
+   "0216050b5aa996a9525e67940094e43209faf183",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "1a73ec9e9590235438e48224aa41f94c10e0ad66",
+   "de157bfd629dbd4256deea985c96d97a4234321c",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "852b2a7ac53c0343b4c9906fec1a660fb7924bd1",
+   "71975a01784426670392de7b8a4efd39940f2a74",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "fa18f832d73a5db5f97a82bc472575e6bd3b0596",
+   "ccddbcf5056c3811978ff3801a3abfb55bb41abe",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "e8a9e5144143224cb302b4bb8f3feb4244afda72",
+   "f035f115030b2a883461db6eb4c64d21a87e76ab",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "7932dd8bb57c876a57017c86286764d882f586c9",
+   "b05eb93ff6b36ae23742d0cf49d379c78f947b28",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "324251c10f1879e01d11c4cd8097a0695de1b78a",
+   "d5dc7e24c1a9cb3f6e39a7469ddb11b0d1c57a77",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "67df3bc8fcff4f8de2a91a73d70e3eb2422520c3",
+   "feccd9a975d2d06df4cc368b05038a8da2bcf7e4",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "9000bcbee23dfbd351df3e5cfe066ae58b1bbae8",
+   "f0e0db6e04a75a825eda1485c5e42444af9915d2",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "7f5cb7c8f9f31faf1a9060f595a1b70df8bf13fa",
+   "362bf8ff28924cd6b1850272580d287f8fa88105",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "ea981ad14d08b7fde416e46ee26258ee80f566cb",
+   "43704298c33e2499351d033a125c3b13567c1e95",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html": [
-   "ea935b1d542aae46f105f6be8eff04d448a868db",
+   "643174232769e68bd66cd1cb5636210ffe11751c",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html": [
-   "e22b638b5d16c44b9c5d58ad72e7e3ab29124079",
+   "38d05a3f563f03a93fad9644b69366ee7d42d26b",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "222b078cc664e0472642788c35238e6d29ef2b1e",
+   "fd5ce02eca1e2f4a4305e8955168e35b1612557b",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "3c1c41cda1a1270a2cf9ead008cc45af266487f2",
+   "86526c3f5ef9781bb163208954ab3884ebb03463",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "954dede4acf594a3f537067e8f714da70f4a9887",
+   "a9135e537c02af7bb6d4c0340af1d7b5c6200856",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html": [
-   "d2fc88f0bf9bac5922869797ba2a40151bcdac5f",
+   "2631486b1db63cb781d5a0f80d26410f2c513585",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html": [
-   "6da08e2e0e1e0ab911f052f33f1a0260472dbe56",
+   "74c932ed4a3632a2f3bd86692a3c70bb34298d47",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html": [
-   "b9ac0adff0d2afe568e745c864a691eb61f584bf",
+   "1cd5af2177dc3f3f54652126b3d644677b4dd847",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html": [
-   "1cb5b30bafb80d888691b18a57c9181a835c37e3",
+   "500eae542739f3446afde97bcc97da6ef86e409d",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "b0528816da0f836721b5e7562b8c81e72b3fbfc5",
+   "bfce0b6d8c08cbeb7434898ecf9df6d9dc70f235",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "524e650e983b463a1e045a458b2b33e3afe17460",
+   "157ae0f93c04d755a39a78ec00fa211651377005",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "0b6580b2ee3ff482b75e6cc993a75ed9eedfbda6",
+   "e2b004a80879c8f3967281eafc14ff73193ed2b9",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "7932926619c63e5382d31658280ddea2b1c29df6",
+   "cffa02a31355a14c00f7ab70932725fc1881dd2f",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "5c88dcae2c9f02d6a0f78c6d843a52a26389afb7",
+   "622f2bfe56eb6c638064c4a84e599c23679534ea",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "2a83f8cc91ac883c5db29de360f8d43f01cdeefd",
+   "44e6203fd1700bcf9f1a9febc22f7ca50fd2ae54",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "3714b4a982fa23b0ebe1f3f96ce7daacac44256e",
+   "ac1ec15f433d1295954112a65236f9a275a32d67",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "57b4df568c2b98caed37e8b7c3463b42ad446d2e",
+   "69224666c6672aba157cefd73e03785db1eccc39",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "dcf26139b43c164fd2de5c0c1c2c5cf80d10f375",
+   "eb74c6f2b96acc0e042820f29e559d772b2329af",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "070d4283a136fe3a6fc3b56a63666e9826ccd050",
+   "79098e561dc9aacfd3ed11beda64e6adf8335258",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "9da6e448ba7c09a36f1af9da557b5d75d7a78dba",
+   "be002de7b2584dc1e9d19ffd9a09f244728c13f2",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "2159b24e03fda5314534b3d94208235410b14152",
+   "77e3b3c11030788140d4353d9374305aef5909ff",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "aa032ca43e34548ed43c180f43382f74b444a72d",
+   "151c44ad31b7fe09801eafabb91adda1f7adc95d",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "6e0dcd4c2c12fa1e2a498acde933a27910e601ab",
+   "368ad71f83cecd2a59bad98fb64f782e72d39bd0",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "25559421d06343b98a10e1c60f58ef97337566a0",
+   "6b96346dcc7661ab8985b1854d08783601c2cf9c",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "04bb56842b712727ccfdafec2e6f97afecda831c",
+   "349ad20460951dc3e72a6e9c10da74ac0fe4e10a",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "da806358dbeafd15c277b5bfcf7c688bbc370889",
+   "be53cee6f8e5d230ec3d33b5a7cb0fa7f4091e51",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "253f15de81ca705e3747a4be63ad8873e3b6f740",
+   "f8da5cabac830403fc78e6c5169e01ab216fb1de",
    "testharness"
   ],
   "referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "3b5271935c29c5423a41cf6a767efb9cefdee31f",
+   "c3a50470784b2df8e337de3a899b9b4523a06bee",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html": [
-   "822706864ff0702fc1d2af1f869149174f4a6ed1",
+   "b3ab54550792ff97898aa980e600c155dd6cdfdd",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "9455ed856d3658170f42f23858bffbb1ba27ab60",
+   "d4bf7a1f1dec563620cf029b8473b11a9d7402e4",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html": [
-   "a6512954b88cba17d7d12dfebb8479a3af146994",
+   "d762dee151ac79d94bfccbc7119f332c6d9e6b39",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "af8c262adf25570688375dadb7ef72c1f5a72305",
+   "c9d1b4e49be016615dfc4cc1a1893d9c6aff159c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "2b634b85e40621d2000d7272b686d87a1afdb38d",
+   "927ee8c2e2f8498fec7231f841ffda326f44bb72",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html": [
-   "42ed329bf253569ab625a56dcb45548b12ae7bcc",
+   "a3df64017d962623acf9f87d2f104a484a7a6076",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "9e78e962ca6a21634e0770d30fb58940f35dccdd",
+   "ff3342e75ee8758cd7431d14054e8a9135224326",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "d34b4ae25bbe696408bafc0a4a57e90fb4ca9400",
+   "74205b4add2e42ba8299ca425a9c67e64fb0ab13",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html": [
-   "f8a200230bb1e43537d262c92263d63a4ce60033",
+   "a303873f893b47a034df1dccf382aee626c44572",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "38a61d264a7b2b166b5e19792dab2b3ab97df227",
+   "4c6c29ddfcdd6bc0d930dbf4724ba49f0b8642cc",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html": [
-   "0626306d65adab6a2a81496c6afc22dd8d91e489",
+   "99144cde54454e4ea754549418853a372508d6fa",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "f0dd273c32073b95c33bd3266b1e52a97207f16a",
+   "a33e68004bb425c46da49f89c94fbb3fcc0a08c6",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html": [
-   "0687cc22f529143631d3041c68c2ecd9f3f47292",
+   "accf8eb7510f2e1ae9b5cf55ce810939de3c4061",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "7b6dd7b981a4dec3f22cb933eddb0b5179826454",
+   "58aa461d790d84d3d53badfef3f765a66fd318d0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "c371ce99322a6f0aa65be9d6ef704038c4287717",
+   "9924d010f77436e68be4294fa3643091e66d4deb",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html": [
-   "5bfef0ff661c84625940659b37ccdcb18668da48",
+   "421dfc01dde5a5d75226516165fccfa1c2cd707d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "856951865ef647dfa5d7148aafccd51feab5c267",
+   "78f45838ed89e0cf575412d94255ad5091108e06",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "098b987b99d24a75619819e29b66f943eb48eb3d",
+   "6bfcaa405804868055d5363567cef5e974b80e01",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html": [
-   "2d8217031d188a2d994205f97773ae7805e97e02",
+   "66360f4eb4bddb898b93f4ec68957095e29b37b0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "fce7ad9933b5f292f7d35626af8b142ebfb15bcc",
+   "19daec1b686e5c22774cf0a90ae548913e3f5668",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html": [
-   "eadb3d1d614d68b1503efc2e7755b4eb3d1e0853",
+   "db98a1c7e9fd04d08bdbe29ed1f729cdf34acdc6",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "1bcb41746d72c8752ca5c2cdf3b9bd2cd4f07817",
+   "f64f19a72683bf7b75bec6c4cd06a15ef32d2337",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html": [
-   "8f3c27f7e6dd78556656999ab67928dc92b9f58b",
+   "390a5f5a8b2f7cfda326098506f178264cfa3ea7",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "6633b43a0efa4089324030922fc0fc59cbf4ba6b",
+   "cb9953893e2aedc64f0292cd913aa1deb3605af3",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "36941155b106ac8d5160d5b24d46b07ffb3fa333",
+   "b9e48fe218733fe9ad7f423b1e6bff5a16d287ae",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html": [
-   "fc05b1e52c386f8cc199968e8548255dc9c3639d",
+   "91441418f7392e796ef32d16954bb4afc6787b19",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "56560123ce3b8063a47f062fc329eb0c5ef27ff9",
+   "fb3699920a178396923d9610b1aa70846c730b4c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "318ffd577a2c089aac3a8554f23854a08ec313cb",
+   "b5209c4858d10ba397c572a69a6bdbc2ffbe3ce1",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html": [
-   "dea7ad286eef04339ac51b1b18498bda72b2ae28",
+   "e725c59f612a0f2c60054178fe24a7411003f150",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "46c715d6aa2fab2b6345ece4d0ce38d65249e2ec",
+   "50ae40ee38c0d08f5189fa011178878294ac5ca7",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html": [
-   "12903c4da403b797c832766934299f2b30a88740",
+   "cd50a0c73618783b0b770b181051d1c97cbb7768",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "ca0b0b1b5f564ae84b27ec1936877748dbdde05e",
+   "ce16bd7550d13cb193b85e41939da46c19678916",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html": [
-   "19cf59322f7b43bce60f590bbad7f676316118fd",
+   "50e426c1fee8f8518a2eb6fcab0d096e9cc86ac8",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "77452623c86210bec379fff66b51d97eed4a4c6d",
+   "ce5af8884f8c461e390d3002ad04d3e5a5fc414d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "f0c9e6fd969c134b09205085ba9e6d6c60a8af01",
+   "f089bb5418f421feecfc8713c19c1e939dc2c2e6",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html": [
-   "2aed178fd08aa081f22be120bd1db62e04d05476",
+   "080b7afc6bddf1b54a08a9ed3e22888e3df51ba4",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "4e184519eb8b6f4cda6380dd8a4be8edd5311ac3",
+   "7bcb5d59a582ab2b73753697e93d9a713e82cbe1",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "9063bbd5ee5091664415dd6b9024c2d2397f4f8a",
+   "4bb082ea49f87e43832987f79d419f660130a41e",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html": [
-   "56bc742d64d4661438e07d31cd7884b72c711c65",
+   "4da9437134fd36f5ea2cb32e64ca6b14733fbe19",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "3209c5beebf69df7088635450351131464d34e94",
+   "c3733730a056eb543d83920eac3c36e44a6c3f43",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html": [
-   "d78b7146cceff8e134e44238addb4c03d88eef85",
+   "9f902d25220a523c010457cf11e0a5bf492a8676",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440370,7 +440397,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "f4902bd2726be1b7199c9cb69efc4430b0ebb20b",
+   "a0aeaaaae51434cf0dd01bde8d2afbc18c184870",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440378,7 +440405,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html": [
-   "fac6166811f64d0d89a49f9a3b82be30c1c690da",
+   "ad6787e78f7ab50c91f3e915365be72a340be380",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html.headers": [
@@ -440386,7 +440413,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "7385003cf8a602eaeab29562d47376447601fc27",
+   "4a00eabbcedf2b15b8ada4d21f6dea3e321bc7b7",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440394,7 +440421,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "5e3a82f01bdfc363e35666376c43c3796fbc1f71",
+   "aef8b034271c42f7bbeeaa46f77bd6c99a40f031",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440402,7 +440429,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html": [
-   "6eed1d7792d6d064d0bba0ac90d88f6cb03d91ad",
+   "174286a0f9c080990a442c2ffa09299468e085ee",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440410,7 +440437,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "cc3f2c42a094a3a1968f34db80da0c0a6d8c89fd",
+   "3fc318a61f70269d4bd98744e43a593ebe542bb3",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440418,7 +440445,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "c9f973b9bfb81fd3e220bb5197f5537815f6e495",
+   "347ebc1f5ef326d53d930ee6afe89c81ecc9856b",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440426,7 +440453,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html": [
-   "6850d329d048063ce9af71e6fc6a80080ad74045",
+   "9e3c50929b6805b56cac936f0d6e4f707ad8c527",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440434,7 +440461,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "a27a2ee4e04010df64b133ea14253e7bd36987e4",
+   "1437c09ff82950ea38df8b2af60f88f187de02d0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440442,7 +440469,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "67a7335ef210263ea8893bb98af4c1eef6b7a873",
+   "894f2190227b92fc976819b208d81faddadc2e73",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440450,7 +440477,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html": [
-   "bace413985366d7d3ae3d94ac79db6445df38141",
+   "4bac2f3592018fe588b0ca5b99f489b473db5f86",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440458,7 +440485,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "ebedf9e28d125ac49c155a091fcabfb3d16d4079",
+   "ca8069f30b5571a97b27c63c115e0ca6c435e9f2",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440466,7 +440493,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "58121f98f3a59d22aad89681df746df5ac8505eb",
+   "0f50430ef1c0ad5819b518063e2c26b598311a6e",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440474,7 +440501,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html": [
-   "7381c138364a065d8bb38ff6e976e67411ccde1f",
+   "036b2a536ebebae41b91608fc5a6dfc7911f8f82",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html.headers": [
@@ -440482,7 +440509,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "5117e3dd82aae7afbfe044a3fb1dcd7c433e5cc9",
+   "361e380f85edf5e04c64468e7b9307c986e1b0e4",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440490,7 +440517,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html": [
-   "637ed02656ef79409e80123fa1ec8afae0a46a76",
+   "b99ccab0779d1985853f7d2cae1c2604b8a34a27",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440498,7 +440525,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "20fe88fde19b659b5fc0a19add0a79ef68106685",
+   "0fb80285ebb5c65addc37e42e0c65ce9baad9c68",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440506,7 +440533,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html": [
-   "224fc53a05ed806c41c0aa508a5189b1bab3ceff",
+   "302bd2405795292c32007d4494757c7b95424a1b",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html.headers": [
@@ -440514,7 +440541,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "856662a7799b26ec85ecb75046e3b05d706a2340",
+   "e94605844b4a849d08139971b6990db3e3196174",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440522,7 +440549,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "17f78140023d7b806588254c5c13c09dd8417a82",
+   "e216544db00300e92bc1366d76c23c10cdd193b5",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440530,7 +440557,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html": [
-   "53d9a70441152d5cd1056f866e3867f8239a0ac2",
+   "c9a82a7ec97a0bd5825f01bdc5c36deea300eac4",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440538,7 +440565,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "423c8ed2078d6e31515fc0326e0aad99165b712b",
+   "ec1aa5fe20c779361dd664851b00c7fbc37d0abe",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440546,7 +440573,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "790b68586f7798f9782859984d8b11d552cb1189",
+   "21e76cbb71f7bc80a101cf380c75e69e31e7903c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440554,7 +440581,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html": [
-   "1dae9fecc53344e782edf346e6093f08570a7655",
+   "e70bb298ad2358faf749059c73d6bd63ee61131b",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440562,7 +440589,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "75644a3ccc10e86af6312740be65f586459a9538",
+   "221f559302eca162a9f275fa89c965d3565c8bc8",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440570,7 +440597,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "2a226c6e18a1ded0d360ac3b922943cfd4b4b876",
+   "4231bf5a5c4d975784722b4bdbe5e880acba52e5",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440578,7 +440605,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html": [
-   "e1c3ecd128600474cc77528a798954147e2d6a79",
+   "c52248944d9c0fdeae51ade65ceadd19071de608",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html.headers": [
@@ -440586,7 +440613,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "edd101a837e58fed13c0e1232a3200a8c5fd6601",
+   "f52c97603adad510c83c7c11895c5e99bc95b412",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440594,7 +440621,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "37979395e124c1f9a2ab3522e14b39387787b695",
+   "3260bde8f75812e725fd38dbbb51321354f46332",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -440602,7 +440629,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html": [
-   "bc7c6d02d50a40192943f532993572a6c6c56f54",
+   "87ef4d3d75f189d2561270696c6240d33e1c8747",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html.headers": [
@@ -440610,7 +440637,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "f9fbbbc3233eac9004ca814b0220a7b9a0785dc3",
+   "f3dbd367410f89a2a6ba1e5afd9aca488e189754",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -440618,7 +440645,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html": [
-   "f481aa975e944ce312617f92790638a610514331",
+   "aed37136cba5c713d009ce878a99bda61ea05249",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440626,7 +440653,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "6ef928b6e1930a2a34e08662aefad1b37adc139d",
+   "c16e78db1fc297e17e0a2d62309a8459fc89f326",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440634,7 +440661,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html": [
-   "b253ef85283318f9d664aff20cf277a029be9ca0",
+   "86212da23f36ee48c3ccf58155312037b07787c2",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440642,7 +440669,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "2d20c7c6dd1173ad3ec978098cd013f47727e0d2",
+   "b90134b21ace83103fc194e902bc2e642c39f18c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440650,7 +440677,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "67169cf167cf5d3b803b3edd68a3e0d8b3a947bc",
+   "4b0dcf7c29371f9775b135819ca16105d27ac25b",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440658,7 +440685,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html": [
-   "d21c6bda10def1bb5f85171f836d01a97f182816",
+   "8f70ddb5f5896fff18a61f6ead990b070858c7fb",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440666,7 +440693,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "3859dcedf3c689c3690cffc0a3ff22341cb0be93",
+   "70e6d49f088581543409add8d335b3437e2a1dfe",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440674,7 +440701,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "77f71fb392470b38be680a0d7d3dbc982bb95e23",
+   "2b5ad603b3ca7ca64ae18ec9954bed3add6814c8",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440682,7 +440709,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html": [
-   "024d43ea15a2159060ad5f339bde06927b4ccace",
+   "05110163091ea5f17e00322fb3f487820d059ead",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440690,7 +440717,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "fa35c1f3e97b201b037660f8ac3bba5e8f3efbf5",
+   "791dcb00a422ed4dcd306237223c921c2656b57b",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440698,7 +440725,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "291f4928bad916933a32c2e50f1cfd649c70d52d",
+   "5c9f234f570717640fe19f9b9412a18e1b5f15e3",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440706,7 +440733,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html": [
-   "f4006d10ac47f7f3d026326026352f5da09fb495",
+   "add6afd2523994bdc9bb4a258eaed866963115e3",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440714,7 +440741,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "61669344ddd77739934d94de3d0cd4afdac7b2c2",
+   "98e6da8e6bb97ad78b91860ff46967a68ec424e1",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440722,7 +440749,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html": [
-   "4daa0771923abcdb3fbdd75ac700c06aefde51eb",
+   "9d29a062d9864d60a44999c0cc151277206cb97a",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440730,7 +440757,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "369e98e0f073b9eb7a15a739d6be3825df712cc0",
+   "e00321d72c9ccb926e994351939b63e402126476",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440738,7 +440765,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "bac83829eb5306f3b6acae6e6b6766cded85e401",
+   "f525e4b737b7f761fd3dbbe3dbcd4db90b9cd806",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440746,7 +440773,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html": [
-   "b6fe7805564b889759d3463154b7b60f98bad887",
+   "dc152b1c1c3c010eb179ff5dfd482801f7c3473c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440754,7 +440781,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "1ae15983f6cded0f6ea669d1451b0f2982503537",
+   "a775758ece488af8dfc23b7ab10d3c0866ae3573",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440762,7 +440789,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html": [
-   "14159b0d5b9722459985d9786b5c92cb0a1b7c56",
+   "92a2d44535a8a9e955bd92b465ff6c18ffd00011",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440770,7 +440797,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "3ca50f3d66f99b719780ea5efe19ae067b5db119",
+   "8f18dd1eca212a353e0e852b716b65a446f7304d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440778,7 +440805,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html": [
-   "5bddea2b1cd64790ce87c06548cb2302b89ca9f8",
+   "5f68ddb6d6a9727183dd4f8e864e52aeb08d85cb",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html.headers": [
@@ -440786,7 +440813,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "9798ee5b045990873f27cb07e43eea166e66e07d",
+   "0f397527f7f733ded461aac9a5efbec565d9c8a1",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440794,7 +440821,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html": [
-   "79e75063576a06b42944d30e579f12dd07010fb9",
+   "272b00eca2652d1395e8f2369e64f5cf9d97fada",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html.headers": [
@@ -440802,7 +440829,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "ee78d6ef1e935467a6a084f439274dec79567e7b",
+   "d926e88b7cbe25127c0a71d18037635c66c1f573",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html.headers": [
@@ -440810,7 +440837,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html": [
-   "0019b7d1f3364015539c584377d75fc961105041",
+   "35523543b1d572a25d0bfd2afaa1d46c8228e859",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html.headers": [
@@ -440818,7 +440845,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "f4020bdff8a58c739526b9601a51d3a6adc971e6",
+   "cba63f68e23cfd282d1970eee06200f1ce2dd70a",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440826,7 +440853,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "48dcc5d522e87086f229d39b73210e29e9d268b8",
+   "f44abaac86d6edc135c842e7b1da11dd2c5285d0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html.headers": [
@@ -440834,7 +440861,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html": [
-   "6cc4669d98825c22ab1ae4ebc2f83611c3bf8b87",
+   "7666ac3fdcc4e728ee7aec2bb546bf23377fd2fb",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html.headers": [
@@ -440842,7 +440869,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "b1bacfe9bbad91ab236d2d0d5bce7e6003c49cbd",
+   "098ff416ee53d90dc84a794a864c6d5004daaa55",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440850,7 +440877,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "08156b668c4cd77941068946bef80083e2c69fca",
+   "ac60e28d9f272af97899a4e85c40e6810e640653",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html.headers": [
@@ -440858,7 +440885,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html": [
-   "ae1f44978c7b6d933da161515fc8edaa0824771a",
+   "c7c01131967d17e422d96c441b5923f4bca9cb8f",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html.headers": [
@@ -440866,7 +440893,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "7b0f9d4b3b7d64c16be5bc4734896782e845237f",
+   "cd1bae5c06628cdb5b28c30237c39257407760c8",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440874,7 +440901,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "633eb15d97a9594632f782a0fa7722bf34bf6cba",
+   "fd4d713c8a7a98f7c66d899192f43bfa54fdac97",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html.headers": [
@@ -440882,7 +440909,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html": [
-   "b7dd2d260b232c707390d2b47dfb16813615df2e",
+   "7d2da9aebe1138f057d51b8faf7b232d9404927a",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html.headers": [
@@ -440890,7 +440917,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "d968e31f46203b4105784b40690961365662d3d6",
+   "60a11860cca1c059e3f67d134112cfc351c1f98f",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440898,7 +440925,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "cde3c4dcb62cb95d327c2203968ef4e5b5cc174f",
+   "9b24a9b8227402c5561d991ca511c43f7d1ddfbc",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html.headers": [
@@ -440906,7 +440933,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html": [
-   "69e0ac3f3922c48c41c57b7300865e08a7fdb6e7",
+   "351d30bd251e7633b99aceed9e393c54fd9c4267",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html.headers": [
@@ -440914,7 +440941,7 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "f9f5cbfc2e0ecf380f62f04c4f9bf2ffb6e10534",
+   "c665e5b43f5769821764ceac38632722a3c0666f",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -440922,447 +440949,447 @@
    "support"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html": [
-   "6a1e8da86f081b700f2e6192b0852450d972108f",
+   "05b86531109bb262fc3bdfd740b236763494ea63",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "cae0548b2819da6e018a754694846b8a694132df",
+   "97c82f66ef0460f9e1896911ce480b2265aca547",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html": [
-   "dfbdf4e37415438bd9a5857f396603e0a831646a",
+   "9537a48957f80738b504084345794d4808384b24",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "33a64908d8fe9e5fad315270bf0fde24f478f0a9",
+   "368b0ee16190000d8ee84854e92ff62db1667f44",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "99d89c892d941d3611251439e3131b9c7e5b088e",
+   "4211efaba0b91bb932aeb894d2e1fddff68eff65",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html": [
-   "efc15af9bbc1ddd89b1255d9ff662833836e785a",
+   "d60f065db5043c29a468e9a16a1efe325d34de09",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "6457b6d07b63cfcd7e54b0ef26fdf6c999d2e1f0",
+   "662e24872c2c8ac00dbe31e16887dfde03abeffd",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "b4895ecb1cac95692a7f4620d3487cfef04a826b",
+   "38948e13c4c9e5553b205e2468898b00f86f8e7f",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html": [
-   "8253f1e26e2889294fd760913b06f09f03d63c2e",
+   "907cc36092e15254082683c11ebb2a3590092fd9",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "8319c47992e831ff6a95a0e632fb2ae19ab9f50a",
+   "c75f25713b15dc4507e4b33be91ae507741bee76",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "c96142058fc425dc01cfff41b294373906cd2c67",
+   "f39fb3987d118519257769d48313012a9dd363aa",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html": [
-   "fc66046378542d569685a92139617ad97ac262ea",
+   "7e68742208746868ce9a75c871e1660cdc3385f0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "a821ec58add23b552bb430e997e1fa6ec56860ce",
+   "17bd96e9ef90e7551a8002ea22e84aaab27ba060",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "f86d0e825ca15eee322704a1e296617fe76ffb95",
+   "a9a7577a85d6e4876b510bcf03f82a257ef370fb",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html": [
-   "f4826c63ac5b4c5843a4c267d2adcea676d43c6e",
+   "11a875323c742f3b8dd244667b997aef24a9bf0d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "d83650ee3661b585e9b4bea623aa100da96daf35",
+   "a0ed420f942883961ee8d8a7da0345539ac7fb41",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html": [
-   "d2784edeecf7083db7a232da7d16951cca57f796",
+   "f1bf5cd08007fda1a0577a2518b8bb8f51e9a5ad",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "48676a9744def4910f099c2d92e3cecee01bdc0e",
+   "bbd7756d552590d4dd7692c3c5a5729babb9a7dc",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html": [
-   "2812882a2ada8fdccd8f967f87cde5ec6adbe90d",
+   "293db9a254e63bf89e0061acf1bb7921c716d988",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "cc13e377b14a2d0f2e3dede7ac13bcb0dd6af2bf",
+   "33680a3950850e6215eee30234b561ffe6ff067e",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "bbb011122af6e33d9b76e62d77b6510b3c9e301c",
+   "9374b0c9976d795809d684945017e0fe7696dd6c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html": [
-   "6d3ec1b96339fa23baf510d56290ba614b7d6c24",
+   "2b6af670a40ee7923e520613ed445d5a75a8e4c3",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "76c95cdea76713dd9552d3ad5ec30da37d732f73",
+   "af557c3e0970423927d6d49dd39b8266e701c4a0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "114d4dc8656477d7a8041bcce41a148111ccb596",
+   "e5013b496c53956be123dd07f856cde5f68faf0c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html": [
-   "0b7378bd620b3a2965044c610b3f6c8a58a3c694",
+   "f8f883c5a557175f04645ea4780a6c5813d0ac78",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "d5e863d2ea5f193408e9f18136a22ac9f286f32e",
+   "071c2023856d7d3c88de23eab39ca584f2243741",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "94f0f0b675e99d245a476d2acb1207d5a71e7cf1",
+   "4f717db0327ead93ec75f1b60d8a058382e98936",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html": [
-   "4a1ba7ae95de74545742535a49c598ccf7ed5c86",
+   "7fb3baf96cc556461f729e3c1b69c05b7880b9bf",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "7009e93f4b93ec87cb6b6a6506b291859e5cae80",
+   "a5d2f72ea379bbb9f965976f255f5aaff8d91c0d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "219ae6d84980a2384474503a6257e7eb6872214d",
+   "f3aa717b93af933a3d3debe550595235b8f62b42",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html": [
-   "df5a52f9a8599c1ddfe4abdb9c50e969eda9ee0e",
+   "8e682a3f3d30fe594cfa88c5e66b49c02fe8e1e7",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "7436b3978965ed25c1c0d52f60b0811aa2518622",
+   "fa83b85d0747d71fab7a2c0146af9cb2638b6014",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html": [
-   "ef7b77d48eb764888266c995f6502bfb554a14db",
+   "f3686ad81e8a88ad37af937bc1bbea78f08b0b56",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "ebaa47c7220dd4fe1ea73a6f762ae2f454e47d8b",
+   "7e81614e044ddcbe451e8324b512b3f18d9a65da",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html": [
-   "6cb598b3818983bf4be63a8acb39202bbe14e8d9",
+   "331bbdc50e38da16293918d763d4e778cbe8e55a",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "f7b661028921c251068fc058fad206ff76e167a1",
+   "dac39cccddd45380bd23bc30c10b9bf02b00ea23",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "cc2175edbb9a40086c54a8d0ed083169ec83d986",
+   "d18ea4abd82c3e2a90ef72bb5a22959701f70292",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html": [
-   "b8cecaeed1476ffe8802adc9fa03821fc8c70196",
+   "09d5070910f7fc17d50dec9262fa1d40e59a4f3b",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "ba8b28780decbe0cc5b3d4f5e4d3988866fb87db",
+   "695925490df59ec1d46fb8c4a9288fe47bdb9e07",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "9aa2e5128fc67d277317b61f9e878d54af0098cf",
+   "0da5165131edcf3922840631a76cf0675bf0fc86",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html": [
-   "9d997bd1ae90504db1b983a926d78876820a471f",
+   "0549934ffda96b5c6c66d3af3774f90c3b082841",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "0245434f37cc429db0c28948169f4af353cfb2e7",
+   "da3532e1f2ec1d18de46b851e8ff3068d4a86fdd",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "12b857b64dcfd55e208c7082b19af53338599105",
+   "2a4336594a204c8b4dc6fef75a20b4ba18dc3953",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html": [
-   "056ff4efbf29acf8372713dce4ed5f7fc018da7a",
+   "2ef56b06f5668708a7dc60f8036870f3bddb8603",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "969d7e8dd4c9b634b5233859e1a11d93fb33239b",
+   "2daf158239df9ba8a3b5467ebb347af670c8567d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html": [
-   "091ce5d0eb1c3721b733c72245cd1a693876cdff",
+   "13d8b9b5c4a9bde68e2c6239c0075137e6141f9c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "9be9f24e6ee59335216c47796fa5c45e33b2035a",
+   "ac38dd8430bbe3764e837498023de929c1db8ba1",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "8a7bdc29a40e52dae754495179da2ac6556f7dac",
+   "31b0ed5f974bd5b9612885ecbf7e0beed8a2ec3d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html": [
-   "4618f8eb3e52289dc1d5c15a43c2559e2ca667c9",
+   "68e7b3b795416a3c6e489b60a84199364bdf95ca",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "3bd6428d32721941e361e3fbc00e11e67a500fcc",
+   "7ba521e0a07e8ae3ee7e86d9fccf0458bd845299",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html": [
-   "497b8f617482272bb1f8ef025392c4b2bc784260",
+   "23de8a050429922d797814864497c2ebdee5cfbe",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "225c18eb7a0f6517bab203ebd2b9c7712f209043",
+   "400db8eb15a5915b9d459d0d7a812d4892fcc6bc",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html": [
-   "eb3e612fd3d9854efdd85683b9de8f689202e794",
+   "fd20ee80fc36bd6256730dbb80f1f8c09ed02f28",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "ef09fe30ce3da89607db242df4e06990b1ab26f2",
+   "2df2a64f157171a5b8e02f1202f8674529aa9ac3",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html": [
-   "2111a0cf7c5bb0529561706867d66a4819335b6e",
+   "410b0f60abf5c2752dc77331d17955f45f021f7c",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "f0adebf34b3c564d4badce6964258047c0c96bf4",
+   "e8a7f7a9a922bda5d958e126fd520ee62fba2fc5",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html": [
-   "4d5714f87f1b4be87e3aee22b2c326d56206ef87",
+   "c453f6b20577fe8f45dfc0f77cd1710dcaeb0c70",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "6578bd1e63116f370364f72ebfbc9db3d64f45c5",
+   "97964228c16eaa6a6abc0369dcfbc2c068961eaf",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "94802477e7b3e3a18e73384e4cca72eca117757c",
+   "54fbe6c6b23fe875f996d7b5195b21962242d7d2",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html": [
-   "a4298049e507656615a75676b31a6524572462d6",
+   "bb4c5d584e80591c411139b0c323a4a6361a88c7",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "548e63ea9741e8cc94287be956bb3cb65cacc35e",
+   "fa5da93f3207288fa73ddaf92f4f994c2049e276",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "32da6f1eaae40569e070e30c7ad931bd1b0cad11",
+   "1c793e5d20f0fd9033eca03b71d34d8b3292c527",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html": [
-   "c7367f7065972721dff937e3d7a1c92b1e1e826d",
+   "af71d2cb0af296ea1a52261a12dcf4b34370bf29",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "a0e33c7205f12e0e3f6cefa85e4bbec50fa41cf1",
+   "7b048dfdd0c572b2eb293e8ad19d8d6708dfda02",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "c80a3c7e52f608695d03587f8b1f9c8d3f3ed0b8",
+   "de54508cc61416b313ba82a8daae7eab80cbdef4",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html": [
-   "e7e65e19ec66aa167cd0cfd6d8ea8ec6f5cd366f",
+   "2cb2c9cafa0542c3f1e449d4b9a6a6e2ad021f25",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "42ecdbc0fd8be472b52e9c0f72350b8cd5e99aa1",
+   "beef748465d4d05a342943b0b98f1704b06ccee0",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html": [
-   "c6dcc471c47de7379cde919a60beac5acd14325a",
+   "7ff81f1acad8cd5fbd706c38616b37833c387ab9",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html": [
-   "53505abe07c2dc804067e14f9d020e6158efda5f",
+   "bbacb9889fa4f592e72e2ad3d7cbcb4587a1ec4d",
    "testharness"
   ],
   "referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "76b1b2df5fa373a09483837f4e3b9257630d483d",
+   "75cafd9d0134c8e940f5ebe323bea08f794f5d1a",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "290d81d821a60cbef0a407bda075d70cdd8ca43f",
+   "aa620be407211c1b4131a88456fc2b18478779a3",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "403b08e5dc7f87e7ed507f7f2e06460563890950",
+   "a75718db06c94b057e7c0cc3b3b963477b4548f5",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "25e9e2f45fb7dc0062c898216bc7fc13d3026cab",
+   "685c62057bed9b087826e522c055c5a27713dde9",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "0ae83292f8a2dd8afcbdea225a66fa941c74b246",
+   "7914e4c579394e293b6131d46099ae5ca2b959df",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "7358e1c7019456b36764bd6726f2608e4a741835",
+   "a24dbda650f64ae2ecad869b44e375f9243f0627",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "77b87b8cb976a475ef146359fa28cf3bb7eb138d",
+   "7ec3eda9fed5c6015e9920c436dbc2da4eecab16",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "e8ba9a759403cc8948124d21cb96476da4483abd",
+   "214480ca0ea75c2ec61936d7ad3ae8e9f99398b4",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "9be1730a90ea1039f2e52b25a779c7bb76b340da",
+   "1a4d14979f2f70430afecbc2ac3c47cacfc3a014",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "a7d72f50618482dbed6295544912c1283b3c4f91",
+   "d120b9c15545bfb6a145c6ceecc415b39729fe84",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "9bfb0810d3d056a69a5dfacf403029aeec1eb84a",
+   "e634d528dcd1123c60696e8e74c12806d376bae6",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "6d528c04d01379fcbaccefdf5c680a3220f927dc",
+   "41d7e859d41c1968e72d62beeddf37eb98d03761",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "5622a50bf201d873350f996d2cc0b731efd5a83e",
+   "48189b1adabc698a79f9b31aaa35f3016a72a620",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "dfdf69fbcdc6fc5debabc5afe01abad28a0f1264",
+   "8f7a234ad56b869d49e81d67cad42de5599cf40f",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "f5542f97e1cca419f43b36f2aecb4f2e426b53a3",
+   "8a7a4cd9f655056cebdeb472c4f4a98548d8400b",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "8cec185e133a1c502175dbc3c63f21bea3e852e4",
+   "a868394177461a4cbc649ba4e886c6c28a0b10c6",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "9cb253f3569f7f4fbe7ed2d6f5a459ce2324f568",
+   "f4275d6d7a87b3bc8ba23c9111c4022dcc0fe016",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "2ce74e688b9705c807514f88678098da6b9d437b",
+   "248ffa35a82141102ea6afc556ef14682b434842",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "0a24543d610da923037827f3ef7f55a5d199bbe2",
+   "16c44750747b47576a3d4c453a698600603e6574",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "463b67ec4ae74e221ec3ed16349365d970321252",
+   "8bf0a00458ebed3854507fa6dbc87b0e9be6d485",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "10ef951d91ee911775cabfcf1f9195a923769f08",
+   "611336e515fc35ccffa4327382fbe806796f44d9",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "899f078c943c0998e9532c39c0c12f428f81aff5",
+   "bdf2c0192a842a73aad189136cecbe0ab0761db2",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "ce0b1252eae951adc47eda26b357a0834780a2d9",
+   "e5f01e6693246cebc78dbcff86918f3df0883e3f",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "39304901c558f5777981db4d810fa704758f3931",
+   "e471f0a9e754196c658ab572b204ffd8ee272826",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "98710624904217c80f045c003d85c7872b789bc3",
+   "8f7e7201ff88e79f389d62cd15f68e00a4af731a",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "33d76d384f2e3db961855708c8aff0c9f9bebd06",
+   "c52859bbb7a091d677e0b811202ca833dd934e77",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "56a0eabe7dfa215f45e0b7ed54308420b8cf7f94",
+   "30075aff0b6c654f92c97b39359ee4685f922723",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "2befe6ff3818b3b10ad049dc5ce88ffd5f1e34b5",
+   "3f84d37ade115aa1e0166509c87926268b74df13",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "84333fbb7ab895f4685a7bb4ec0fec7b3700fefa",
+   "7a233bfc2fa249ec1ea580053f1b4afbdde36cca",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "15cd9b2b89abcdee6eee78fb2da0de11a17c4f94",
+   "3e523d9f3cdf94b0772eb34064264ac945e349f9",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "10984fde1aa07da06e23f829b075e9e8c3150cde",
+   "532f0c5c33c581d0f651d0350067d3a0ee6b9a74",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "e71d09acc8f13579922338e6a41bf55a72d7fe3f",
+   "f9c2b476b4f73f2111e7e17ea1c875d04289c283",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "c9cb06842c57876979f867a3c9a94b83684aab77",
+   "7ff76ce0747484d222d2e711d4bf8ce8f69e1f83",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "c6f8e1490fb9b79f246f10c0e0db95d7cb5f82b7",
+   "dc86ae02073f048f8430055c6365fd3f7a22f65f",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "dd44b6679a866df22458509b29a47cf65ad79e0c",
+   "3ed7638a2fea350a22b3c3423fef3b9ced280871",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "2ae35e05039455082b59e06e7fe883e09e9c1adb",
+   "ea62578df2b13c9f494d308d5e3df3af717a9e34",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "2b7cc6d59540a5e236fedd45822f95cae7c16053",
+   "50d5a6cb205ac269ab35d3b56fc3afb87f38b01d",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "a6bbc66d32caab811cdcf998c14d565284fbe381",
+   "ca194603e1958b9f8ce68b5930a3ec1f9c9b496f",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "554665cd3e0ce07d25b11c6409a4e5ed97f725d5",
+   "3617e7dca8c9b46780ad8308ee812afe01c5de1f",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "6237b64bd34a41a0b0eab8dfc596ee9e35bc00cb",
+   "d21d561aedf8ea03c532fd31e17b4b45b6e123de",
    "testharness"
   ],
   "referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "6eae7c560197e86363877d037e2cbb52b029cf06",
+   "2b9cf95062565343969d433196b5d11862c3226a",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "5592aa5d0743f2c540d056bc3efc5976beede52a",
+   "fffd1490fee6c8d77cd77b345993de1128fab157",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html.headers": [
@@ -441370,7 +441397,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "758ab57672046d01d28b3c4f29aafced29fe7661",
+   "ab66756f26db8fbee5618f2b68fb06c461202226",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441378,7 +441405,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "35a5049a54b43e63d9bf56c16237b5ac3f1b37f7",
+   "8ee2450b5c6ee31aadfd824f48323e385893b21d",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html.headers": [
@@ -441386,7 +441413,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "851b077e6a202b688ae91729189f05dacfc94fb6",
+   "6b84a807ddab1ac245da2aaff0b24aa4f3bba254",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441394,7 +441421,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "cd93dd64a82f2e7f90917f799a5cfaa962ef26c9",
+   "3f368591eebe7d5e9ed296bd7f2e5897092478cd",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441402,7 +441429,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "3cdd172581e479db6537598d3181e3525e69295e",
+   "ad08efb479ebe59582b30bd32a5c55e98c9aa539",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -441410,7 +441437,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "34be306a1b08c4bef27c19440861f6746e024192",
+   "e7a40a8f5b58b8b93c0c4d28883cb4de6c4e233d",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441418,7 +441445,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "33fe33fb1e9d2f1a85c639d7cd40db2aeb8c161e",
+   "f3a1ceb24851d685fbf2deb948adfffc1c55742e",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441426,7 +441453,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "eecbe272b070e03eae1d4f9b8d3f50d011354597",
+   "f742fedda5ca0d233bb000ef175a45f0a99ffe39",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html.headers": [
@@ -441434,7 +441461,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "90f8d6aa6a128e2f70e93627bcc7c8e905b0b41f",
+   "fc5ba70b0f5229ca3a6326b08458848c5691f74c",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441442,7 +441469,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "8f88eaf53e0fefdbc0c21a8f6f9b69a6cf8c1a42",
+   "bee7e7c7dfabcb61df172478f38bde566aac44e9",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441450,7 +441477,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "3df62ffabb05f5c4a222c659aa4eef8bda8e0b26",
+   "7bbb4f14eda8bc9fbeac14296a8e6011f3aa4023",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html.headers": [
@@ -441458,7 +441485,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "f9961c352bf408e12627f060b2975529c78d7b7e",
+   "b318b3d1b52933707329155cb0fbff9a22e1544e",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441466,7 +441493,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "4c124d2982c63a95f9aef947558f45a271550220",
+   "a245060678aec5d3d105c6934d5b2d9ff950d759",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441474,7 +441501,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "29b6635f96947cb6d46a7a683907e3b4bb5195e2",
+   "618f72716bf58d2b8d0b6f8e9e5362013f6c0d98",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html.headers": [
@@ -441482,7 +441509,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "501315b2bd40fc6b82eb2b47467aa442cb97ecfd",
+   "9bccee1d35bfb02e8368c37a109b7221c86af5dd",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441490,7 +441517,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "b8b2f5ad6377050838a7bfe809a5ab95a3bcc89a",
+   "d134273d38f729f04ff4eac09182bdc75fe5f8ec",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html.headers": [
@@ -441498,7 +441525,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "ddae157a6a23eaae7498749bf37f24f4e69a54b9",
+   "f33f2a41642ecaa660359bcb8c532f3cbc06882a",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441506,7 +441533,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "b484454134d5d6b5eb613ddc37f34d9c40110245",
+   "ec0f304dbd4ca6cefc7cfe0f62e554a4b297e0bd",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html.headers": [
@@ -441514,7 +441541,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "2219a9204d1c581f82419e47b9a5a40f692e0446",
+   "1283487e5f29e5425e67436894b3853852f5abac",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441522,7 +441549,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "22559b1097afde25d04c1cde49f97959b77fd2a2",
+   "10f7d424f2a934f1a0c264c4f87ea7e717b769ff",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441530,7 +441557,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "ddfbd4e197e8b4fd1f5f32bc205fdf9deed02ce9",
+   "4b988f93a4fd97b5444347146fe01f0f294d4e52",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -441538,7 +441565,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "23df7f0ad7c29d366a7a592b82d0c7248d7bd249",
+   "3989f871abdb9397e36c21053208295a0ce26bbb",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441546,7 +441573,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "767c138725f0d8b747f05e23d74182f93e24d237",
+   "393b5c8f2c4130509790ec42874a0b537cb007ca",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441554,7 +441581,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "414cae5d65eed5d0d38b42fc82d59738a7445ed3",
+   "da1a319f11db79fb43390c5adf78d375dbce30a1",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html.headers": [
@@ -441562,7 +441589,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "081b8b55fcd7b8e60641c20ab72d1c71586f03bd",
+   "51e7b9f026ec24a634890584497d9147edbe7165",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441570,7 +441597,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "fd3a69a85ba5132cc2872b46c4a29ce1fc30552d",
+   "c3ef83c913aebf8d4b49a0f6a653a2b4559f560f",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441578,7 +441605,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "65a3a532696f9408c45e34a45005799055a584a1",
+   "c3e754769d78828b5241a140b07df7ecaf427949",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html.headers": [
@@ -441586,7 +441613,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "6fb1b31b1ffa14bbcb2133d2385a24861ce632e9",
+   "36d54be09f7ac1c461091afe2b6e099dcb362744",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441594,7 +441621,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "d8ff89441f7318d73ff0434af0a2967ea1313891",
+   "8f5729a5ff80c890e595a2e3a9d251ccb2199c16",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441602,7 +441629,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "58fbc4829c8c6948db8de16b96a4cd8de9027093",
+   "ad5192f22beefc5559136bf247d93ca150566475",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html.headers": [
@@ -441610,7 +441637,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "229787117c6e8a1dbb754073f27260d422d346d2",
+   "bff291d441e1d31facd93c0e8d82d17583f59cf2",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441618,7 +441645,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "7b79cdeb43229eec5c2b02275629de5d4ab8b652",
+   "38d2b85996e913624ecfb8c4a11466e538004f90",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html.headers": [
@@ -441626,7 +441653,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "2a421f84652350375cdb4f98e75af3bfa89421c5",
+   "4c6c66b676cc6d36b55ac2451999464fa007079b",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441634,7 +441661,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "df23d02dd855e38c27cb4c672faf104322872def",
+   "cd8d5a5be9d45947de4f309fdec2ab54013b2631",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html.headers": [
@@ -441642,7 +441669,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "0098e8f3e103d121391c005d8022c6294369e70a",
+   "9f3da6f3ab8b29bd9c4441490a6358c4149fff0e",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441650,7 +441677,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "6254fb8c76173fe7481ee9fa2a42ddaaa02081c3",
+   "16a0ea6f259c192beea3e6c88b2b7bb117f51ad7",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441658,7 +441685,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "8454f0665a8460eb74be113cf6148aefc47fe59e",
+   "ad1fb82a0925186fb6ad3e469d9b94d06b09120e",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -441666,7 +441693,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "381737defbd700fa1911092569a61796cf82fbea",
+   "9f2b156b000b2df91ac834b11c3e22434a3848d7",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441674,7 +441701,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "7b600cbbd4c9dabf51771ef8d2ea60fc3f213b60",
+   "fede3d587f1f66917aac7590f4bef128aa786b36",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441682,7 +441709,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "f6631d88424c25357c00d3d0c719c2c6698d20e4",
+   "433f7e593ce353bb8e7c03f0b49f78bfece5e569",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html.headers": [
@@ -441690,7 +441717,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "4f087234601f248b8ccb0a762835b0a8e1b7619b",
+   "daed62fc5e4dec1b2891a0552464221ca3ceb909",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441698,7 +441725,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html": [
-   "db8e7be2376b0119fb9f4ce37a72df943bf51507",
+   "615d560eeb194648c43de61968db15deea61e286",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html.headers": [
@@ -441706,7 +441733,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html": [
-   "5a335d0863cafbfd15e95b6b1fcb7cde9b14663a",
+   "dac70645d79bba67d6a5f013384d0ba3c58b5a64",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html.headers": [
@@ -441714,7 +441741,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "04027e95f075c85d94be9a973c85081fc9b70f71",
+   "dac34ad4b55932850178a4407d579ded1b0794b6",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441722,7 +441749,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "37037229b118a04e174674702d2396b399e4006f",
+   "c649d8dd535f2ed01995c36f9dd1eb2255c27c43",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html.headers": [
@@ -441730,7 +441757,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "13473d515afdda75ced99b2242f5caebb6e0a221",
+   "1c621fddc142b840d38ff8060b6cf9ad6492d338",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441738,7 +441765,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html": [
-   "82ee6907051a78e79b72118508deb88820372a14",
+   "d8b420b1cffd0d5b57aadc1198eb44b7c7550390",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html.headers": [
@@ -441746,7 +441773,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html": [
-   "333f687308a71aa32ec84c0fe1ad081b732c3f24",
+   "4fcae6272f1845264fd5f9cefc45b6ed7429f2e6",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html.headers": [
@@ -441754,7 +441781,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html": [
-   "be0f44caff62cb22853b8a008be45709b5d19560",
+   "144995f92ee2daa7cc63f832e96daca30ee86772",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441762,7 +441789,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html": [
-   "7442817360655556433079b7f81cce7403d82f62",
+   "bd0400245b5e18d1c83d39044097f85df701e938",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html.headers": [
@@ -441770,7 +441797,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "619ed34a3315f6c1e28f4b150b086bafb040bb83",
+   "93c9e35cb174164d39dfc89563b79f160da4a063",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441778,7 +441805,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "015a044daf6146bfda2ec0761c3809bcb66c9f2c",
+   "edf049b19687c495f39c22efe142adc6d40cd7ae",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html.headers": [
@@ -441786,7 +441813,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "2b3c2527b36f098556f8aa74e0cb9be90797435b",
+   "92eb517ea4cada62d5e78c0cc9ffb84e39800bc9",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441794,7 +441821,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "f3110e130184a6c74883c5e079c794e64db88a10",
+   "ae73fbcb869ec0e5426197ef176f66a579d76848",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html.headers": [
@@ -441802,7 +441829,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "02d91a903e9cbcffb96227d31541bbaf37b0782c",
+   "37b908384578f3bbb150313b65b69eead1853790",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441810,7 +441837,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "064eea5a3a14534c4cdb071bdf0c3f2f3c872037",
+   "9f077babd8382e69514a62ea7a2787f5d8221550",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html.headers": [
@@ -441818,7 +441845,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "d92098a3114e0c3b7fe9cd4ad24399e840761ecb",
+   "57d7d3a04c0629a7d54c7e8eaace6c2788c6a12e",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441826,7 +441853,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "a8f6d4c2b007570c75cd22e4b804ff5c2c1f55ec",
+   "e857f4c73716bb533d5c8116c8a7a1b9c36d713d",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441834,7 +441861,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "22b20d3b146de20f638e5111d4fed279b14c9c31",
+   "1b49b8f82739fd12f3891520e6319deb54680868",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -441842,7 +441869,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "e4c0e8e69935abf728ec6fd1db6cb1b67b3d57ec",
+   "44ce1077bd62b297254c74880f3df3e7cd474e95",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441850,7 +441877,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "30a7422fe64079fda379df935984541f1c35a45e",
+   "84bd7f15785243a66ded999a4049033bcd76aeba",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441858,7 +441885,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "99c436d7fc887118ac1d1d908d50700d5fc3be55",
+   "af062631476321fb6a8fb217c6004fef20857ce6",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html.headers": [
@@ -441866,7 +441893,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "a94ce6d57bcf5355bfd42f2f06c1a1ea849e74f3",
+   "c05be86fa2809b2ebe9dc415d89dec6d39cdda3e",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441874,7 +441901,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "9f262c0829811a679269877b0fc31aedd2a07cca",
+   "ea519ad8b0f12ca73a1b04e6aa3d79f7c51ef6e6",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -441882,7 +441909,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "e4d50953a6872829736622d5b84fe671040506c7",
+   "34b777898723a847e1f54834a5a49af17752fe82",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html.headers": [
@@ -441890,7 +441917,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "3a3e505e007f76c5c0709c9c49cb1f9ffddfc332",
+   "770a09f7085a35959cca31d837d381c735e302f8",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -441898,7 +441925,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "8cf8a9db06f230768646cd8e1f94c038f96cf337",
+   "734bc6f95c3c38388983c495831b72d8897d51ee",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -441906,7 +441933,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "f0e9bcfe4ed216ea60b9fbed3b436986d1e61468",
+   "d050b563c4b09ae73dddd51e68756ff4936a0d79",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html.headers": [
@@ -441914,7 +441941,7 @@
    "support"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "9bb9159faae24724e1857a6e676ddd1b12378891",
+   "dab9d524b50b9b95a6eef2eb99b5a23bf6bbbeb2",
    "testharness"
   ],
   "referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -441922,419 +441949,419 @@
    "support"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "0d756694501985d41c2945d7327aca6396a8dbba",
+   "84dea491ddebab418bcc3b193bf4f6f5fbf1ad70",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "66cad9817144c428905ffefb2ccb80cf5569302b",
+   "7b1cbb26b035605b7cfbed7a838f95afaf514d8d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "373a9a1fb9f25a7efb0cb51d7d59ad098a901e99",
+   "99c2a35a24a2ff2ee45910a01fefa25bda695b0b",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "0661bda2b5558df3d661281a2de8dac3128d5ebd",
+   "74d96730f03eaa4dc2b50f0586a726ddc05dd0de",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "95cfae3151e62d596046b934e9b326f539969bf9",
+   "9ce9bede537d8ed3d3b7dc0c01a549432a370ae2",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "5631be4380a884c0731db65e22445cfe4def74e2",
+   "506e55c79202249b3d39bbf3b9708a207b4bc8ff",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "c5f2de32e7158fcd5cae13bca07bbd13ff4cac34",
+   "bbab94c8bbd6e2ba11d61fe9c77278f3aebf6df9",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "e676621b20b5d17b7ab59c045b0167aa5efbc5da",
+   "ec567113e3df08c2ca5bfca949794f55088eab4e",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "d1f431ffde70858f76296a20aa5977c7937d2e88",
+   "b8e5a1e0abcbe7dead827b668049ff4de2d98611",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "10ba9c188e19c8c61b669c5247b9492fbcb220dc",
+   "c4c455d4c18b622a9fc87471263dc34698f29f39",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "78762fe53c6a7d0638af43e09d8507caed71b062",
+   "7c00437264b954f521a466145553eecba8b9e33d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "8580bf41ea14c8be3c42f7065514c9cde85e453d",
+   "f7e611b0325154d42bfddd07408f0bb5bf39ba7d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "740cca8ff1699e565dce6ba6e3929b9df0d0038b",
+   "e813a79bb07e4f99e79024ae58673cfea6c31dd2",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "38096523b07b35da9263c8258f1c96b8d585868b",
+   "b399c06afde9f2de8b4dd278ba9ed1a92362e8a0",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "9d1db30f66b4c5e3dfcd827ed8aa5da22ac0245b",
+   "e9329317d5f24dfc24ec1a2a0e08cc7697d488ad",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "f28bd6734a5d10af4b1ba83b0323a630f8d700a1",
+   "2139b0b14f636c6d48025316c5917257f5d462c4",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "ad1d0d06a66773c7938c6ba0492b857a7fc898b8",
+   "71695073c1d162c0ce754891638b56356f159699",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "52ea79ea3de9313b7139159cc43c66e298d736d5",
+   "5e689a460087dd84506deb6e3e24173849a4298d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "45bc707ab0b0caa3f1be8af6b1de25d613fce44c",
+   "397d206f62dd79917435d6876aad19ce6e6a0272",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "d80387047c91ef556836538dca5628665cea07ba",
+   "0ccd881d9facd854ed8b6d323b333da1e97ca585",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "6465e10c905798e2d4a0a698179acf0324a4fbc7",
+   "e7e41b63db231d641c7d1104520f7172ae10bcce",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "413690e8da87c00fc207588507ded26455c859db",
+   "03081d0abfb4d0aa746d900c79e9f50803aa24b6",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "602ec76bdbea9f0a492e852abbc574ab2db3c37e",
+   "18ce9743bf761d16d5101ce61af952e5622c6e18",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "1a987e7f595b361ab36d1d64f2afd8c0771dbd8d",
+   "a5950befbbfc1cc0dc88dc4bdf32d83481ab745a",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "b7d1135086208d0595644a6b657a7f03d4ac56ec",
+   "f8a80aa5a060f73aee22f4a3c073fa1b1f130d0f",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "312c8d556e973922e3c07f0654cfc277af07b0b0",
+   "2e5e19e6251a3f415cf423257a13c836b958c126",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "ba9d5d08f7ecbc0699b6abb486cd4a68964abed0",
+   "c7ebf4abcf50ee18b4c19b64f6c4d6987b6f56bb",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "93a164d270f18b0b657598338b9f091bd3956413",
+   "3a9187bcf99afdfc4eb7215487a50cb5b800c052",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "9b8f447e51482c577d41a15fa7d7ff7da1544fc3",
+   "0cbaa017b59a8b39633ab30f63159b6c9247c67b",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "8b1a8ea3d0423ec487696dfb8d26c3d251b4363d",
+   "3737ab6a8f72968b9d5d41773e3723527f3e0882",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "d40d7b41133e520e24e8e392102ba5d88749083a",
+   "4c384414f3183e94c46558801c0c26dfaa4d44c5",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "65bc469879be24d35adebd129b23cc53c227572c",
+   "037b7a011e577722139470b70f0293f7ae4ec426",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "69c724f4eed283519075ec58631d2eb6ab11b2d8",
+   "0cb67fe3056c78a50db0bb3df09a89b56b94a1a2",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "cba7210bdf0f53ac7e58020bbb839a246ef41707",
+   "16fd9997ceb6402336ca752b8796ce3b872e9b58",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "54122bd8d5fe653473a2777f208e2949a81e60d2",
+   "d38c1b6503a1195c3f12df4e2a9b76d0ffaff2a5",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "a83eed311088e59765cb4d6b70b85ce44514f968",
+   "074b1865ee5fe3bf14bce63ad17bcb4ae523d396",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "493f79902c7ab5c77b582dd5ac4cd269da61dc95",
+   "9f644b23c8c33e8a10b9fa8e03143176a73288cc",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "4aaae188f74a406ebdd0d6fbe733d34e800bfd92",
+   "b9ac4730a34595eff845baad0c34d006ecc14044",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "acf0c7aa0254af3c191eb1d2f886554aa10bf172",
+   "f4342e37e643a50727e0e91899d5e7fb4b1dde21",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "99da41e734704bb09fd9611c2c44c4ede7119664",
+   "9ed44e5a4287b5ec9957b7e5586e6c5910b30fbf",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "756dfb3cd2f8fca830ab27642e816ddc1b5a1740",
+   "6dd14610457ab1dadf1d23dad91b5fce91d859e4",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "65ed223f1ec81b5f5257a37f77bab0ba640de725",
+   "821d533f6f2e0870d77b34dfc275fe26d986882d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html": [
-   "87ebfbfa0b0ae7854dd5747c073ca39b68e50d5b",
+   "06d6ba95b185142ea2e736284a213403fec9609a",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html": [
-   "0cf72a93e9e9f89628be50a54b6920e3eeae12dd",
+   "f4357c15a394e9f0c73e56cf5ab796fa23d734bf",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "96e7d4e7bf935bc23118970f04c719a60cca465f",
+   "53a65a9c81478818aac900a75bfedefbb56ce780",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "d6c28231cd3efd984e1dad37bb75897581f62eed",
+   "73766d21c75d5f3629c8b6affd81010e71a71a9c",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "ee9ad9993775fd3d1865dceae1930c25b02ec9eb",
+   "a534338697f87825d16c0ea5d35d6f0f6c563684",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html": [
-   "09ccab6e19f29b97ddf967ad68824a55fb08565e",
+   "90f15d3fac0f23604d6f7c30e59b8c19334c043e",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html": [
-   "36e0f5d34f4698d67bcd66282fa1d30895c4be4c",
+   "4e4bd6e90a5706ec0fa531fd939cac718d1d778b",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html": [
-   "69a8c2c1d09d37559c8447f5fe7803bb3ed135b9",
+   "8e69d73f9b80387e42a7828103ae81b9f2ae003b",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html": [
-   "4d4e8ef2ddb6def791ac6e86ed936871aadb9272",
+   "400e92543337d1dbad477893273e50fcfddfc750",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "e33ca1b5f933189b597e13e1aa5c8a346b3cda93",
+   "94ec3d20dfee5cd98bddf7431d331e19a559e93c",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "e966c29b62824514dc56498e44fc0d05f701b02c",
+   "bf854e141359ef2fd1559f4d483fdfc3919ea918",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "175441c9e6690fd42117e891f160f1a7c4a0d948",
+   "45a441abd8e180c0f23d744704231afcd9e840e3",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "f323ca74bd4e09c31b9cdc61798c5c56f41939f1",
+   "ae8a1cbea7e466541ee0444c28759e7ed0acd6e5",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "21828b7b73d3719c5fd56a708264064ee633eb28",
+   "487a4e01ca71c7fd70f348b33214cf67186d5038",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "cadd6aa50ead53f74965717a031f8993c182fef7",
+   "ed9dca4b815c382e0ba45cf0a7fa0ef8074eea73",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "ac6d689b5ad20b80bc74a9deead17567bda574a0",
+   "b48fa8741d9a2585fb2ce0d1926d1a49513dce87",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "92c2e4d40a9526ed6446ad985e7c3147872ba039",
+   "b70b01384f4f0e3a8698046505a6ebc03ad088cf",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "eceedcb150a9a0f09ffec587def56e27c0943490",
+   "8bca726055ad1123ae29cf08b2ea56e66ee36ef2",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "e847df8fff2daf0ff18a5cb447d8b7c833853b4e",
+   "5145f3b87fc3767d6ff9045a93ccee2574a256b2",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "9cb83cb0c97abadd206b0cfcdf1d498242c037bb",
+   "49aecc71a73065a810d7b98a17c92f8466a1c6c0",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "700d95828b0ef98d842f7db1c383509ffca148b8",
+   "8e306510727d39962d9149991377c19a09c59074",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "73c907dea435ee6a54d6e35de802832ec05c9481",
+   "e8cbb66772280a74602b6116c6f0791fc0aeef81",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "2b7786cd384e3c228f6e8f66a3407772dbda4726",
+   "348ed773848a711a8c14d1b3d2e8bd909385cd79",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "15ff14f65cea6b383e95f4d5f302136ed92d7a66",
+   "72ff5190be39c0db434077504135c849bb6a4439",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "ba8411200fd6744902165a0469321bb09017c0aa",
+   "d790e13840b1ba59d87d15e9d35621fcebdb4c0d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "60df8dd482451c780c626c0ffd4d71b302ea13d4",
+   "1a05902082e8ba837a880ea91f753a87f9f725f3",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "a119d66bea158c2832fbbbdef9c284dcd3001ef7",
+   "5d798f540bae50540e230a6f6e70f7eb9e24dd7d",
    "testharness"
   ],
   "referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "47c8084c38eef763e57fcd7ea5339d43d4af05aa",
+   "a11d44f1750c31b559f8c92c8214220f48990a65",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html": [
-   "8d4c19c4863d848efdaf985b7fa6dd367214158a",
+   "27be3854a1a56e0b9d337118a3b65cb79ea422e9",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "14e928ea859a45010ea9695afe247aa410828481",
+   "d781a3c846b9a1e9be012843725cf4a14719d1a3",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html": [
-   "0e549ae0d402ad38db66ce5fc30f02aa4c0bb6ed",
+   "10d6d0240db66ecbd187440db79dd1d5d06a1e3c",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "ea0d402325e99ebdb9750d6e2a21dfd9de3e358d",
+   "692bceabc2dbcebfeb5af6ec53609222c4fdbd21",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "0acf101b8ef641982541838c898dd88eeadf0de3",
+   "560438ceb146f146e914e367bf91f59c695b908d",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html": [
-   "7026fe1d12d070a5ffb2e54e8bc0eaa96125c8ea",
+   "e2e3c145807bd7a8ad2150c41c931513a3e1cb30",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "e8bb9ae8580cee5caa06b716bc0d033767504561",
+   "4d1c319f03a831d98d8e5c469123e1007dddc611",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "0c7b71228174cabaed922cc888dedc07773e98b6",
+   "bc7ee277cb44ffda8958a6e06bc169eeebd8483a",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html": [
-   "eca111bd511d93f78fd545dc76d3b302ff22651c",
+   "7cf53822096c10807cc47e1658f8b7388efed985",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "f46299630e10da3a59a91f7a31a541c661457b35",
+   "ec99ff4cd648c0bbba59f5daac05e29c40b8ae6c",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html": [
-   "59943a3ee452d8fadca88690aec0ebe5523cba00",
+   "2b47852898b76a645976b60d8e187929870fb518",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "73f992b65570ad3e87dff57c63355b9f29acee90",
+   "a2b03cece1f775ac694237a9f354f08682cf99cc",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html": [
-   "7fc3541bc7f5c1450557611b07ce36c21c7c9544",
+   "1ed9506e591ff3554064adaa9e95c50d0154e566",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "73ba641f908edc84bdd06bc59c225690af94ac14",
+   "10d8d55e4fab65034cc06968d839839e8ac6c3a3",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "172853a4fec05a7514633de37835d4cef8c240ba",
+   "e5599ca5d60e5ef1ddc653c97514e828613daf36",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html": [
-   "b2104f4cb599e4508f5c31c4b2d6748c7704dbc3",
+   "5982a1a2e5343f5331b1c9360e1e52f891435b73",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "c984c4363e8ab594f607b0bd361c9e99baccd5fa",
+   "d843f6e389925ca8057108af8061d815d50d825b",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "7b61c2621889f64c161acb705176208ee7efb0a1",
+   "22e5916a6609f4fc2326aab00c2b3b440c816890",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html": [
-   "aa3b6aa07b15a809e8caac9ed74dd4bb8efbc962",
+   "32fc200c506755e96bca2cd83f39a25e9f6465ec",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "b993d95afa4042d177f06f9c168465c8f8639aa4",
+   "1b402276e3ceff099db8561aea325fdd69e2277a",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html": [
-   "a384aa04e3be39df35c5cf76800b9b9088e7d8a0",
+   "16e801bc89a1df0664e37095d2aeb6c67e59f2dc",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "4cb71bcbf1956e755b6f9c43510d63aa001d22da",
+   "3877ada9427d389c578fbe89315d65c41b9a9ccc",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html": [
-   "66abd90fd5d507419a94aef2b4bc3f45f5071882",
+   "1fc0adb4d09736966d935b3e2fb7b98ed7016f94",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "7c366c1080ebc86bc0018142ff69b3aa51f5f97e",
+   "190220f0161eb307029ec84bf8d86b66c284a9e4",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "11683e44beb328eb4b2e495a0c29e15dc67f0de7",
+   "fa4064bb6c4f6d1ef9e159b07434196638314563",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html": [
-   "617093728176c8b4bcd7e64ec991a48d31e58624",
+   "ce1a841dae757d2ce85f248ef7ffda2ee113c0fb",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "594c2984df619825d67ed32b3600bcd1c11c2a29",
+   "c779d1494644117691bfbaf44c48cf1d45e05fa5",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "0a4d82c7eed3a4cc8b87a40aa40ad512826acd89",
+   "949c1235c23840f002cc4fff7b3c22f460fba3be",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html": [
-   "7eee32a0406dd87c11e77afc86d898ce34e920c2",
+   "d24966f203f5403d04cb92317725f7ead8ab86df",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "f92bf349cff2ea52362e037617a76f5f51dbddf7",
+   "5a995aa042ca74f113cb0139b9a8905ece352492",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "f17556c54bdef34437c2c36ee0387d44bf941912",
+   "08319d5faeeaa7a2964960f4c91250460f0b11f6",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "fa91f2cbb38b69093e92ad732bc6ad3b0af6b01c",
+   "31692cca4601a8c23f3a7fc31c15d4eb7f4c86ed",
    "testharness"
   ],
   "referrer-policy/same-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "ddd0fd439071ffcbb80845e10c55c7c40ce7c916",
+   "dd06b82cb0e17f5aa703874a5183de59bc3c8f94",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html": [
-   "f04cea14e663a8e4d60e1fb4168d963c94fc2994",
+   "b5c99bd430a475b45e6b28802151c971669216cf",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442342,7 +442369,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "18dba0048818eeae44b14c2990e18bdc57c7ba78",
+   "06780d9504cb98be72fc8a287de3d36dd65776e1",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442350,7 +442377,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html": [
-   "9d8b2b2c4e1b258466bd82c287616a8f2f0f7a5d",
+   "5e57d9aba05e8c48b1381066ffb77619ab0d6378",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html.headers": [
@@ -442358,7 +442385,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "2befacac7af325d0b5da4bc92642498cba5290c1",
+   "ac2b34d45167438611e7e100fd12990ecf366cc8",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442366,7 +442393,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "988c99d5c60a0a2759aefccbf1913483b227928d",
+   "3db9b5d5ff68c60091710d8274722907eaa89005",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442374,7 +442401,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html": [
-   "7588d84e09326df66a83e53af19e0e3eebab6fd9",
+   "81023157107cfa9f97199dc63aeecb3dc566e343",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442382,7 +442409,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "3e2b36979fce69977685a91758b5cee686d5c6fe",
+   "9cffc3a3e9ec2ca6c93372ee1263080cbdda4f8c",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442390,7 +442417,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "b26c3efdc2a5b6ec62055a5fb429f6f5ea7db18b",
+   "77090c12734e1518e1d51dd02d37f2f1b963369d",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442398,7 +442425,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html": [
-   "c7c348f90ba8d106e6628405c5d3b2bd6cfd05c5",
+   "e36ed4dd893aa2ce1aa65fdb6b52dac641bdea7a",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442406,7 +442433,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "126e278b4b616ebc980d7b626440c4daca7ebd98",
+   "90de6fb92aa87d9a89f1f31751000e3229f25d82",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442414,7 +442441,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "f22d6d87b88b70be73b0422e53ab195c04ebb3fb",
+   "a483e45c53f4fb768eb55a25dd05e56b951bda22",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442422,7 +442449,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html": [
-   "90dd8881d5369d965ea65be32945767f56c60b9a",
+   "88e761fadc95cc094a8c5f53b0aa3b8d9dd3e3b4",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442430,7 +442457,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "8dd055d71c36e6e2df43ac3a7b16dda8a0fae937",
+   "ab9b34004e60624c6d04c4aaac839deb9defb9bb",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442438,7 +442465,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "32248c739405ee3c48b3504fd33d6fd055ecc60c",
+   "2ae899937a5d342fbb11b7cd26cf118f763f4869",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442446,7 +442473,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html": [
-   "4e41494b86965fdcb6a4e3d65418f871da8bc4cd",
+   "318ac0f04b6fdc4c9fca069b88dcdfbc5c1b12ae",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html.headers": [
@@ -442454,7 +442481,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "08973c57153dcbcf1ffb16743003881fe2d08637",
+   "ca48b235a3c1961dd6dfc2ce878ab147ae7c16c3",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442462,7 +442489,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html": [
-   "54629cb45b84d4fc2ee5771d4480c8685a718a76",
+   "1556581d911ca12ce901eb1984a2a370d29b02b7",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442470,7 +442497,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "86379152972353e36a17ed56d1671b0e00d3dc49",
+   "c0284a4616d1e577c3df68e8f53d50715a76bb1a",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442478,7 +442505,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html": [
-   "1e66182f098551ec947af88bce9e77dc2b753f08",
+   "8d701f4364ad38fcf79bc812361e0ed02e84f302",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html.headers": [
@@ -442486,7 +442513,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "289a4a50700fa721faa2c130801fca9298c25562",
+   "3ac0dcc9512574dd4d7485bb090358135cfaa638",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442494,7 +442521,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "4d44a10b7645fcab9ecee358ee622855e359ea10",
+   "3450d8e1de8a5e6a2063ee552c074d90af1f558f",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442502,7 +442529,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html": [
-   "d76ff641aa5872fb5899a19ae71fd404b034519a",
+   "2aed29beb92e6d13b0fa49597d13f3daf39a3a36",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442510,7 +442537,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "37d4e3e46e725d53905563fde08440b820c365b2",
+   "594eb72381e07d43201875c4d09eb5c8d055b99c",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442518,7 +442545,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "2757dabaad9c1f789c18e3d35a6adaef1518eb40",
+   "6531c27e787450318e4d85d808e483198a2410d6",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442526,7 +442553,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html": [
-   "8a405470c4a0f3c28a59029cb794b96b83a5c1fa",
+   "f3ea627adf959b68b7f36036c4f7e58e80fbb6ee",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442534,7 +442561,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "f5c690b8bfb136219fda6d61aa9f6fc5a2c2d90c",
+   "6abc50ecc594a27ef15e2262f4506e0717559f4a",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442542,7 +442569,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "ba1424c06188e72c68341332a6b1103800288dd1",
+   "6f11fcc8b054b8599e0b4042dc67e1ad25d6f023",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442550,7 +442577,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html": [
-   "7aebb65a521f1fbd55f563d240213da26b68be97",
+   "2a7ea1cedfc0868cfa2fb61b3f4c69b45f136fd0",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html.headers": [
@@ -442558,7 +442585,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "8d145be6b4f0ffcdfe1fd126b74c41f30b9ef879",
+   "dd9cacd10243dabd3226bd107e21b0e13a848b66",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442566,7 +442593,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "6d334876d90077a29702f5c4f484e9cecdb6a33b",
+   "67d90cd44b536e3831dcd764db82076e555e4053",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html.headers": [
@@ -442574,7 +442601,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html": [
-   "941dd867f2c7c27f35bc43daeeb300e604fd302f",
+   "c6962cf03cf2361c8952b841fcc856e3b516ff7d",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html.headers": [
@@ -442582,7 +442609,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "41e0570ec7854bb6ec922d614656b24a91a359e2",
+   "d7f3d697bbb9d413cf7171794ed82ad77dad796b",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html.headers": [
@@ -442590,7 +442617,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html": [
-   "1af12eb18e3224084f92d282fca51ec7d27f1c11",
+   "8076d219244bfbd1a9c487b3b936867230f61ef0",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442598,7 +442625,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "8f72529b6fb6d6751e971350c8ea49753d273d1c",
+   "7512b2edb96d78037e62a996a7c1912155e38217",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442606,7 +442633,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html": [
-   "36e5d0a32c82b7492a897723d1e2daf2058a68eb",
+   "61a4547ee8316e3def655fbc061f09c764c6d346",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442614,7 +442641,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "87cc414978a32d17ad21af3db8890efbc57eda50",
+   "2317603713812e47f0186634805f595d56d359f1",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442622,7 +442649,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "41d8f63f2dff83823f0207d5a58db6ab65668a62",
+   "d256320b428a4e5e4d94be7261966931af3de7e0",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442630,7 +442657,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html": [
-   "e9082a8036a10eb5bee386f2c8cec6f9a5184b55",
+   "54a2aeeabe4f3547acc3f01f83c2f8269f63c94b",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442638,7 +442665,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "731cb633995a0065fcce5b0227d18f38a3445f6f",
+   "d2f96231f11b03fc4fd9c501ed15d62a6b3d9c45",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442646,7 +442673,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "94a1ceca87d054ec34301d0070f530000f429385",
+   "39344d054d2f96a3ea471d3dda0fc6634f2a01bf",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442654,7 +442681,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html": [
-   "0e0fc8e5b5fd895e5718baceea9d0779d8460972",
+   "aa394e3a5a7df91612872335c1359400d22c9918",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442662,7 +442689,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "b5f8a4cbd3fa7de9617e749dc356c5df6f88d161",
+   "b1cd787f6825a54f164aaf059a9bc9fe7534ea80",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442670,7 +442697,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "8da4f3b3be0d75ddb57d280e2b9de46c0479c607",
+   "632f1e32a0c5d115bf95c64d210a43a610c485f5",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442678,7 +442705,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html": [
-   "424221d94140ef5b31500f0f3e4fcf0cd5e4047f",
+   "2525a167f469c856b716bf3466dfef46f7508471",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442686,7 +442713,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "bbc8f26a58338d88d412759d3dc8d212fe36c6a8",
+   "1d754d24a8a0250827617656f3806fa4d189cb7b",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442694,7 +442721,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html": [
-   "d373139d1e20ab2b61234eaecf83bf9be2c9245c",
+   "8776fdc008365774d03549e1225e0b82f0fc2e90",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442702,7 +442729,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "49468d12539f9274e073feb4fe7c07d5d0bc00a5",
+   "ff1f271128fbaf52801a2f44fa10dbc485540aac",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442710,7 +442737,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "84f4c4707ed09329f26b5751cf508a4b7243519b",
+   "9b189b5f669baaba1e7e6f61d193693b6a871503",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442718,7 +442745,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html": [
-   "e7d9438c14b43d23476c35a69f5a49fe92981d8f",
+   "b190d3b199df383d9d2c70983f7198e34714b847",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442726,7 +442753,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "5f8f6c1e79275c66e419d5e01b0679a8b284d722",
+   "84bf6dad89caae94345f26334e319115a46bed3b",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442734,7 +442761,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html": [
-   "44413d7b167d41630e66b435fa146df063d14c29",
+   "d7efdd2da6ed86603a7f951c4ea0c5bf56fe0a8d",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442742,7 +442769,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "c3be3878ed064f655eadeb1028d325e14a426b36",
+   "dd169e50c8cb239833881dfc101e45fae1eeb9d9",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442750,7 +442777,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html": [
-   "f4800516d7e7df585b1cd78c44d99389268a9d06",
+   "8806a014de2537b9f740a072adbf1f2538a517e8",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html.headers": [
@@ -442758,7 +442785,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "ce60482bd768e8d7b8c89ca32c79ff0ded46299a",
+   "e4ce94ad2b8880f6a261345c79729154d8494095",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442766,7 +442793,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "5714a7e068b8a0c49a10d671d029dce7997b4e49",
+   "f1fbb2b4179e1a7aa7d9e745f3b5af49776ae9bb",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442774,7 +442801,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "ca5c1fd4b0455d8c17debd60e07771103b221e6b",
+   "1555a3d827a6c958dc4996d184506105ea9d404c",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442782,7 +442809,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "934fb53a6e040a034999023a7f1b03590c77411a",
+   "7e27cfdc32071750adfe2847e8c14e4b92949848",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442790,7 +442817,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "755075a17a1d5f5652a14944d1d061cc97efcba7",
+   "b716504830bf11e2994e2c4df9ecbd53bb63200d",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442798,7 +442825,7 @@
    "support"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "56c1bdb7dd4c07087aaafe2cc83afb0cda5e0b20",
+   "0c8e45be8757fcf1faecb7c704be177b7f4355fa",
    "testharness"
   ],
   "referrer-policy/same-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html.headers": [
@@ -442806,239 +442833,239 @@
    "support"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html": [
-   "319db6a902f8884a2e9f85285f95c8b4159db9f0",
+   "22b88b8b66fc486166ee27924d651b2498c0031b",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "98643446686ac0db129130a6c7a0e9e959ec1d1a",
+   "ec43372bfb1f1d9b7f637f44d28efed2e5d5cfe2",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html": [
-   "a70bbb7ff1359fafdb65ca2c5aaa186347afdf81",
+   "88f90ba82458b879da86d28e7cf32cd796214061",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "2199fbacc2ee22a18489de877f9011549273d8f7",
+   "5f24b6e4dc68e66c604514431e0b9f1733b41765",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "0038a1a78abe0ca06365fab672f639817834f26e",
+   "0d03f45be5633d86536ec98ae5549b448bb7f813",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html": [
-   "8555bc6ccfdcbb6b603aa0736da29db5cf7d4ff3",
+   "b289aa53466fadedaf6fb0f07f32095c5fb360e7",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "bd2014b069f64d139cc9d4e0cb53a3496e2c2070",
+   "e7001e502cbde99287e2509047937a97ba545850",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "b519ebcfbc2362cf579dfd0dbb7a093e53f8dd35",
+   "903030acab07048fd1f8c856d92467b4e8e75b15",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html": [
-   "a70f22d69d0708be03bac50ac0bf380207ca23f6",
+   "d0d28622838f34c4e53d9cd9d200ed17d4b4d3a8",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "633938985b4f573636c7ed91f00b0f04e997f2ef",
+   "b6c3033e8f06cf0d5670076ad592af70f7bb2328",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "b9eefbc30428f03e639489f6faa8a7766868bc0d",
+   "d714cf6cfcf89984ba5ab30e33d771c5d854867d",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html": [
-   "82fc3b114408f1f4eb298a940d6c8f76c1292d09",
+   "5c37342fc29afd87e34f23a373a475620481d1f5",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "bbcbe233fbffce62d67ef699bea09224266206dd",
+   "219a866303d50c160cf0eee0d97fddf8ba972bdd",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "fd270955f7446f05edacdce97c6e7533638e52a0",
+   "bab1422ce4f802cac0480355f3136926a5dfaf7b",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html": [
-   "4739c58478c621625ddabb2a7e5a9665a1b11457",
+   "dcb2fef2e5eb7354e66638c127cd5bc4a98e57d1",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "fe6f02837a2218d9c85bb98ea6157e295e65fb35",
+   "4afe764b7475600e245b51dd7750ea0c37a8253d",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html": [
-   "80f337f9e74f2368f6c3a8716cd4661cfa2a220b",
+   "59c9006ac0076fe38e9e003a6bd940cc00d2d09c",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html": [
-   "5d0f8168ca8a8ea11f69f6cfeccbda6618615aee",
+   "ecc047cd0d180a3f9c91e9b9a5eabbe7df1f0c48",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html": [
-   "3a4fb95e8252df98ab4027615d2da731ea3e89ad",
+   "3bc5d625b4ea838aca232bd9918b0609df0f6a0f",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html": [
-   "20c2f4f497d69301c02fb191d0c46c31785062c2",
+   "f0b53109a4f28b63fb13fbf598309be436710932",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html": [
-   "d3ad1f9c42426453407978d3190bf00ba89735d5",
+   "e3819a3a25d30d2a725f66a26ecadac3567fbc3a",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html": [
-   "5de6a24aa4baf39f9fe97a379a56cc0c2e5447ac",
+   "b6ac8b10fc9394f0dde620367f14aac54129dafc",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html": [
-   "d39c95d82dc86f0e09b3644e44d3062fadac6ac0",
+   "2b9112f6f128e065a5327a54b10b9caf25ae8377",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html": [
-   "df9f3a839898d2e024d6161cba4a955537781d2c",
+   "9ee2002a7c351dab7ad5e2f89e114ea8ed5541cf",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html": [
-   "729839842efba389009e9cd76ef70d9a3de92b0b",
+   "2c4115e98fda49951b41192ce2bdf6882455b9b1",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html": [
-   "f5e5c5230c11954b66ace084601f6206a9fbd2d9",
+   "6f2bfd58ff695e49d247e721f75c200a8bce2d9b",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html": [
-   "5e03688c43153054f6d0433757467b3ead730e28",
+   "b10591c4cd9fd59b069dfe97f7ee030d47d36731",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html": [
-   "346e401ef9b4056b59e13488f0200236cb911ee6",
+   "b7fbd2643d1d3464bc37e0c66769626cd9ce10a9",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html": [
-   "27d89b3c0cb48846d0f1890ecede3d4995c051a8",
+   "da50e5c4fe262db3ef4b3aba90898171fd45f84f",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html": [
-   "045dc06177addf2492d2d0ebbe6caa225591314e",
+   "7830d6f47be585befac5971a8f68a0632c56434f",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html": [
-   "aadf71777465c612e720de8b7337fa01a0acb9e4",
+   "99dd29eefba5511b4175e3a130446787285b47d4",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html": [
-   "aada3951f9671d07557f2966f5d86ac5f2c09800",
+   "465007eb75440413eba0e26662c94102ab921b59",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html": [
-   "ab255afb9bd5240ac09eaafb5dfde867081c6785",
+   "a88aa71cfaff59b7f9a181a855efa67fc7556134",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "9bbbfb72fcde2fea9fb4f2a46c05f49d1aff3dba",
+   "3f8cae052646a9cc450d470f56fd17dce5fccf11",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html": [
-   "6d7a54cdb11de39bfd9f447d8a73dcc3a736d025",
+   "d92b1c116cf86ee8912a5a50516c4273d897225b",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "8117e29c06a73589dde2ed75179842d2312c8b94",
+   "d8951158b03e5ccf8f3c8321462061c0405dfe8f",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "34859ed87a4c2c3f686fd4d47cbd8515a5947157",
+   "da4812eee49c6c1f769bef0935429c477a20e1cc",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html": [
-   "e73908952d227fe49da0b9a3e1ef15868ef6ae46",
+   "9254b47bd740641515214d3dfbb9942fd09f7bdb",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "0080977a7279c4030260aef7edb05db1309c63a2",
+   "3dd09242a8666d17e312605d1a8ca81248d10dea",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "155bf01095ad198bb0db32832a4ca18719cdee2c",
+   "14a541ae27a8139755713a2fb7d0205ee8421c20",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html": [
-   "7b3442d29e1b9b19e5ccffd567a9a0e3d140579d",
+   "1763d19a64230acfdfbf94e79a6ef52af5b95e4a",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "fe2b40c58d48dad8df2d4ed9dd54fbeb1ba59389",
+   "9ec70b6f80c1f251758730aa87d287f6f532fa04",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "c0d87fa32023fd8914ff1e0a1b438e6cd4ec0617",
+   "52d5a74214ea0178694b081907c196c6360db702",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html": [
-   "8586b96fe8b0e66ebfc6fa9c8bf4911d8500a50b",
+   "dd0c6631674b5ea3c48078abc6433603bbf957d1",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html": [
-   "18f3dbc804e5d2ba22a8df980744f01ffd8c1399",
+   "4f157deb995d3410862ffb36eaa58373eccbf1ce",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html": [
-   "f296512efad9861f9ef717e8c0a91b6344fab17f",
+   "7d233267d311302be70e073ba5e2de9ebe048310",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "8eaeb5cd8de90306c8661889c227a43facb39a9c",
+   "a1e1b9da5b51f860edb3907789ef644a2938e041",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html": [
-   "548025dafc32a8bdeb8abd176455cb79022929d5",
+   "b2bbee56b96d35e2979df8e5aa3a4824a0fd552c",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html": [
-   "d6e828c54d516a3d331ee6a3317ef2b567117df0",
+   "01c45482b29310d57c3ec3343b5643802795f40f",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "2e459e3d0592b65788e22636f383239429c1795f",
+   "f31661fc41c57755b5ee92d90bfd303ea1b21340",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html": [
-   "0760ef944d866441b1fd55640ceaaec672278671",
+   "68c1c1076fa23feb673e83bca83a0e32e9c642a1",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html": [
-   "9ca4512215a1d6ed348fea0632b41439b5c6988c",
+   "c301290fa9b6b52cb0108dc07bbab9d358aa4cdd",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html": [
-   "a8ec1e6acf1dd060d4384e77a5d902a60b8bc9cb",
+   "02109248fbc814325fdb8c9ac783a32b333b9c0b",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "5fdacce40e7849fe6275b76e6670e9174ff7488d",
+   "d8de5bbd9744fca9d8534cdec08549522bfc5fcb",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "cac271986ec551d1a5c2a8e93691881613590887",
+   "4a376c18d6d76b2db80d6bfa44802e4d9daab3bf",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "7023a52beae5990220427450b3a8110fcb7633b7",
+   "64d2fced4a61dd34a37edd6d3efdd626c2cbb0ef",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "a6be79bcd4a54cb82b1cb565166173443e588be4",
+   "b6966365114d725b1ffaf22fa2d696664f6aff78",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html": [
-   "70602133f8482c968f7ac1494e0b554c8ac123bb",
+   "591f211dc02b8a824569a8b6196d48abb764d290",
    "testharness"
   ],
   "referrer-policy/same-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html": [
-   "27a95b7ad14a35e5fdb76dac38e52d121ca8dbeb",
+   "fc88896bc4b7b2becfecb996a1693b42e236ce8f",
    "testharness"
   ],
   "referrer-policy/spec.src.json": [
@@ -443050,167 +443077,167 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html": [
-   "0f00dc411852902350484b10bb52f6f6b7581170",
+   "0c23a10a2dc11ffa766a8cd8f6d2752ecda954b7",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "410b5da8bad394590a8e08f04a990d86443b1880",
+   "05d3c57afef26f228e7863d7d2d9eb4b1c80c69b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html": [
-   "ee981716bb176a4ab5a89ba8f5a84ad71680291c",
+   "649fc0bb3d98f75f3aab89e6b903b8347c871770",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "7f80e3dc6137ee576637537edf4be86c9b598d13",
+   "ceb1df9c82579f905343a023d7041bedacf3f5e9",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "e1acb81c2ed86f96e9fb8051c23af0567677af61",
+   "518a983bd0f4b1b0c301126d7a8355ffac2a588c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html": [
-   "8f524a23ecb6029bcd6f9536044f07bb2916528e",
+   "1891f73b445d7f9e4442a9b47c950a832874998a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "d1d3bfbf4cf8a4be267d745ca27dd46374adf197",
+   "0510bad2d5075d086f5219b07227c786dc54cfd8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "aa2b89c0219cb62469f3057b44a981dcd4c32375",
+   "36d2e8bdd190b70dcd06ae5318f0f79b5de2e225",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html": [
-   "3d35d85a8a3fbebc973155643d26867953503823",
+   "9235e2fab57da7b23d910ecd63162ce6a98d9c12",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "6185377c16f501a4e0efac657812ca3bf19e817c",
+   "4ed01baae9e9a15fead1dd56b698f370b3b9d7a6",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "9e10c7fa3487946a1b49ecc63d6d7099fa135223",
+   "1d76bd4ee31e2551e8aa897a3765800820e00c05",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "6b6302a6a3e7f78f5628053ad522962929cace28",
+   "ea4a9cd9a70f33650afa8277dba335d5126576aa",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "bcdf715662d92053ec672a4dba097d72c99fe883",
+   "113c6de0b3a7a1a7c633b28717305fc94f51da0c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "18ec84b8a53e09b71509b702b3f3cd8a9294bbba",
+   "9a13daabc2a39a814e18c59bd4d42e33db4673ae",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "07bcce770a9a6396eff922da57b28eab6f9837e2",
+   "d611bb5ef5ba90aff35afef1635ba023471f9c95",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "81c5c0b89b3503dc13cbbd7484d184642137ed08",
+   "e6a2f230bc47fc47c11333677f35de9ec7f1f38f",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "3e08734ae731efb7a42c3f2695ff3a7b5f63f739",
+   "61ab89776914339cd6d7a1219a075ca34cbefb58",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "ad88c2de7a0ddefa9730dc1b9b9ae860e63ea2e4",
+   "8f69b50885c2372e506063fe18c0a5496b102a73",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "62cfcfbf644eea12e93644aa9d532000d2c25e9d",
+   "00ec7fdac7464fa75a7b52d4611033db95bc19fd",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "867f86fc9378a1db6566eaa6fda6471d45d7cfc2",
+   "c36fc8dd98730634f6e00edada9d67860ec5dbb1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html": [
-   "8ab2c077ffcad590f786304f1a63b14de73162e0",
+   "977b03a760a6c5ff6ba67579dba03fe78b2f5473",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html": [
-   "14ffec0f8223895720b87c272c84cab0445b1a37",
+   "6665152dcbaddb8210380350b7dbb069ffeceb1b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html": [
-   "1dd3145951f80576a951f43b63602a7b8c19307d",
+   "b3212e1130b3e4cf6c215668f8510804b27c893b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html": [
-   "fbda921ea18611e5712e0b861aa4235e3fe3bd89",
+   "ebb494d4ad4e605abb0a617eb3e07a81b80fdaaa",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html": [
-   "0ba667d9c74eed392a5cb233a39fefd03c170e1f",
+   "b43d0d9d83b3cd3d31e35160d8c4c2dd25049187",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html": [
-   "abbc2d80fcac3d4cdb0027f3acfab84cf9103181",
+   "0b7fff638ff03ecc257076dc0f073b6d0b544476",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html": [
-   "71b1a9038a2e4f2304dc387b364f4751de89afc9",
+   "95b684b4ffebfcf3ea05ce81ed3fdd9c0efa7e5b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html": [
-   "6466b7f149f5c47c79e6688bc72816b65f4d7992",
+   "aaf4952cedad08784a67aa3e13225bb86ae0578c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html": [
-   "a86dca24c3757a053c20580aaab1bcddfa3cc5f2",
+   "e812d9a3b844d4319024ed45ae4802f8c91ca877",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html": [
-   "6936906ab3eea4ae4c835399f6a572610287b391",
+   "70e0de3d4aa9a3c802d3f2b4a015c65868013349",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "44b03ee27d2253efe4e35773690dffc087e57b8e",
+   "ed76f75b539b205d3525fd4dbe0251e84db02604",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "f21693a2904f7386722af4ae736657992eaeaaad",
+   "181b14f75faff46cd393712857d32baf0ef8fb8f",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "5ecad4840a7c74b4695d8b52c57b5d77b7731809",
+   "9f85cba2b10b2754609db4c1f80c7a1f6db1ce0c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "4a37ed845dde75650a5318a2c4b870fcade33e82",
+   "873f53f0c2cb54b9d5c058403c89029b761667ce",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "44d4afad9c3653dbca68a0be5d2590c48c5d693f",
+   "5c680ed73dba496ace8a38ade440cc7bf87dfd66",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "e0135ac6550b73a89e07926931a9e9aac07b7b93",
+   "9adb33a0ab131da2147a767d9fdac2ff92274f54",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "c03ac3ec36ee4ed3e3f73c324ec78251b65988ae",
+   "c01fdd4269e41d39417e4f3dc3527100c7c53cf1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "81f8677c333365adf21420d086eedc44b61fa49e",
+   "b72ab9603dd382ae1f7b29e2fa3814054d7fd686",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "79b6a081e17fdc5d067c3e0257c00d5222ce3a43",
+   "f4d4be6a33b830417d66fd985927a52b81383c36",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "0517a5d4420e18ad2eb81803e95e6d3a28237a93",
+   "690c3f5329e81a9f768a11b0c640b34225471037",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html": [
-   "e49741ffb27076a0af0096115126cd463d026bcd",
+   "e64a4894af61d2fd2b26d5ecb94519a1a435eb7b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html.headers": [
@@ -443218,7 +443245,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html": [
-   "78028ea112b569b1c88996b55363e59c57fc0771",
+   "6bc062c8a4258227181935054e4c23be8b21d08b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html.headers": [
@@ -443226,7 +443253,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html": [
-   "b436f264f46efa4b77d3e1686ea497382a487ed4",
+   "58feb6dfd1e6db96b569c0bfb5ba2da870b684c1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html.headers": [
@@ -443234,7 +443261,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html": [
-   "7f0b239b625d9f4580db55479c09dbebe8514aab",
+   "ffff41d39f72f812d688a43154baf08634f8adc8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html.headers": [
@@ -443242,7 +443269,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "7d8657595e3608a88952d733ea304fa17c74d90c",
+   "efb17d6a4bada735f57ff363d160e382f070dfc1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html.headers": [
@@ -443250,7 +443277,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html": [
-   "cf0764bda250e14f8a6f7b535581e3eb9c32aa23",
+   "ce5dbd7ab29c524a221c91b4a05e1f2c190b5862",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html.headers": [
@@ -443258,7 +443285,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "68f7480b4d97c8faa46c006c81c11c26ac0788c2",
+   "34c1e30664676a58d439fe52cb165b7558ce93ca",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html.headers": [
@@ -443266,7 +443293,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "713b5eeb4d469505f1e730192ddadeaa0ed5953a",
+   "07d55711174298f4ec42248c7aad0801ffe76624",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html.headers": [
@@ -443274,7 +443301,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html": [
-   "5ce05593ccf4755086e7ea99a2cca5d04ed0ca4e",
+   "dcde036dca48bfa8a0fa0d45325192dee38776ef",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html.headers": [
@@ -443282,7 +443309,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "e1b43a7bd76a647e47bcb4a7d493719bd406a180",
+   "f5efe8c0763d915ed31b7c442763cc8ff1388299",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html.headers": [
@@ -443290,7 +443317,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "57e841048c1203a739b9ad487f7471fae300757f",
+   "95939f1e55d55d70b494c375e7083d06676b3fb4",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html.headers": [
@@ -443298,7 +443325,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html": [
-   "220448dd230dd4a3b3efa9c96f7d27199e88f7ea",
+   "406344590436f8b767f55f3175f51d926c9c49fa",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html.headers": [
@@ -443306,7 +443333,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "1bf99f140246349a4db73eccabf64a30f2fb8844",
+   "a520b09e762cab4ab8f3e6bfe05e102530f0adcf",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html.headers": [
@@ -443314,7 +443341,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html": [
-   "4b41fa5b88c238e5c64549f3c5525c41558bc984",
+   "a1284bdf979ee893f2083aa0a0918df75caff7db",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html.headers": [
@@ -443322,7 +443349,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html": [
-   "f46debfbe650f275a533eef0ad9739619469d221",
+   "c4d04afdb5fe9565d33d90c7c6ea20f11e09811e",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html.headers": [
@@ -443330,7 +443357,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html": [
-   "7642d2f3def8d4be70e12f29b123814e427489b7",
+   "585b273609171660f42912c97ca7e702ffa88989",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html.headers": [
@@ -443338,7 +443365,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "66928c51c3f6b4c061ded5dc9dfd0824ca6fbe79",
+   "6f68668154628e8de352dcc6eee6db6019353203",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443346,7 +443373,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "23dddef080c995247001733368d6286f3315f2b8",
+   "d7cad6d1aa0d2af385ac76c43ca44455458c0190",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443354,7 +443381,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "41eb7eaa35a769a7e473d3383e39e00fd5e645a7",
+   "e5d8f02cc5d6c506dca0290d56a5911f691d4344",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443362,7 +443389,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "fa964a4a4d6616a7b6e5e989c5b348dd82ef8c1f",
+   "16cbf34746c9ea7c5debdc72b70e938d3c0ec221",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443370,7 +443397,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "a973b979eefeb8e35a92b98592c9be9cbd0d80ce",
+   "14d77416a426a57ead31ae3215a0c16a075bfa59",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443378,7 +443405,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "8e6ca11f3f404b44eb559d69952f7f5d79c1068a",
+   "778169fc059fac4e992429a05bcd9bfbc00e587f",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443386,7 +443413,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7073af2d60ef289afa28a7964dbc3e74209cc2a0",
+   "fd7e6df3b2d63b2afe13fd59273fe15579f00750",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443394,7 +443421,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "6554f6cfc40cd20f578edaac35a2a63b815ceadd",
+   "af30f3629062bd50145a550330063eb930d31508",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443402,7 +443429,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "65f8a5621e85d5fe4dcef63d30fcf6bc73809f51",
+   "53d4bc14c66354d8ccaecb55c44d123029cf80a7",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443410,7 +443437,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9c0a097c4b11e8b5e86ade832c806f09e512227b",
+   "b65e35e7fafce533f690a63d0016fb3c5625cf33",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443418,7 +443445,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "f456395c4c11ded93fd4b8df220af6aa39737b73",
+   "2e774aff9a10d3c2f8a9cc2895e8d477f3556edc",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443426,7 +443453,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "6943ffa982bc1faadbcedb1c21215abe0929cbb8",
+   "44d5a7e86452911a2fe70ac6108bfec67702d26b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443434,7 +443461,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "b14bb43a99cb9c425214e003d0627102c9eb8d2f",
+   "e0a1190722dd2a02a0a24209602f1a6f01cb57da",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443442,7 +443469,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "b9275cb0f0c8be08c11e9827e346d4a7a9da9fb9",
+   "862a53dc05bef9b9c2fefa50cc7a4b652047382d",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443450,7 +443477,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "947e631d1bfface02019d76ff3da844f51a2a58f",
+   "78f77cc46ae9965c9c7ed192e04d1f4d5fa63bc1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443458,7 +443485,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "f6c8623a069e3d9b08ecc3bbf6f48720ceec70a6",
+   "fcc8004d96edca6c5077ca6d7de49c7251666be4",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443466,7 +443493,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html": [
-   "cddec2b7421bf1a5c723d5a3cc880682b016047e",
+   "9db05933d7671ce9b9f9806da737b4336a5c8370",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html.headers": [
@@ -443474,7 +443501,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html": [
-   "08135c2a892882d03d8badc2c2132d0b235b90ad",
+   "e1cd5ce74907693a6d540bc7e0c8c661f4bb4c3a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443482,7 +443509,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html": [
-   "37fb15fef59ace9ce28dbc7cca982979bba04004",
+   "e8966a3dd407f299f1c92b53d0a697db04710922",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html.headers": [
@@ -443490,7 +443517,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html": [
-   "3c35f06227628a9ab8d01b46ce0eca73a1faa62b",
+   "5ca9fa74e7e678581bf705b3ca3f648277a08fd8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html.headers": [
@@ -443498,7 +443525,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html": [
-   "0c49b4e91a6df0bf0b7003b2b8743ed5953ad09c",
+   "3756bc90866dca7428fbc031c022e254a851f2f8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443506,7 +443533,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html": [
-   "bc930390574b2301c20593930b6539f68537fd55",
+   "de03c558be7a130519fe417cf017a8a6dc0aae07",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html.headers": [
@@ -443514,7 +443541,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html": [
-   "af7d1df7a867a1ef4a8e6d5c11e026f2f6aeba22",
+   "a47402f8e5a7ae176e6613a9c42285d5c745cd78",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html.headers": [
@@ -443522,7 +443549,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html": [
-   "b40e40125ba88a58f2b7537d7b9a2e2ebfc84498",
+   "55d3eb108d9117af47bc4490e6bc30a848cd5462",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443530,7 +443557,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html": [
-   "fe66263f7894dd2272a4aa701f2af85dfaf3c04d",
+   "1f4182fc9b833931107b87819a80f8d837f0d4ac",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html.headers": [
@@ -443538,7 +443565,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html": [
-   "4f5483753de4921ad4e44414da3718be69a3eca0",
+   "1df1aea63862a0a3c3ca57a3c988b7678364abaf",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html.headers": [
@@ -443546,7 +443573,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html": [
-   "80d2dcd0787beeed2e906f31d1f562f1b83d2c26",
+   "e61424294592c96a4db9799bee9043fae55d596a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443554,7 +443581,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html": [
-   "695afae60374a9604c9314701a0fe5193b26c48f",
+   "25c47754396d62d860b852c3a525149b2eaf4666",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html.headers": [
@@ -443562,7 +443589,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html": [
-   "16c752ce04c794227da700bb8f588aefea4e4f6b",
+   "5098411274baa131dcae0cf8667b8cb5e07b2dde",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443570,7 +443597,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html": [
-   "6acc89c80d21767d01f4dc5e4e20289dd24d006b",
+   "ce461d48838fc1c59391695ab832cadb247a6819",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html.headers": [
@@ -443578,7 +443605,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html": [
-   "7620c0160525d90dfffbacfef5ec5665952bc1fb",
+   "595ff8cda81355d0a1f7479e3007f14052558a4a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html.headers": [
@@ -443586,7 +443613,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html": [
-   "ae16346f3adfaed3558324ace8420607966de5ae",
+   "25628c57045abb3f7df3cd9927933e69f7b6befc",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443594,7 +443621,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html": [
-   "118bb0a3c4543e4ddb24d4a7e20668e0dbee943f",
+   "59b5540d5373989c1f2158abb99d6010ddfc61da",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html.headers": [
@@ -443602,7 +443629,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html": [
-   "df71263b21b8dddb35cf19d5e8ec03a16a2f056d",
+   "90c9c062897f9a60c3ceb8ccd9708b16d2780dd2",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443610,7 +443637,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html": [
-   "c71cd293d230f9b0d19030c1d4299efbe8793816",
+   "c0c4d57a6b53d3730fc715d6c4afdd63a455e6b3",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html.headers": [
@@ -443618,7 +443645,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html": [
-   "d5979d7ab667111832c413ed80e2387dad5cc3f2",
+   "df3d3caf697d7cfb3e86f60ffb70c261e9ed9831",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html.headers": [
@@ -443626,7 +443653,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html": [
-   "b6bedeeb00bcdf2f08afdf18ea9fa657f5523adc",
+   "12cd2108c2d95dcbdbdcd92582e599f0ddb33d53",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html.headers": [
@@ -443634,7 +443661,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html": [
-   "7baab77a09fb95bd0f46ef4fd16eac7f0ece68dc",
+   "afa379cbe44fd6daea73471fee3d66cf1615b11b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html.headers": [
@@ -443642,7 +443669,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "693c23702ee88ffdd84a25bdd7802effd5adf3d3",
+   "69ffdead833da66ae08c3cee35f6f4981878bc2c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443650,7 +443677,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "fa61f3528a74365a5d8a966137fe5d9eb244af2a",
+   "0310cd68153883f187b2750e1238e30bae850e91",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443658,7 +443685,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "316e28af94ca60f8e603fd3b8b95784235829aeb",
+   "85d66187d221c73b7f7338adc09005faf734060d",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443666,7 +443693,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "f08708b1e3245b4daa5dfd29b6b5885bc5d06290",
+   "2e4e2e4b0e90ff133fa7ed55a38b13c63755c9a8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443674,7 +443701,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "c922dd30265655f67987a0a301555223683a6053",
+   "21a46331bdc8a0d7d6624078df76800f6477ad04",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443682,7 +443709,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "dbbc064641238e3a8619f3c0ed0f870369b0b94b",
+   "393b25128ec7b911110171f9c0be7cc81f887040",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443690,7 +443717,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "cd93f802cad62375c352d3cb90ad210fa1bb2dfe",
+   "5c96b21ab4cb502a688c7b3041fc9bceddc1b6da",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443698,7 +443725,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "2ce4f8c4f357c2b179dbbebd6355b1dc1826e3c1",
+   "c5715052dfa66cf2c062a44a82718b6a2491283f",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443706,7 +443733,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "05cd14306e8a1aaa47b0798c04c8b19f762988a9",
+   "3bc071771cb33de920530839ac9f81bd2cc0202a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443714,7 +443741,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "6c0eee6a9730feb2f932e110bd150f9e249746c4",
+   "4db9193f982e7503b7fe54c3f96b3500dec473a1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443722,7 +443749,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "55f137e6d5c3b6d3ce7f7454a2bd4f1815a919f5",
+   "59ce04e05015fb077858ce24bbcd9f0aaea2251b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443730,7 +443757,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "c13e87d458bef2b460140d785163f9dacef9fd8e",
+   "c3fcd6c749affbe2967f8469d0ea193943bb6f1d",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443738,7 +443765,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "ed886aa24102578518a96cd1ebe403a8d26fcab6",
+   "9f60ef4828d1667950cb0742aa2702272f0a4b3c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443746,7 +443773,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "2cf0c49c10b0e25295ab741766ea24e2bb937a57",
+   "fdcf4ed4b4dc2f860a99c9e1162e65323ccdde65",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443754,7 +443781,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "c06e5fa468783001c960d1f83b255c8acdf92e56",
+   "a9cb84bd57c7bfced6525f559730be5369ab7e85",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -443762,7 +443789,7 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "f29aae30d574b11a0f345d56ce2d8acbeb7c66b5",
+   "4188c7062136e4cea098bf14135a71efde140779",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -443770,447 +443797,447 @@
    "support"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html": [
-   "dbe403fc39de5aa5013a4b1154d706472664e656",
+   "5c7e811b6a2b3e2b74dd461b0f1c88f123119b28",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html": [
-   "5d8c30513a5d24226b7bad0fb3a2b1ede47d2326",
+   "adc20b102726a90a05d33f39ee247dbe192c938d",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html": [
-   "fb54ac71aae594ba17f56629b0c171eac1d2dc71",
+   "14c5f88565f4fe0ac74689f91db2b92c07d8471f",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html": [
-   "4e71ba5f1220f5851aceecb6617164d87dd8509b",
+   "1f7660e4b44733d7d62aae3550518482c0ae0647",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "feb537fbc239948b9483277fb6f7a6080f10fcd9",
+   "2a8ebc516130a9ae9236eaae405a5abd3abd3306",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html": [
-   "6dba08c88def09456ca1a7046ce35bf9077724f9",
+   "52204f86a53e258be2c77723610b126937fc166b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "d40ed50fffe10adc9f79a062a76bf1a80f2b9259",
+   "b9276fb2f6b1e75e45a50bb8c0a11208dc46fd19",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "ba6cc74c474033a783ce7c950caf28abbb00955f",
+   "9ce539405820d4280cb3953b7854cb0cc7aa970a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html": [
-   "285c361d1d1b740bbc76337918e73a24302bddfa",
+   "16f65d24374c58c00ebad35e0fddd028229d03cb",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "29976794882fe3fd98641dc96bcc3b3767c8cb6b",
+   "9178670ec75ef286d3e7a21e5e5236c2add30a04",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html": [
-   "dff241107ec79b0aa04bdf835aef1c110121ba1d",
+   "2187ed654518612c8e21aadcf62779418f555f35",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html": [
-   "6d11862edcaafd23e0fb0ccfcfefc31102b5b1b9",
+   "9481c4e3eefb7cac4a75dacbce5ffe363422d759",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html": [
-   "1fc31fe398fb56e47902b500de5dd71627af08db",
+   "87189f7a041145a21bdb4105d8712a55bcba991d",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html": [
-   "4a8a1f0488e850f21846f0b70137e34ec0a8a1d5",
+   "d91479b1687a3dc4e15563d80eb5d50e855c7661",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html": [
-   "68b177b6af332fdcb20d237fda54351aa0225a6e",
+   "04f2d1e115efa580a109f0a1c3c7934c1268ead4",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html": [
-   "68a648275fb185d099b31d9a4940eb908da83fca",
+   "c0a3a3fef35850bcecc3472c26e0fae276386b17",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "7b1ddac6e61ded3368a75ab70e6d1c9c5cdcada1",
+   "a7121fa4ed7f9fb46e7287aea48346f984d8e6f3",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "684dcaa146d6a1f089e8136ae1f7e7224d0da59d",
+   "5c945e119f72fcfb2f4f994b37d0beabfab856e8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "ecfd82d0630e95fa67aaedd82547a0611471fed9",
+   "fa6bee08e75f34d3a81820f2562f88e60b749309",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7071663d63455bd279ab44012a4a9cf5f73c553a",
+   "87b9c1894b6527201bbf5f1ebd6d3d2c54e1a68b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "9d76145215cfef91278d8c2a54a88c35fed96c09",
+   "b09d94eb7bbbeb6615baf40b4ed849afe994adbf",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "f515e1d8a2ef0ac7691d2de57ef8e89875f852c9",
+   "4a0abcbac66f8dabd9e4c34e5e63e4a1175693f2",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9bba4f399abb39fef17416ab3adaea3bddececb8",
+   "fda4a75c834febc81ebb5f2bc3eb27acd3a16247",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "b3d45d73923c9d10f5258b6c1cce6dbeb805d697",
+   "42eed76eb371538f6a6eb1007156672a30880ba0",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "0faae4a906a8bf33a4828d782c0aeb51b9202faf",
+   "575447c7e3f609f215f961d7023b85f91f8e0303",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "cc26b0961b8b9d14781825c96be2b19e23959db2",
+   "03ece498654a1eceb4c3b11ddbeda059c32b7c90",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "94b42818407c206b04fdc11b640386bbef7e7f7a",
+   "dc66954e2787b17cf02674ccef240b10e545768b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "ffb2366aa46e6f1cbe4027acbe41f620ccd0b57a",
+   "e2302d26f201c1619abe278b379e7fc118f23e2a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "b67826d7755d7ad42bf801691f4fc7ab803999b8",
+   "2ecbb3bb8831355b1355ea8d831412e2a07b11b7",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "596550e89990ccebae881b10d12d40f8567efe32",
+   "ae5bac974d88f4ef7953b58ef313a071ff400c40",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "dc8ee2a8f45e5339be6d3d7dc1a7e4a995b823d7",
+   "b2c6669de57f02a2c447f12d0a7f8fa89c7f6d5e",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "266d4ff267377f11eba8c8a69689bbc71483154f",
+   "72bc5f3adcce5808095c206ec0e31c196dd41d09",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html": [
-   "2e49fa6bc310b908845d942f210769f78a1eb557",
+   "c216eb8c8f9cefc97aa35f0f97059ef4733e6308",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html": [
-   "0e1f1375da1101962ab17757fd94f336a54212d2",
+   "a770bc11c7cc12c4f777167eefa0ab379dea3642",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html": [
-   "c00e3501c97072decc84ac74a714bc784f042b22",
+   "5d6f7b21463ee8b5749abfa4411e4691713f1be8",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html": [
-   "65aa8b72ecd8da3c57fb61dae8a2fa186045e84c",
+   "3612fc08b2c69c8b988750f71b30ebae8bd050f3",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html": [
-   "b3079d2dc9d71e1a6e50ca60c63e556200d5e0b6",
+   "44ce34312a30a4adbc94b42effa78d513e83c40c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html": [
-   "c3ef7af0439b90d03dc39e472fd7cbda5145fa73",
+   "cc9bcb48c9f20cb6e1faabf435486bd19cab6e23",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html": [
-   "d21951e8997b00429bff48627c3617b923cf2271",
+   "dd271801aff6427b51d25c4d83e918cc52e46001",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html": [
-   "7077dfa12711b66f7b0293c68516abc5e2009f31",
+   "3818bdb23062e9fa62fd5f876062e4530027649b",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html": [
-   "e6b8211824cd2d0d8e77a4151703aca78d5af6b5",
+   "e3a8560e198db68fbeafaa20b57c1d4f18adfe66",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html": [
-   "28a143047e54ff10c972fd052d8be01186da4504",
+   "bb969a6b137825f64e08b4ff5b61c96904eb1d79",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html": [
-   "a74c968cd6f62a03a210ce28cf9070ada039cff8",
+   "c2d2eef0933c61ac8f409040b42ccb214bfb3ed5",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html": [
-   "e75274330b59cd092fedf6a8c00a2c7552105273",
+   "65f61af96c30b2fad94f726f8ee17c864d0614be",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html": [
-   "06e0cf6ccb57eefa6e13c117fa7a1ce5d6da7cd8",
+   "f96147aa9f81eb80cfcaa1206816756eaf3803a1",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html": [
-   "d9cfc360d9a068dd1087bb5e0b11c01a9993db82",
+   "15f8356c48634f648caff1bc142e7497a3faff6f",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html": [
-   "882de7e13decbe2f9178a16be01d8c09c4beb67c",
+   "7b37f77b0a54d8a2dd63f04087349d8f824b532a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html": [
-   "a567c338861197fe93f9249faddc4bfb6f16efb2",
+   "2ee6670f1b4d7372d32505baaa7a9ac2c15b5726",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html": [
-   "ede59d3c13de50b4ca08b891a13f5085ddac4730",
+   "324200c0809c704f6b96b3ae60d5a4e10ff3a305",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html": [
-   "e9b7a295ab937e2010b67367d5487a870d795db7",
+   "7679e7f4c3a56e2445ac33a06022c0c086f9b03c",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html": [
-   "f9e58ca6f78b6c580a6fae9898be9ac4edd90546",
+   "01429fc8d583bc947e2a2b8149af0da2891faa25",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html": [
-   "2c9beb9b272b0846c0464ecf39f97db3bc37de55",
+   "35a67d5cfe64402c69557f3f00458a11d1f16b04",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html": [
-   "2da9b429ec7c5fc9ca10d1d9d48122b185908357",
+   "6655e6609c7deb0cd8678521dc2a311a6ca9c985",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html": [
-   "61b40b556707d87c1cec14bdc863fa7a210b36e7",
+   "cf425621db76ffda9a78b091e92efcc6aecb3ed5",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "3e10a769b59337df15c1d4c4f12f7c7f0fa35158",
+   "3bfba05055e3735a7885883736581f1050f8c2d0",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "3dc9ca4eded6a70ab3c7e40190f74593fc4d7d45",
+   "7682dc3dcf84078e7fcff89a3c9ccaf183443d28",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "fa5788b514de7284606fc9e3c8f1a6d7439e0ff7",
+   "f438db21fb2ad3c504387044c6fc808a2d1b3130",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "f226759df6ed7d4de6069626214e1023e3f1730e",
+   "d25fb8468a147c6baf3ddf9563fb38617768c44a",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "263ca22b550ccb0801f70adaf244ce43d7ae4a2a",
+   "96cdc93e1ca1bedf270b2350dc9657f9db88aeef",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "e631d7950df5095c50fc0f72434163617094ebea",
+   "f698ba3603c8859412c4db35f777d70631ccab97",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "dd777e20b01cdbd9b7ffd0790afb4b212adafd85",
+   "0bc65f1d001fb7455b85edbcfb0184ad41ef6ce3",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "3666ca93a142f04be29315db7188813fec995272",
+   "c031a4c0d23471d6e0732b868cac0493ecdfba60",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "083863b0823c64782f048964e8653448a722ebc0",
+   "8f40cb489a31428e6ccb73abe5acd845cf725709",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "73e1f65bbaa959ee707cc355c79a392b0eaf3cfd",
+   "af4f0f329009819a6366793e0136c994794e0dae",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "9b8cb3a1d8ef3dbd5f8c9abae4b0551756fce3e8",
+   "4a335ea3f21094b0d969b7578ab1545fae77a918",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "ec76e41ddeb9b970f980186a5c4c188335909e17",
+   "b0bbd0bde31a0559cd71be6a7934fb0306cc0a00",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7f76db13d2555e8c9acd074e94ff3f17eab03cd7",
+   "9365b2056ccda73a9d44da69982c7b0139ca112d",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "c6dd5590c159557b5750904b52c124ce570b7ea7",
+   "f8f378e955f8cd1084d5b4674f6a7f187fc3d789",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "8ebdfb9f152ac41526a1131e07a9d97f01a14a54",
+   "d1a685be521ba586fd6bb251e19be3a105f832f0",
    "testharness"
   ],
   "referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "793aef76ed981a5d97d20a747087e77eb37dc4ef",
+   "50a5f8e21078b9020576d74ae543c1e4be9c35a1",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "de1463b5d3dbbebd2374028a000bae29b1440a74",
+   "66d64058bdf18129ef96f65477ec7392bf7e4df5",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "5cec2348d225895a6236accd5f70b85707111b7b",
+   "6af2ee1d078cdcbf8bf5b9de3ee9a6ba04a53af9",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "0f5f5353dadb29322360e9c60d4fb339d4468c4c",
+   "1893dfae743ba0abf58a77ae0f99a8f21ad93170",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "67f62b51cfcfe553a5ef1b66e1e70428419c9a4c",
+   "3162697bf32cbb10b931c156bc2f434e6bd620e9",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "0185812ea27f76137150e89d5518b77598b020cf",
+   "c9bb4d2fe73c65fb02756da3eb7411785e876474",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "b13d43aab689847a055da94045f177217db10f62",
+   "da49cf91783c44145f3985771cad84ce76c01b37",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "733dd399da571820380d11ad0961e536faa79df4",
+   "7a6b6abaf7067a00ccdf822aa7259488007734cc",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "966f10b28f10b651a0dff2b6ac38fb029d5370a1",
+   "01a91c0b38a8a62812d2466a89be8cd33f1a1acd",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "3001dbfd9661c71d7a466521ccbbeb6e10778d9c",
+   "245bcdea2f0d1494f49260a7bb6ada4feaf3c735",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "308d22db03b15dd641d52f8dc6d2b0855737cff4",
+   "e428457354efde58387afca279e061f04a6d3802",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "6c5e16e343a494c824d3ffc750f22a4d6be660e6",
+   "90568a2f215716fc503c149d96c5f1fa7ae9704f",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "e5171dacac7f727032e3a9d9bd1a56fc624895af",
+   "6bf526dd44d2f4e34f89f8156be6bce85a21e9f0",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "518fc5ca927bec80e76066f8965da5b82298a4e3",
+   "6a3de7df3869551766dc561e3a73188891e660ac",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "07c8d14f050baeaa6e4297e4efd39369a7e65d39",
+   "787fd136f0ed44a87eb8767778730b03b0f62044",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "307ec94547f90e522ceb1319122285026a334aae",
+   "5412f5c774f46d59f50809eb6fbb098ce67ad69a",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "94a45bbf40d728a0085b21e6f903a16d39b814a6",
+   "7c196b7310dae97d0fb7ed1c36d4f8db13cbc70d",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "ff3a4d5f906e28bbb90fa141461621df1bfdf133",
+   "b65dd714740b6d875b46a59ec715df1fdaef6a10",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "5e202a4c467fb879752e705182ca7c6ee00b3ae5",
+   "8e4e673295cab94fb4b7baf19bf594048bf7c8f5",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "437c1a502c435befdfecf16e259b8a704fd03241",
+   "9e2257546573fcfd5541c622f3452a65eb567553",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "adb575e8fc4f46d50aae107d3430d2770fb3a7ec",
+   "411d6546f60d19af4015bd248e0c5478933ac616",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "b368130fe63e2fde86de17c3666c39286ed4250f",
+   "362bb7300b03b2dcb1670cbcf3885706e9c1f070",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "6be36059447931dc8c0c7973a6ae86f289358e99",
+   "33929b4db8bdfe38bc070fbe64f39f15b3e86f31",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "29a5417f753eac47dd1ae01c661face77aeaec83",
+   "6e348099402ad72b6ae0abd28db109b75decdca9",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "1d19df2c20dbd6e482a10fc8760d819b87677fef",
+   "f9c98e4250943e2cbc836fe1f70a9737878de399",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "29cec56f83e63aac3b4a607361c799ee0b342dbd",
+   "33192628da63968d8bc9c68676f865d09526623a",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "fc158a9c9a53d97edf00ac7cad0524688e6c57a6",
+   "c7b24eadaa59dffa68902346f2093c8662d824f2",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "0636fed23499046f7e05277916f6a21be7b50f37",
+   "a32db59409905380cd579c78d8d3e9d38ff1b3f4",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "6ee44808bf2b9d7b17aa96e98219509c6bcfcc00",
+   "48a05510e8423470e72366e9d67ad47a6c664cac",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "1e97bb824d0e363b60918cf99fa7e8125d91faae",
+   "d9691a5f278e53c0ac3d5a3b3c71ddd7cfa5e3e8",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "bf2a2136ac483a8b034423841395385c8a3a99f3",
+   "112cb07a1c71cf6b2e2016d5dc5967fd068a6447",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "92f584e8be61926c51879bca5fd5abff2b73b199",
+   "c577811769b68b5f64a1e2fd035797a15190db5a",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "3a3d0cb3912b981918db6fbcd835899d6e7ead67",
+   "fc3caa7db410274df9221199ad069a251281d171",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "b1771d766820befe6c6f21b16b4aecd39d2fb5e5",
+   "562b343c0745e2b61af31b1ab6cf59041f684385",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "a2b64ec7a2900ab72d290826da7047ecc5643910",
+   "a5efd1ab5acbd5c16b73bb718efd4988f3d455ed",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "10d67abeb6401abbd3bb046606649e6070e2e551",
+   "5111816d1944bd4939ad5398c84b8cf70c853346",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "c5d55deda1d431df59d874f8f59666342733fcf6",
+   "88a8d6ed0379195201834671498638d011926291",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "8b1c993d2666b8248c6ffdd2d0a592c18f8794a9",
+   "0abbbc31a5521982011d81a3c1381ccb97cd922a",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "e409624d7f9cb5ef6001b29500082963ff3e37bd",
+   "f9bd0ffa568ca9c551fdeed395b9d8df375749c4",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "d968e806708c84fb0bca96a359ea32e21c46b692",
+   "5235d65e67ba3085ef8c39f2679948742d93de41",
    "testharness"
   ],
   "referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9b6ea47cd8dc9bc7ae6b002c72ddd248761b5291",
+   "ca82f796aa0faa4aea4c23c978c9101adc34251c",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "3a37854f3482f431c3dd591175bcaf5022b8682e",
+   "eb2728ba4a3c52968be22950edcb467a42fcc7e4",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444218,7 +444245,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "b8bfa369cc0adfc5b773fbfb7d667dec71f2c629",
+   "6db13b83ac646334441a6e37d7dca81e780d0d59",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444226,7 +444253,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "e7abb5524aff1b3af5c5fafa053172ee72b33f0b",
+   "a775c9291885187a287299ee4b9f45a56833d1b3",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -444234,7 +444261,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "ee0f6a65e9c444efb24c44740f4d4648845abe37",
+   "fa5dd4e3a5fc1ab04ff91d4fcda3a9a61d714dc8",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444242,7 +444269,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "6e0f4dd793d482d5cba19ebc2a25fe370001bd46",
+   "ddc087857933116d4e8932aca53fb2c5a9aeac57",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444250,7 +444277,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "6dcc1de0c4805dbd3034709490148c94a3b7cfda",
+   "ef1e1e1c630eb6f6763914fc699d570075fcee46",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444258,7 +444285,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "dd867e250bf716b81005e6f65a799cc4cc3d3fc3",
+   "4404426bc7ec6b33464faff2cff78e8bc54d8703",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444266,7 +444293,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "a8a664fab21d0526cf86483d783aa9c6d8765f18",
+   "7bac59bc7503eb06961f85a1b13a384945d9bcf1",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444274,7 +444301,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "778eace945616a53842e6830ec755ab55ab99a74",
+   "acbed1072d54df57b20f3098ce93442d9c37cf55",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444282,7 +444309,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "151cdf90d97028db92726fb038c10e11023dbf62",
+   "c6cf50265cb2d82a8c418820eab8c8a90462c5bd",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444290,7 +444317,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "8356d3b1842a43905c5737460161af1aafa23545",
+   "de2b97f326738f27e43a2f6d5fe6af43ac7a2326",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444298,7 +444325,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "be8889a926424964558d828bbc6311d29527d71a",
+   "51e66f2a9b24fc2fb6dac1361e3f00ae31b34a2d",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444306,7 +444333,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "f579e962710a103fb2e9368be6eaf6c26163ba67",
+   "36161da8f3b6d3f739d9916cc918266d0d1d1d0e",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444314,7 +444341,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "6771dfdc2cd4db3aa8c0f0f2e8d65edbcd2c1dd8",
+   "a11910b00b82857a0ec61b9246025bb442c156db",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444322,7 +444349,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "82b6165bee1750f9acbc27e97ac9aee8afa7aafd",
+   "9ba64a59d56111f6b88a7adb56a064d292d142c5",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -444330,7 +444357,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "850b62b059540ef649d2c9c7caaa65505f043ff2",
+   "af71a3151103787ada45885f075194ebb6076919",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444338,7 +444365,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "112efd4056cdd34255ca1ea71aa7b29c74daf72a",
+   "83bb4f5aa6f385bce2ef3da96e94fcbd6a055024",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444346,7 +444373,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "8dd238f17810fe9b1c800b663a2fc5fb5bf31c6f",
+   "8d8435e45386f7e3d95a75040454914cb04ba780",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444354,7 +444381,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "d0c92c8c333852a82528ad6c614b36fe7ed41cda",
+   "2d324453c557be5d937b94a963043f7e11aea3da",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444362,7 +444389,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "80aba4f30ea6de92c71977394821791ae62eda55",
+   "88065cd16cd8896a678c5b5f732238a191964a34",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444370,7 +444397,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "76edcef00e158c0828147b954ef2e09113669357",
+   "d979933fac7f3a891792c218142bb0d8ea532b22",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444378,7 +444405,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "0c9a64d75bfb072c54247e1e8393ca477cc4cc96",
+   "f53a953aa7ef2de4e762926545c1378d1c668ea6",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444386,7 +444413,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7261e079b5292d838bbe8ac021c69014ac20d02b",
+   "67600bf977510b56faf394bc97b7b22af0b65b59",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444394,7 +444421,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "e3d99ada9946e7d4a714dfaff2a9a5dc67c8002f",
+   "e27563a442134909fb3e6540542b4804e6205091",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444402,7 +444429,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "bf4f76c422c7e7d6631584d5a1d23f323516bcbc",
+   "282de2a68e1e5c26adba038a49836b3e620338c7",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444410,7 +444437,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "3568a5853db662b6c90bd0c29a0b736cb97ef619",
+   "afe01d98b43cfa7be9319ab7efb1add237d2addb",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444418,7 +444445,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "34678b6e0bb2c5ff7a45c972bc41923540c276a8",
+   "c385eeb8cb60118bbf9e0dc56181f05530d61e89",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444426,7 +444453,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "fd6fa84b8fc30fe4319d3d138eb26f6677911c8d",
+   "d3b18a67385f005d916584f8e140cd6b22a78208",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444434,7 +444461,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "8e2f26110c38d3936775e52703cca4c8e3079e1b",
+   "ae435dedf3e63ae2c404f5788b9bd6a27957d623",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444442,7 +444469,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "f1ef4905ab9197035cb27a8a38c03f6900365533",
+   "ac8edef816311c15d723a164c32b426d005cb900",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444450,7 +444477,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "882ec58e84c4a39ea7396cf76f7feac6ba67e285",
+   "5288baf690b541cf773dfe2b8e1e35c0fa2d512a",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444458,7 +444485,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "61222c061b1a4966f6a5250d84b5d207a7e093c2",
+   "76a320a9bfe653066f2a794d2dd462c840bc9fa4",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444466,7 +444493,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "eced7c919476afbd6570b0ee749c7ece75ddcd3f",
+   "bd748b6d848d0f331069e9d6c35ba39e9ff0d078",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444474,7 +444501,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "07324af6df4221055ed8d82dee07e46c7f9bff21",
+   "428ff86154828309c0fbdc9baea0e97fb9dadd40",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444482,7 +444509,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "74f5a7ccc92b3fcc45573f897d11cfc1eef9f94a",
+   "6669ab212b34276a29fd3daa31aa75cf71f85c51",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -444490,7 +444517,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "e0c913583e9513f73303f90b05a94898ee668bb8",
+   "c35d7cb17bd723a584bbaab99a10a72d153bf885",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444498,7 +444525,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "28616e8af6f01c34bf833b9dc21ec4e1e4581a5d",
+   "01ba2d5b0bb8e78beca20798e615c5d53b618364",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444506,7 +444533,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "4fb70527b619e5050362d358edd2169e37551462",
+   "8fb9370cb754b58bdab903fec39d7172add83b91",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444514,7 +444541,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "dc4f644b7837e39a92f59985876e2611d1fbbabb",
+   "de6638c6d18ebc522104f62faf76c2becc378b83",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444522,7 +444549,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "829b2b072f74600a43900afdc83b245d9dcc5547",
+   "ac920cb9f4f28bd08d75636187a62dc7acfa4298",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444530,7 +444557,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "e2be71dd9ce7931e74aaeb2f79636af14f1fb16c",
+   "a6eedfd236c7e28dbf7f26b065fd7aa3fec3e8f0",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444538,7 +444565,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "b3d3dc54a0d29baa257e347bde911e839b5a84f8",
+   "e0e92bf589ef0f227510313d603c2ad8771db5b5",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444546,7 +444573,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "82b67545c48b83ef16fbad140020ac89513b91fe",
+   "4586fab184acaab226c1e91ea417344c3f1454f5",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444554,7 +444581,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html": [
-   "bb8d797d0cb21555280f569442230882ff3898e2",
+   "9e0900d7f25f29e5ed4a66d072cc184e2b06d193",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html.headers": [
@@ -444562,7 +444589,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "56fdc7923fd4fe507f9ddaf81da6f56b20f4210a",
+   "d8edc558d40330ff4276e5f0ffdc5ea7b27e20d6",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444570,7 +444597,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "62397c2484769028fe30f1599e59e62e55c190e7",
+   "b68fabfb9d9671673114cd1723a220780ce2c33b",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html.headers": [
@@ -444578,7 +444605,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "183620ee89bbb3d0e4dad7c1dca1fd0bbadf4ea4",
+   "c9623dc3be4279282d1a7e1a476983ccdadbc7dc",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444586,7 +444613,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "1be3aa77d065d6697f22fe8d6e74928f9846c79d",
+   "705a94f449f23f0e7f63ec50d4857ff0cb448d44",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444594,7 +444621,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html": [
-   "ea834022713c137d9ef6bb52aa988333dc236332",
+   "e751a96832e019d9aa1f692f94036363a08f974f",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html.headers": [
@@ -444602,7 +444629,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "1b30f714d08d52c368c6a8c5d92ca4a44d733759",
+   "ee798fd77f6e3069609a1a7cdc92ff6bf8980312",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444610,7 +444637,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html": [
-   "b5880bda93aa4feeb1b317bab90279cf7b5b2e7a",
+   "86290413695026f37917927d45f3a3a52bb3e610",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -444618,7 +444645,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "dce61d41d78df7d8f7ceb4dbfe89886fe81c4ad9",
+   "34909cb71a1eaed38677ce4d44ab7000094febb3",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444626,7 +444653,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "c857f4c7695a7d4f38fd531e08001dfe8f9787f8",
+   "8baf9eec6861ae512fd9ff917920189fdeb37702",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html.headers": [
@@ -444634,7 +444661,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "1f137283c6296eee6d871f854487681b300d4917",
+   "3462a51251b16b98003e37d930c7420abcfade5f",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html.headers": [
@@ -444642,7 +444669,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "b25470749eb5b348677bf86714825d5cbffcecf7",
+   "3dc212e9fec974ae2f0b9d73105dc57e52d2a4c3",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444650,7 +444677,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "4a82c29445269796fc424e176c08221c8e97d4d1",
+   "c25f716b03218357c4379c6978b30b55e16ec6a2",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444658,7 +444685,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "787d3afc7a52765493b16297763d10a70de587b4",
+   "ca6b4320645d51b3839d5006c27f02b5eb314b95",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444666,7 +444693,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "0a1d40c5f876293f699b523a7414cb17896c5642",
+   "a22890c0756e1a78a625cfb351f03c6e14773dbe",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444674,7 +444701,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "999c43e8b1d29499fec642d08da3e99f73586302",
+   "5592f7a47a30f5a4f59ca83e6faabbe5d1a12c2e",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444682,7 +444709,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "6330560d94641038191f02870182984cdb8ac2e3",
+   "af5b5b495c62348ac91b1626efc8717318c4fe32",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444690,7 +444717,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "4681722ab1776d1aa363c03b110c3737dd4a16e6",
+   "ac79d620e75f8c0f7e20f05d3c2cfdfc48357b1d",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444698,7 +444725,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "1487f9645366c7c12d093c898dc50ddee730b9ff",
+   "d3bd99156f17dfc03171c69babee05108ef2c5e9",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444706,7 +444733,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "ddd876b91afa03047a6445773d94e6039161b5c3",
+   "3aa49c4d9b8cec26c9240493fe5146a29142d394",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444714,7 +444741,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "6c92b8d5166606991859dcd559a940c2ecf8d8c1",
+   "dde11eb542c95b0acbcf67f1bcc6d5a42c82b56e",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444722,7 +444749,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "c2fef2eab9c6c7f080d6091077ddc621e3145973",
+   "b6be0bca28c0025408b01999a42b0a3117939de2",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444730,7 +444757,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "51b0a806941ec067b7c2335903d0ec8e412f5527",
+   "face97dda015b5f61513846178195c91f03ff3b9",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444738,7 +444765,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "ab62bdbeed56c66e10faa20a6ef3f19d96e73601",
+   "32123fac2554cb7906465d1e95830811dbe431ec",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444746,7 +444773,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "bd5bbed36eb03f860e556836d388218f6219c409",
+   "8efd849727dcb090097789c1323df6199e342dcd",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444754,7 +444781,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "a3d7e8477591b3bd5b7cdaee48ecf1a33af884a7",
+   "961cb2b4a946b4738f28124bb65c9bc5eaee3e02",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html.headers": [
@@ -444762,7 +444789,7 @@
    "support"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "e264bc35cdcf80b01e07463ccf4a3a6a8333fb43",
+   "5f0a33f4c242c8c593c897e8109456c226063b24",
    "testharness"
   ],
   "referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html.headers": [
@@ -444770,447 +444797,447 @@
    "support"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "bdfe9f7b932f1b824a74889309d84309d7de4eac",
+   "8bece44d3edfdf284e8373881ce25608142b7d39",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "96cb246045917c8cbe541761287b4fbe082a653e",
+   "02c0d382c8deee2206fc6c37866c73b70d691921",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "97b2f49424eb9457d912c53b00add8f6b987f7ec",
+   "2167cd19befaeafc052336966f3d8fe62079eade",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "41c90bdfd053611c7f7bdc6cf5391cdce8ddeabe",
+   "464d38106caf4b54fadb48de1b8c655434c47332",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "005b0fa5eb733e1e589c39a5f93192a52b093116",
+   "6bddb18878efeb0fe0d30d321ea75bbc4c782c4c",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "bb240bee618e9c58138335cc93fd63b06b4d9d4a",
+   "076e51049ad73892ba2fe346cbac312e7447128e",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "0d6b7b272181465a39f41f9bff6a56b7286d105c",
+   "8e9b6554fd150d8bf3f3608efde52cf0dac62dc1",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "09d9594c266b3cf23e67f82d7c13228d279d3524",
+   "d78d22da6015be6471c9dc6f8948961e6b95fb36",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "c83cd66182d20149cbe5d1b4d626166666a9ff1f",
+   "ca2079d40209bf36f621d72cd237b586df71c928",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "d9ed4f6c0d2ca500fff0b5317895079bf479cd9c",
+   "5d9aa9a967c483b64d9ee84521882f9aa957ec89",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "f060d3b999923a731bf35e1becc94875c1547726",
+   "1eba7c478acf9a9e41f99c9cb0a2490dd30973ed",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "d37724e7c61c984cf28e4d57eab3811dbcff9d77",
+   "090d71774683926e6c3776b27d4e1153ca1d7a91",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "7c9c53f86f73132ee8c9106400c2185cb973be92",
+   "6f8a8d1229175ea49ae00a2cead086a175164fe4",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "2b04c50a42502e36b316900c6f156ccde3206829",
+   "68836a1e20f8b2a44b3c4eed94de5808042db74d",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "064da1b6986e490c21689b8471e87f7281a61ca3",
+   "de67eb3147c6050ad96c646863c81141a60b609c",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "7046e6e1474c98f8e4f738dff549cee9c5c77dc2",
+   "f29a3130e4f518b4dd33f4711ca4dd72503c410a",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "a14d6f79ced35198baad0b2c585c3c49d04a4d2b",
+   "85ffd5a6205bf0b39f21b370467f3126717245e5",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "25557dfb8e7e851da6f7b680265b5bd522edad0c",
+   "66c4ed68e7d84973144ecde117cce05b1a534a81",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "f3ce31c69db6262d63e8c47e10e60e5f4f32bc66",
+   "6539ce8496df18321518f05af0238958c12bcf6b",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "fdbf7a78b19a9c6d37ca000a15de6df190deabc0",
+   "4588734ecf6eba6b84739cdfc52f40c4059b3917",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "cf16f8adef64780c276f05e9908c38562649dde7",
+   "9b86f363499a042668b4e9bfa9297e5f43aa09f7",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "ffda52304cd913aa4465b43919efa1d3b9829e07",
+   "7271188681befd4b486e8afb477f0340bb92bb66",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "e013b680fef2fd42cd8be228aceed2e9d07167e2",
+   "c26d30017f961957346cd66d60150475fd7f4673",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "1a1b2404463e5e47c4f0a91069d9b93e1f51c8ee",
+   "70c9c8160bb50fe43dce12a72f1cf9b8ba22f87e",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "5bfd8faa1d90d9ff203237c8e5b2da0feae79e09",
+   "1171eaff9075cfd0fd86d8181c58040eff00ecdb",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "d648738223cc78e63696fcaf03af5250865c0795",
+   "3f958fb4ae82fa2c971c3f3dc189066edc640637",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "25f01ca1b264ecab6d45b244ebabccce5e6344d8",
+   "c37487a8177236a414dd69ab94063ecb1094af4e",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "c51a797d372e4cda2fd1285796a46461cf721c1a",
+   "f7aeb60176f36f04cfa207df36b42c9394583097",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "3562c938a091c9df126de4a718fa94f676e69f60",
+   "d3696d838659c12e28486b6fa578bbff80721c00",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "50994e295cdb2e8fccea0d586891c20cd81c1747",
+   "f6b60e3e3b422b94927b2d2e30f53ba60aa2ce8a",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "da91cfdd2ef82e05d2aca4f9be24b3d65584a4df",
+   "d696ac799378fa4a3f0c43bb1a387e4e8b92039a",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "bb496aa3f04ad58e015b2541a6b9b7dd44f82416",
+   "3e2328303efefa2d41e13889965ba2d6ac483f35",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "32ceeff6b39ee782d65ff5773daf974c11089d02",
+   "7730443312c73e8deab1230fcefee748cf77ac5b",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "0179180e5895fa9e6552227be5f897ece78b927a",
+   "cec306036efeb6b418d154e9479554f6aa6f8136",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "3b9d5beb6a39d046d68ee54bd685de9c02eabeae",
+   "479d8c56ecb6b375c35653f84cd7b72055fa5b4e",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "01c5646b14c88d1a3fd80bcefaaf90bfec9ab6b8",
+   "b551580619c3e00261f7a68d905da1899ce8d61f",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "fccec81bbcc4f644782a312850d07b6f19c37d36",
+   "b1d9cad4e67f31b5a24ae4cdc11b1c328819d2fb",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "5840859b4ef9c3a4f3b9b37da02f6f5651614132",
+   "337b2ee3f6bec996fd081cea2bd0f404176f426b",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "4e93fafee0562bbf77425c3e853d1a6792831926",
+   "47e90041bdc05ae9d13f52da6ed1d96cc686a523",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "9a9490e666f85ac00279f786b65f919332243baa",
+   "2199f7a899f99aaa74da077137ed4c353344a9a0",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "9e1bd3a1c08477b09cec8bf022ce785befd8880c",
+   "2657884e93eea1638b3e3edb54e339243ad3da36",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "46a7a33c3ff1bf81d4bc97e1e9fa1ee3c496397d",
+   "40c7e03703416f820576219ce418777a64382b49",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "f60cef60c73b7d6abce9d6474a11928f2b2202c7",
+   "85886baeb2c4a9050455c659691b76d6bd3fad1b",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html": [
-   "3ee6b651a90dfcc0356fb8db435a04cad7a46c89",
+   "9763a1973aed6c2c9b3c745a65cd3ee1438c7ab4",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "6186d57f3f85397c8a057a71ca1769b54aadcfd8",
+   "ecbf2b83c288089acc3e2b57bbf3c604f9f1ca52",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "08a6df4fdb41ae5c4e09b2d63f163aa13bcc2f9d",
+   "c0f5c866b502bf6ecd95d204e9350ce3706e29c7",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "8bf116b873f45fbdfb8d5b81c61d7c6c24a4dedd",
+   "e747f570bfef40e0b6aff19869ebcbaadfe41028",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "aa874fda92229898498764e80416c4d852c791d3",
+   "7fd8ff4d1943e6e63a0897adeec339f8ede0d14f",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html": [
-   "056494df00baded9cecc24668dc3124e3e6cdbd4",
+   "beec47c1edd70dd0f3f7e167d82f8106918464e1",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "7d18b730ec3fc8dcd165afe86660efda1c9faa50",
+   "c4070eca035e10d71f0e4204163bd85193461da8",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html": [
-   "8a85ecfc756219aeaa8e396e5daacf06494a40e4",
+   "e5ec2f3a1b1f113f4b2b9213257cf910efde07da",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "3fe96e71d48661802a5db3e40f7854b8bc7fe77d",
+   "0383a617eaa874ecf736550e12f94a7ac67fae4a",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "bdfce453e8db50ca340dc704a5c3f19a0653d062",
+   "7ce14526dedb9ab3ad57d70820fdcc1305c19da7",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "6e29cc16ad1ba760364310def23132f3e3cd9338",
+   "d6131965f7ebe0a6c7b9a8d034e3a5f977c8e048",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "8f4342bcdbb5caf00400e621bdd83f7b42fa670c",
+   "752a2bb083222ed4c0be5bbd8e70cd79de9cf4d6",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "dfc4b9792ab33f87c0a9ef5cb1de2d04ffc22a0f",
+   "489181e7a6c34902b35fd3f46fbcf40dac7d9958",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "dfbc93f207678fd8d6a327a1b8ba5900197e9a5a",
+   "e3a255bc3533da2c65dc5737caceb17b6e40dbe1",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "4f581e783486c5fd47a7c21a3f4dd081dcf1eb61",
+   "b2c688bd1e142a7c273ebf3167d244911dbae053",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "610799d5e236b1bd547e405fc78031e81ea687e2",
+   "1677fde7fe7fc32bba41503cfd8f2ab1a7c599fa",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "db36bbc70d83fdeb3f26c671586c0d39e28b7ff9",
+   "995c0e605acc6465c78c2c09fb37b13c490b9642",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "8f4eabfa254441ac00f7dbde326983dceb0c5584",
+   "31f622b9b4ab016e0c0ac9b490645956449dc6c5",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "e5acfb1b05096166b9f17fef82477a35eadceb9f",
+   "d5a472e0ffa5100b1051efab9bde244331c0f43b",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "f2a6afb83f7e0224b47de91314168604038a6c97",
+   "86665bc952935c2174fcb5a29fda61262b19a8d9",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "40dc6bfa4078c241eb0e3c8c84f5547dc9a441c9",
+   "caff3743136c8c92efa5ca09629285eb430ae5c2",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "2bac0fc5a3d81da183c296b90a935536b5b4af6d",
+   "2f14b230b33317af2782f758911fe048843daf2a",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "023680ab7e16fbe8d68d263d0484a8f77ba9d5f3",
+   "6205355dfadbbbd6170c0c20576c4900c5418a35",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "fbd9be455de2cb64a707223c91e57545ad6174d4",
+   "d061c5f7e9ddb86b77bc6779e54251c63291bf80",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "1b2a3b3ceb4f9ce975d383405b682d0a74b37ac1",
+   "6066601fb0f07a22cb1e60f824363aa4f5de5020",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "0c002eff6aa5b60c2b2d821af8d3f1417653f3ad",
+   "597c0a51676e159ef77bc1cac674aec1a4b83c68",
    "testharness"
   ],
   "referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "3aecaf52f88276ac210541d5f366b4d3ee96d6b8",
+   "1cbc16515d17490c4abca3efca4bbf69d6ac4b34",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "b803ec86857926b42899eeed6b1b12d81feac5e8",
+   "cefaa9c97f7b256083ca3ced1bcc23cef95d3630",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "1d4be3c779501de6771c3462da8800c36cbdb684",
+   "bd43802283c5cbd3b41938af7323559bd4190bba",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "7151507702602c2fe5472ac8fb1072052a656a9d",
+   "9503d148222071462c63a1d1e3afd2beb0f189e1",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "814b6d9ba1ec2de8830dd51d75ed3c766289ce10",
+   "bce63cdb6d392d1c6cf0001cb60604f584b470ac",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "3bb8712035bc418e1d01e20c94882767a96b43fa",
+   "a57959714e9b4daba20e52eca33b3431d15659bb",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "8a8a459f9447b7396016a607db4e0c77d74a2315",
+   "9e292c97c0df0a98d0946cbb003969dff43dcec6",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "04ae66bd22c43249b26be174014eec261e69660a",
+   "1fa9bf44245ba3ccd19e7db5a848939636b0e52f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "edfdd5a4fb4729b3865fb6920f700533088d35a1",
+   "070e99e8f18e7a1c6899ad63b096c28f8cb3dc0b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "19bb2541bd31c383ad3fc99014af20ceb9c7dc26",
+   "980678e8168175874a7fcdba0cf0c7d4011f97eb",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "45216007e36eb0437ac0a416bbf36dc049ebb8ea",
+   "982a571ab1537378a97df8f7a22c93ac96d36946",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "0ae15d3a6f5477b257b5f9c0177f287234def1d5",
+   "7e9c9f1e7b89ca8a629d1cce938af5c6df58f944",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "4947e50aab9cd219bebad1af8796c329775020c7",
+   "639c2ad1cf31d85fc93ccc398b330b8757fde8fa",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "39deeac307ecf4cd836e3f86d09d97be0aaecb82",
+   "9bd40a44a819b51ee5455f7210b81012b1bb8d98",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "334ebae52279db78a98b10c5d45a588ae5634eeb",
+   "e2b981ef3206d6795cf6a08d302e061268537d3d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "ca1f0a68f7a7cf9c20b8d366f48096f75f5c48f9",
+   "8bab7df57a8e9dc5540302a797bbc0377a8b66e5",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "f813f24a611d6ac8579d9d1b7bfd1bdcc83356a2",
+   "c2d2948d4b77ffeb8a9d6018d606f21df1ec135b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "d3272c43508c8b70922f18dfbac9dea283cad49a",
+   "f1804350ceb209b4d23c75295f5ad3a488a7848b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "9c4d68109b901e9d375b7c381b30b8ab05f28e36",
+   "fb1c255cabd056cc7474058938e1e7317f199f24",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "2c445f1689271f367a663fdabc7dd4b95cf60b24",
+   "bde470822dd5c5168c67c5cbbb75cbbe5780813b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "384d6b4f05c509dc25d3072ea0f5dd9526c8cbe0",
+   "e28d725eff819b77c7c7680717f022db34d3470b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "f1d51bf377deb51abc659e6cdfbdde6640f8f5e5",
+   "699a9f8f4220526981143035eaa1fa19d012ab21",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "22800cf4b4d9a8b296eac415d070ba47a4dbbbe2",
+   "241f87c0769abf2b452af978fb5497b019eb2047",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "ceaa0164ef2db322557d758b767fe8c8c0bc3867",
+   "e9c5fc2a0bf50957f4d7c76fa60cad278a557ede",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "5117c0f4dc149ab30df4351ba8bf7595967fa6b6",
+   "2b77f9761e70ce614c119fc88ac00e2d568f6bc2",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "d891987d39fb7f9cbbfe2218c38e40cf8403e509",
+   "089c3c59254dc684b73501ef0382a998c78daf7e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "246089208a1d1ddd4cbcfeb4e304059c48b8e3a4",
+   "f152defa15f871ca96f6a7adbbf526e327c84e79",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "10fc2a00fafb1854ee7fdc13e62dc660ef09fcfa",
+   "6be7be59f2e996a1d91d9be726370f181b874574",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "3fae7fde3c206677acdeaa191fd9c91464eb2f92",
+   "1d234b8d14ddfce8b0f6aa18cfb1cd11c062b1ec",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "6ad3c317b112d73aaac2bbdb176ef9ececa8f266",
+   "fff0f8ba92e0796e20a5c31dc342df62c3b6c040",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "5976b8fc94a4b4c2d4c341689b08ad476ad6ae6f",
+   "9adae7ad86e4d50e7bb89011db287dae290ecd5f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "3a4c60248c86a5ee54a5d2fc047c9f22ea4785f3",
+   "5a74b6f4ccfa7655a119db3c77fe4cdd19fa050c",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "9d504a970924566366e0fdbea52ee262f86c8e83",
+   "256ffe7733e65e9be8eea06a3dbaf91d3e0646c4",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "5fc928a3c7ece97db3c0245996dd6c772780c868",
+   "7875fa93b9e5a073d029d2e1df0295046a7678d3",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "01d2abbb84cfadcb871f799a0f7f077fe081787a",
+   "c611592345158477a476168869d36ad1a4b5aa42",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "2b520ff43afa52de106e5c4b6ebdaa92603606c7",
+   "2705d9d7ede711646396eaec4c8aa1f06f2c759e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "7a2fb09fc67e4b7b40c6a11910aab7b117b4cefa",
+   "2edd407c673c7eaf6c9f035cc290466a0d40aaf7",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "7612d5ef648315922ea6062bb1201a8494e42884",
+   "bed4da153fe4488d76976dfaa0a828f0e19fd63d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "61716199e5843855779b0c5f6db19e784e723479",
+   "e3baa436370cb28ad15db85a2a84fca13d19270e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "7c900a7466e264c178010df39da21cde1c2f7ae2",
+   "d4eefd637473af9abca2d1f251562b24e6e24336",
    "testharness"
   ],
   "referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "4b307df8c3403789043057e7d07fdb4bbfaec955",
+   "60917b64e8e4a3803e4e976cc16cdaeb688477e6",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "3aabb1d6e6b014ca8ad534db3b024b0b279647ee",
+   "30b4a2439faf2ccdcadc224ad2b5e3d4eb302d40",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html.headers": [
@@ -445218,7 +445245,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "53ab93a35745f96d6bbc65d89ac3fdefee7c2e43",
+   "78f5cbfa1cb62ecca5bb2d295d96f7dd38c05249",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445226,7 +445253,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "ae0a512baaee29771153cff78c690e007cbf26bd",
+   "efd83b24093f1eae6aae08e22ffb252ec4dbf4d2",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html.headers": [
@@ -445234,7 +445261,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "1360c04c3fbd5300ffee2a3947a4ce90bf9b4f7d",
+   "aee2c19a06881969a9510c1822fb03fe910e2721",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445242,7 +445269,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "e608f52cbb532bec83864cecc79d622de7c1fcab",
+   "0bdbad44abfdfe1624ded6c2485ac98e3880d769",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445250,7 +445277,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "e8b1059951d083e035add7fa6f76edbbe332299c",
+   "cc62ce4089469a3cb78a9a23206efe7f9a0d0e82",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -445258,7 +445285,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "0755eaf96b55e7871cffcc439b1da8d48f635e3e",
+   "44308b95416915a81f5e689a8f9f8ed73c8fece2",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445266,7 +445293,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "6c873e8f0ad09e2ae41c5aa13878273ffedb45a4",
+   "34fa48f5e7b4d6c23c09242d5db2fc917b9d54e3",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445274,7 +445301,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "e9d9d246902cd47b046eeb37440c288217c4e131",
+   "a525fc603d8892cc31028c3d620ae512f4b32643",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html.headers": [
@@ -445282,7 +445309,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "78b871570eaf668851b040c2c839c3f7e72bf83d",
+   "7ac73e2015d8400b9ea1fd995446596ccca064f0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445290,7 +445317,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "a38b20f1753ac48df1df710118c710f5c8940a44",
+   "f213cd31bf002df3922d3a6eca01fdece12ae06d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445298,7 +445325,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "a7fd03c43015ce6f25f635839c1414c19a293c24",
+   "8140af2fdf9747e55fbd879796b6e4fc58a4a6c6",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html.headers": [
@@ -445306,7 +445333,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "06b2b252f3514f111db1ec97c9c68b89d3da3bae",
+   "8e8241e6f810e86a99f22d02912e3e28624c155b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445314,7 +445341,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "49c3ec58e8f05d9bb1b4a1b60271423e9f4b480c",
+   "f8f932883587b05769849e14219397ea47e36cbd",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445322,7 +445349,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "163b8c8a038dc813962aa9833e9c7f0efd383199",
+   "dc670ca1ad2d1771426210cde4466e1ed6eea91b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html.headers": [
@@ -445330,7 +445357,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "c28550135119c31f446dffcfe655c4280b545852",
+   "b10e0f2958d08aa96099c899d0de59cc637e05e9",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445338,7 +445365,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "2ce057e691a64899c4bbd913858d23ca91ca31dd",
+   "ed9b5c0089dd2e40d203453ddda8bf03d83bff69",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html.headers": [
@@ -445346,7 +445373,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "608035538d8ed0bc3c138d75137919af9a4752cd",
+   "3adc05493c586f5d978b559e9bb07f734d9c95f1",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445354,7 +445381,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "046b2585986cbb57276adc3f2442e0f3453c7448",
+   "9a64304c2e0a8f61521bc36e22af0b0b5c29473f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html.headers": [
@@ -445362,7 +445389,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "59bf756b8eca19a40f2c4ac2ca84adf1b8825c4a",
+   "03a51f774791d9722a27d53ad0675a41e5a7ee44",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445370,7 +445397,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "eee0a3f8ba5fd5c8982f4883ed7dccf9bcdf5530",
+   "ab4c34366f3becc4851a8d832a1c4e47f76b5fc3",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445378,7 +445405,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "57f1a9d0407755373189253d6d4344589b27ebd2",
+   "db547eca9708064e8172e54b7b817a196c7664e0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -445386,7 +445413,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "fdb7033c4c42c61cf930fcc723e3cea5a0a4e314",
+   "931895b1d4fd08f776476b49868f8a84959d4b47",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445394,7 +445421,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "7168479ac2df5fa6c79ad01fab8943b8c52e9e05",
+   "0ef325faa851d12bbbd296bedff2644fe22a39e1",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445402,7 +445429,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "5689889eb33b47c6f0ab813bcb39239d607a4945",
+   "69909e9ef80c6f98cf54911ac68f79dbea22cf07",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html.headers": [
@@ -445410,7 +445437,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "678d95524020fabd6294d8e9aee43800d1c71264",
+   "35115b87c2bf76b0297e5cf0185db8488e8d1f30",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445418,7 +445445,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "73cabcfd93920510eed0b85954c3978100fba7c5",
+   "b95663578562c1566f9a4a7f90a4182005ece17c",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445426,7 +445453,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "fccf299678c42caa8f96f48396dce5b5b34f2f16",
+   "1220a18baa636945c72fd9527e541085b38aa277",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html.headers": [
@@ -445434,7 +445461,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "174c0feac7426159f3d4de417602188fdb97c857",
+   "21df7bc75d4612a61a69d8dfb32a5b0d1516cbfe",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445442,7 +445469,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "832ceb02ead4556d018fc956c1348f104317520a",
+   "144c8bf13430c65369c735e8d105dd13b0648b3c",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445450,7 +445477,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "4ce7799350541bdeaa2e2d02ed99690462605260",
+   "46086730a0087459685ebf8ae10bd98e4d12a982",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html.headers": [
@@ -445458,7 +445485,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "664cb7e3deaa02bddb63a10b207abc98aee0ba99",
+   "96faa625202026279c9ea60d59d3673031b97798",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445466,7 +445493,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "2041b85a8e5a28a6f06b9550b5a17e4e4f2086c6",
+   "5e5c5f8200f254a1d9208d9a08cc2c607b3e0748",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html.headers": [
@@ -445474,7 +445501,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "2ce45af4cdd0c8e1b30e6b08a3e50d34bbd0460f",
+   "d82278a75d5694268bb8f784aaa5c20e5e39804f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445482,7 +445509,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "038a0b2dd5c04b1fa1491a27000eead5151eb052",
+   "928dcce4ca57bee359c97af68034e962f2c50d3a",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html.headers": [
@@ -445490,7 +445517,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "78b340afe47a05e44efe7fdb4db41363138afc1d",
+   "f4a83144a42dbfc8a32e69bf2506cc42d0a93c01",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445498,7 +445525,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "12446ba148376d20af3a30ebdd079e5e89e4140d",
+   "6fc3d5945454e95086d7a135a1637fccf99cdeb0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445506,7 +445533,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "70a115d87566275b679cdfeb49e7a70366f6c6cf",
+   "e9fff3e4c85974dda9dac683ce03ecc2c73ce6bb",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -445514,7 +445541,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "7a083ea6cdc49efdeedddf677718aa788aa8f456",
+   "d6b38a0c6349415dde4261199086fd3b9989f314",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445522,7 +445549,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "12871fac6bff1c9ad2a7e451725a7653e147e08c",
+   "c399b47983478ef6728adbeb1d62e3190e1ce917",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445530,7 +445557,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "abd803c443778f324f03663de5474a7b3111f814",
+   "93d63b6c2efdb1c79a7427cd9d21eac5b58bd12e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html.headers": [
@@ -445538,7 +445565,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "02e9b92a215ee266f5a03deb98e5e5139fdee431",
+   "5e7717967d88fc9339b3ddce1dfa25d60a9810f7",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445546,7 +445573,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html": [
-   "8d97cd77bfd1b348322f9bd5e21c26bc005d9833",
+   "7b67fec5f17571e11d18602c2f1cd76e251c4683",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html.headers": [
@@ -445554,7 +445581,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html": [
-   "a3291b0ca86e9595880c80032db774885d2f0cbe",
+   "d8ced7706afc004f6ba760536c27e24567049b29",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html.headers": [
@@ -445562,7 +445589,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "435281a74c99e98b5e4ec8143cd6d7c82f7dc269",
+   "e315f3cc216e2a0faa697707aace923b2c0f6fbc",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445570,7 +445597,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "dbdf2d6fb9ec8181dd41ec9e9f56a4be1fdde770",
+   "fa86de29f5a202649bbe3a08bdd3a7e334b9bfd2",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html.headers": [
@@ -445578,7 +445605,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "e1643fd37fad958655599429da21bb636b80bf71",
+   "c7ee265f11f7122566f4e957e01c5684516a513d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445586,7 +445613,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html": [
-   "53cfed58c20a08d8d1fb375b5dd45c35da96230c",
+   "86ce965807faea6206e52fa0f77b31a0d1730ca3",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html.headers": [
@@ -445594,7 +445621,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html": [
-   "4621243bb65a04bc04e4a04b0b805757adbbb7f9",
+   "a0a3492f10dd251f14b86a7845c41486f5d65d53",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html.headers": [
@@ -445602,7 +445629,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html": [
-   "7882c1319c11d2cee81787d1d9b86cbe2294d1f9",
+   "ff29153c8c764bf90de6d016a784f2014690b24a",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445610,7 +445637,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html": [
-   "f9baeba7a310229796edd11d0f5f06b83f5385a8",
+   "ba0c3a2cf3983e78c2908c2812869ca427b9bf25",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html.headers": [
@@ -445618,7 +445645,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "89acf024fda62172f8cef7477ae38143e13fc799",
+   "67f6ce8b96c1f44396464ff6a02afa6f1200a565",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445626,7 +445653,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "9f43191303cbbccbd8220ad156a20a097e279e57",
+   "c1892cbd682d6fefd407b655c4718a8c7cbb5066",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html.headers": [
@@ -445634,7 +445661,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "5e492ca917554f2aa33e6a05d7db8673e48a8414",
+   "d40087f2376aff837c642983d22e0289aa8d968f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445642,7 +445669,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "f0824a2291089ee702757bcbfb44201b599806dd",
+   "c3cb404fa45538cb68e0319c9cae80e518de9941",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html.headers": [
@@ -445650,7 +445677,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "54a2fc32257ce8c1cf6683941bfbc9c2184a2a72",
+   "e90461cd16032a5c5427a2b5db1bd6484f423b6c",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445658,7 +445685,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "e6775088a6e09ee546a93acca85af3ce98ec0963",
+   "0ae217ed8c8eefcf5a2f5b5191379ae8eac059f0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html.headers": [
@@ -445666,7 +445693,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "c2bccdf77caafccea9fb33e58bf77a71aa9c0ad7",
+   "b55a2708a7793b789eb57643f7497b8ea8f8eb36",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445674,7 +445701,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "79cd63640dee42355c94e390217bb7297bef7a76",
+   "b092571cfeb4b5a8c6633dbf134b0143b665a395",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445682,7 +445709,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "4fc687f979b90a665c2cad53ea238882a909b29d",
+   "c0b5209603d897e1688ebc2de8e5b36b757c7310",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html.headers": [
@@ -445690,7 +445717,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "3a24da90cacb68c8df2b00af83cd96b147950965",
+   "9393d4cdad966b1c5a69e57b94a4d4f0ddb4f805",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445698,7 +445725,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "95154a9916d7d0237f41d82e7ff872964a1a3363",
+   "b76378b830c2ccd68f20b33fd9c084563ce88583",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445706,7 +445733,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "501e8ed242fec50c1b653646580a3dc6ed04c1f2",
+   "9025174a4939a4b385da15315bf676b80c7827d2",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html.headers": [
@@ -445714,7 +445741,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "a49c2a05ccce259f7ee8e0d11cca869e21b466e6",
+   "e197f94bfdc1ca9f6525446bdfc275c00d294f74",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445722,7 +445749,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "77d22e91370596bdf4b81110937cac203b63f028",
+   "dd4ebfca68cba8850a343a9a12e39437cde2d2ea",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html.headers": [
@@ -445730,7 +445757,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "6ab0525a97a4a3e20ca0154321068e4dd8633cf9",
+   "057f2680f765bd097687ebd2ab7eaadc30aaefbd",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html.headers": [
@@ -445738,7 +445765,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "22057804af79064a93d6270b4e8cf16c1196dd34",
+   "5d87766d2def436df7bd76e3a573b9a786e0e000",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html.headers": [
@@ -445746,7 +445773,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "980c4a9aa467b99205ee68f7b01f2fcb14e8ea46",
+   "dbde82d26508de1131643f9f4ed82888156bd9d6",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html.headers": [
@@ -445754,7 +445781,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "42c0c4b6ff8d5d12d3996a63e92af504c965778b",
+   "02ce7599d0419a183568c74e5fa5d9c8aaadf30f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html.headers": [
@@ -445762,7 +445789,7 @@
    "support"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "efb989ee35e10b79a58020aca80b5063afd538b6",
+   "a6c62bec6ec669204be4bc2fe77933c27e029f2e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html.headers": [
@@ -445770,1003 +445797,1003 @@
    "support"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "9bc18f9d5ea57367e516330d72d275269472f4d7",
+   "e4da9e99f46b7289698f4d19dcaa68ee35a58922",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "15120a2dc19b42fc87ef8b3202c983206c80dd5a",
+   "2eeb2a715669e872e7c76a40cf55f3843be4d07e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "dea4a85cf8fedd9981b5f4046cab2faa78c7572a",
+   "3e8df22f781d99dbc09c99c997629224dd55b59e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "c46cbb6a1594a440caaeb415856e7b89fc0960c5",
+   "24958f59132db299c689ea48a4370616360c71cf",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "e89ee7f894090b015cf331a274b130e8398b3037",
+   "27c43706681d6fd37afb2d7082d9709bde3c0b26",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "875901b25646aa1dcf58a27487101edfb92dac35",
+   "a3b987bf9721764a453e64d2f986d68e1e29517a",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "82858ef6227f36e21c7a7002753242f67ba42c81",
+   "f390274ded678bcdae99ee3363a5c40123645ce0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "775bf93fa3db76d1c1b41f703a7a498ecf643f54",
+   "ddd26ce66a38f08fe39f05359dcc332d87d8cf67",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "41560ae8c18de96d99017e9326bafdb55d1b1f00",
+   "79eaac2997962a40fe176f5c68d113ef11fe7483",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "03073d50e30896d5d5a85d461a48da48da9c51b5",
+   "a62df13ca5e15c35741567867891cd7b5517e3e9",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "5a1e1ccc64e95602635d98c60514c58ef7534307",
+   "ff5286575a6c7fdb601cd86ec2c76278b31cada6",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "5dab6717086835b542fdc069a5d558dcf68d5220",
+   "3fd0a99ea40e5162a18d755e90e15c58f8b9cbfa",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "50447b968fd60ed577f4871ee588640cf2a93598",
+   "b53da6f22a98956fa5554c196262a555d87a5690",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "e4d2e2c77c4a714da35ac6dd360f4d2c8adbbbd9",
+   "0264f09c393f886b7892e18d908ba4bc84b993c9",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "374f5c0ea621751e0efc838b42f284d4ddd19d01",
+   "8258da32459279275f8df09ff8a664522ccf4395",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "f02d54bd7f5888addad940acc16ad48f707c791e",
+   "90e0df722ed0bcad444e49b4549ab5bf4703f819",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "8a372cee16a6210f20a69d77a0503293667839a9",
+   "ac71e83fd2ab9583157bfce9177c71991c15fa77",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "71778ee0cd7de3d7ada0c0db5f20e5f8fd92c4eb",
+   "6e38ce7a26f5763a99a594012c9765858b17da6a",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "6f34ef1571a923bcad4d1f60f42a48fa3777fdc2",
+   "ab9071628feb60b9d2ccac6d084de346b81159dc",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "ebd930f6910d185da1802d367f9a92d9ef3f1f3a",
+   "f0c3f6e636221f377eed3a7a5e0b025f754b8722",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "18e6eb2b421688b25772339b4aeca3e6b153da1b",
+   "4595ec4c56abdcd70bca0c989525403a2cc53601",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "fc44e3e254f78ca8d4f5935117b564a6e933cb45",
+   "74551b6ea250c1de24fcc7a438ed821aa1519095",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "5c8822601909067418af96186a64bbdbcb0288da",
+   "0476d6f8440fc06118c58e36caec8cc9575b0108",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "ebf71f175382aa57326c25977131cb1656e12b33",
+   "12f9db6f8aef3123c8512aec5619e30b1fe1b915",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "bf6262f26cfbf3fbbaf8bd1c1e7ebf11a13a8981",
+   "873003b99b81f25d417942b46a9a2faad1e0848f",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "f591cbef0a79b5636d5d94d131e7a2b70ba59c51",
+   "06cabeaf21acd8f31e78079709ba586ba8f31ddf",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "ba2d54d627fb8acc31550313fc1739858df57447",
+   "b3b3b5de83fdea2a1445edd9f1bb45230a7dc84d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "e8b0aa9e87a041999c61cc2259d009ceade2b6c1",
+   "62caaa3ecf8edd7e90605eb06304aed0346d0db5",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "a34ce0378b840d888ea5e6965f61459cc689d177",
+   "2872e8bc50cbaba8137a2f284a6d21da91d56473",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "6482686b5fd610efb91f200c710faa6f8e097cf6",
+   "789b74b5593b77efcea6ac0dab2ac12d19807ce2",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "2610bb065985d96ca0f249fad68f05d99565b15e",
+   "958547af2c458df4ffda1d115755e57e36bd1a9d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "740895b805a29aa735ce7d38d3e13125a9e9d59b",
+   "97413c4840216397fa8ed5b8f041fb35ad96cc93",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html": [
-   "0f16cc626c25c500c1dfedbe7e99fadc68ca70a4",
+   "99e9bf4c7451c96f878ea1093a71c6773f5b1cf9",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html": [
-   "681dab44cd4390f991e0f92b62e5cf65d6422e6a",
+   "19639f8418daceb50fd72db5563c466e44bb5e1b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html": [
-   "d72aeb785a5e1b1d9b7ac560eab1be2f3c360523",
+   "8388262d65a13fe202eff7bca730d9e8269a9078",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html": [
-   "77c3c68a77caeafde1ef58cda8cb6e7ff94efd44",
+   "3de61cf23e33269f372ac4bcd76130f16a4a7cfe",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "e5592cd0891b84d764e05392421b8692dd496aee",
+   "3522e360059cd1711d1c05c6d43ba0690787733e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html": [
-   "a87451fbdce1ed25190a1c58d30df103dd12f27b",
+   "01987663ea961a4e5292c5980ba51a3d8f8a7a1b",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "631e1477c8055823914bec71ed294a2c8c32eb71",
+   "724108608a0990111ee9327eb302c0b9c68bbcb5",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html": [
-   "0cbf66fed61809cbd894bc0ce1952342085b550f",
+   "065d0185aa5a53b9b7e14ddb5a9862f131806d84",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html": [
-   "43dc43d0401be0521e6b4174a55f67429cbf4f41",
+   "2fffac47880e53995a838a710b6f89eaa0489760",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html": [
-   "7fe2baacff826cc8b3c13e4a81f60e3897df4332",
+   "0a3500c570c816a2b2c1f2a8a9de2bd6cc9dd888",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html": [
-   "c33155b299903c196404e8a09ac8114b011640f7",
+   "bb86346321f8698f9dbed5c7c638f2399c20cd04",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html": [
-   "eae3381ae927126b06371038823c423585e6b8ab",
+   "63b5c5a76b9674fdc96a1cc993576a8469637541",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html": [
-   "e1db3d1e59e260c85aa36b3d01efe592513d5e1f",
+   "77bee4533efec6f6b16bb093e5e30e6daf7de281",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html": [
-   "404392c8e4480efbf39b43acf9682d43ebb362e5",
+   "1545ccb90b52630e5b929e73934c00d02052d332",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html": [
-   "18cd15910ac434065a0595c964ac8f8bff5e9a20",
+   "4f5f456c89e1e6b4fcee3ecc9bcad38958d3516a",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html": [
-   "6fb87153b289115bc7b8769590a131daddb9c140",
+   "4c803b30288f0b2432ef1792db6f51aecbed7333",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html": [
-   "f1f759257f6380f2ac01e202927300783bfa676e",
+   "39671be7f7cb0f786e29a8539fb1a86bd878bc80",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html": [
-   "7a763d011c7544948794388d3872708a6b03dc06",
+   "a0d247f675f365031c005e5dc6f06f0e9e59bb1d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html": [
-   "bc7f41857aa469dddb9bf7d98f85ec24e1bceacf",
+   "2f787fc985bce1a79b55ab66f49fcc7fdcf404b7",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html": [
-   "34c72954464274c005bad4ec7078ee50c28f2b7e",
+   "4ad2229ff18ae6d7000c364db79f440309b89ab0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html": [
-   "6386f26a9f9f58b45146a45728030f1c996ea5a0",
+   "7ce79ded82de9e08dc51ad82ef72dab52ebeaad5",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html": [
-   "e9ffeeba0efa1c65290162ba6e98e54bfafb9598",
+   "be77219b39bca2c6596e068cb66ba02f75a3acf7",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html": [
-   "e00dc04118ced6d7435174b7c547bf111a49c1a9",
+   "5b3f4220a117383909fe4b47915252fec07a7b31",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html": [
-   "d3cc95adfd84ae83f1859409c6bffe158a2de57f",
+   "8bb961f3f7478db3080c4f49ad1f777dc76dae8d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html": [
-   "dbd4183bd7a5e522039e575e7042dc38402b5c1f",
+   "332f3826fe7c846969ca7f76716a538346d4237d",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html": [
-   "6e07cfb0990eea42f15892f44ba237c26eaf741f",
+   "09c9f0636d516f92808fdd362205945e4332bbf0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html": [
-   "8c54512a93abdb7102ffbe247f09a5fce71f830d",
+   "71785bd20234bffa0bbeec14ce8a0d2a73e31aaa",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html": [
-   "07e669ccf940f712c03469544255b625e754362b",
+   "8a1b13d201738a35b47790e3fa19c1666b46ef9e",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html": [
-   "ec2e9c64732ba247cfa6b7182762c5831f89f158",
+   "12403886df610c7ce3fa406528de1639d21afc7a",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html": [
-   "da52ddcc8795d55d6575cecbe4d8174a734c3312",
+   "a549e552350d428cb00d85722dcc1224eca27605",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html": [
-   "38e401993d8498ad2a31c61ad1e13f3252c8e2d0",
+   "1dc5657fb2ac346f664c7fd4f0fd66ada20ebdc8",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html": [
-   "3ae164bf11b4f755e6f54d20bbd0e17dee5ceb1d",
+   "e391b7273b9e68b04454e11ce0339c71c30939f0",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html": [
-   "759728b00b36553b662714852532e54730bf009d",
+   "23220fba182e27bfb905eb11026f0d055094dac9",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html": [
-   "7b73c8ded47dbca8ae71a4f92e442d030eabfb89",
+   "8fb47741b94d2c00f5ebb2cd53f4adcb4fd04f74",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html": [
-   "379763fc354a01b3ef81d058ccecc8a9005b53ec",
+   "ef8036fc23ac6752087423078e72c7979ed161eb",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html": [
-   "90417e90e712693334cd45b3a8069ffea2f853b5",
+   "ac23978e8775df2e246ad6b4910eb1b37ba9ff5c",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html": [
-   "a4e1bee0d77d185d513540dc06d78cd5facb3785",
+   "f6bb90e3ecbc4bfacb5cfac600c31d8f49568ebf",
    "testharness"
   ],
   "referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html": [
-   "4780d0d4926d7e027127448f2b77d1ea2d4c694a",
+   "9f7db2bd801316dc032f243d59b562e4efa2f2f7",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "d4d48c5202e7a6b365c93e24f15b96a24dc46bd7",
+   "93678e42af61fe5dafee8c01fb50979886f1faa5",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "bcd0a811b2e1cb630d871cb633492604d11609d6",
+   "1167119941cf461189c06f7e8fd1d3ceee037914",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "55346939f95cfbafae7ede4e0ceb3b0c3015b9d2",
+   "558f6538c853ae677105edcd71ce0c5aa4bf43e8",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "e377fc3771192c13bb2645971622fb184f7917fc",
+   "4ea91857c495a0fda2828abc15162cc14d415c0e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "2b2c1b287c854ff2b85c94946fcdcc9405792a2b",
+   "f243ee2656004ca5e4b456f8690d649e197c5f16",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "e4d5cd7dc6192d918bca15ca557ccc63244ba0a8",
+   "f335481c2119108933b9a16147bc4d3d9d726ab0",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "2361a04f5fa6907963cfdce2ec673ff03485f3e3",
+   "1284d299206185ae5a082f093f30cee8f6f89649",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "ce4ea6be8cf0ac618af5f9a34633a23602cb66c1",
+   "852270205abd6fbce7a6bbd76f60751e793837a6",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "2dc068ac4e5fae79ab0d6e5c9c2397913c47d389",
+   "b4036ad1783f841435da1b47a02f614db168e0bb",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "87e94c62d012a5f0e4d4c1711eb2307e49c8b481",
+   "c0907438fadc1e37bfb3ad751a1a7135a65d3420",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "b495fd2330545bea90f7164e588723a5d0de12d9",
+   "2e1bb1ec444034252c10ebece35b15da3789e652",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "8d6e5f548fd58af1b44d8798edb77a7b7c5f67b7",
+   "e9261bc57d58a9e28e171d368441b941b1b19359",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "5fd5bf6619463da516c9f0a2bb17f4f7d3caa814",
+   "3d46e709fcb0f11d8516d1363cc9da06def984ff",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "fb46a40ab9a34071655745d39599a51cd4f73e72",
+   "0b778f4997f1485f660be2be43b8d5add7bebc8f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "5d37c9fa6e80d587e107ec2ab40ab99c8e832df8",
+   "d5de49051f09b81a4ab6290e2d1d9c114eec975e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "efd91432012d924c7cb9e5d6949e1621d444f416",
+   "d7e2a54fd1a99189bf358b64b4c8928072f282f4",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "6198659416b66a805f0e7485d70888b7b4b7e7e9",
+   "ae40fbac02746b1024fc9a34a80192d38ba8751f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "67f0f034fe8b6e64d4323d7135ae5ae3e4bac673",
+   "10c558f7d23da4689ffc089daf07dab06809de44",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "fcfa56d773cef63f9c2c9eeb28244d906b337bd2",
+   "117dbf8543f88f7819d3dc839af7dcf04ee058bc",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "52400d6305ea1d858ef8f242dec308245c35ef12",
+   "c0d9f6c81a3c07f685347ac9388641f38c187390",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "29c0ced3a221e51a886aae99dd4a938562809e45",
+   "2099d0da89f08ee322fdb14d8cb64c2950ff88e2",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "7c8e98fa37c7bbb92c03d9d83518f5a105885973",
+   "7b12dba78c7840f69f802e8c931efb9f5633dca6",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "e67e90c809349dee9db0fe04253fa61195a86b29",
+   "729766edb534fd89d03a72bf4eeea678b0b3ded8",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "18667759ea989c66ea681d0539115309cec7f78d",
+   "3f7f04c97edbf25357fee774d5e7ee9735d96593",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "b47279c1ce6036cb80b46755a8381ac270728748",
+   "0fa59706d733b6d8b5254c8fcdca5b14a04f0a30",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "997bbf49e79710a67036deb9ce756485f59b03e9",
+   "9cd46c0db0dac2cbfb7b1659b845cad0f3c72f8b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "9472829baa6616ded9a7becc7a08709baffa67be",
+   "d913fd518baccf82b0e7297892c953d70a470a93",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "3668aee53c252962533b6fcbc98abd5bfd9a90e2",
+   "dabd9cf66de91a717eb4fffe1bd5e79a591fe095",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "2cd7df0252b6c3cd514230f6830486db32f82a9b",
+   "1c5a69f8f269ce61faaaa5832fa74684fec09504",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "3345a9ed2a5230f618963b0a500020fd29a4bd4b",
+   "08c5c1df2df79e1b05e5780bb5a3e4bd425207be",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "5ed0f06af2ac6a49ca34c5bdd7ca33a40f5cfb28",
+   "6edd0b6222d8dc4801f15b23331a709e27ccc59f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "cb9ff640eaef9aa30d13d174fde7d970c8eb9310",
+   "ba34cf586d204f28bd01fbd0a658265fd7ec2908",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "8f98188146694cb80909dd2a1d7373948aa18096",
+   "6dc6e580fb1adfb352f3dbcf9c5a7fe2a561c8d8",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "8c134e9c3aaad6aa1f610714752a2d52eb54b83a",
+   "1869a4aeaba5d6bdf9efa7239059041619ae7ef5",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "7eb82506233b6e096cd6ec3cfeda542cdb065243",
+   "9370940f5a1de986f71891f9c886dd377f0a74c5",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "35e905c392cbcbd63b3f432873c80ce12ffb82a1",
+   "6364a6bc8465899148718bfda0960e33bd04f764",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "871679a6eba10077edf0736fd89fb18f62a458a4",
+   "50f9ef60600c3e62829b356c9d2cf5e7c9479ad2",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "ceb5586630afa439014f63e39be956c6e5654b61",
+   "104de66bb88561041c9b8c178ad89a8b6e6e1ba9",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "3ea90747c0f5900c7695ad7bd408ffdd9913ed2a",
+   "c253955bd2e4d1cacdfac80a6bca489205d1d430",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "5b89eb7aedfa3fe90e6bf8623c7a731342459a1c",
+   "00058b3bfde6bbfeb0c1a3d51e3e90908cf32516",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "e750aa9186ea06fd37ad1643984fa077eee04f05",
+   "c7c15bf7f361e057b2410f0c74508171df0094aa",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "0665510a6475de5e7e62308b62b00001bf16fd54",
+   "3c28f7795e8bd0f4afd8be69793b76268a19fb4b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "a93c94af59adba2e14222e6a2aa52b40eb5f30ad",
+   "c14f0f8a6d3ae371aa83260c4b6fa5949d5f4fb8",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "6665a2f354a827a29b9427a9237cf29e210ce72c",
+   "0a7733497c72a61b8781d3c71a95a909902b9ece",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "b380ce0c91e64644d486eab62ff31e4f8d6463fd",
+   "7fa1acae0d67bbfc92d6b4223556dd483d036f92",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "1894667f01eb8d8bb20b1410711794cad5a98bbe",
+   "b21bad37d592a055dfb370f4d50274d297655619",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "033feffcce4e526abd27bedee4118a6e152e9632",
+   "6ef1bfc097332ca7f28298d15bd71a425ab4422c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "1f6b62841e0d028e50a46f9f7c1ffb60031b4c9c",
+   "a1a9cc6e212f05c2c5432cd95aaffeea1970f80a",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "88a3e42a568de756cf1dd05acbcb4fd0b430fd36",
+   "bf66c513f8c6a98207d2758557d0fb81b13c2797",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "69d835c3d83eb91e0d2be7adf91cf836e2f9376d",
+   "e00dbee878bed96c2a3b0cc3fc27a8b934e0d42c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "ffa234c29666978ada0495b326b82f4d9f895010",
+   "fab4c3750452981d09ac49f55e126b2dc3ed49f9",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "f92abf01b85164fa38b57e37741885e94c23585f",
+   "922da3091e232636fa4824c8ffd22ff8e0f43edb",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "953805774289bd92bbe599315c8da23a43ec52df",
+   "49b72b4b54cd51e5f553efd627f2b11a636b577c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "b6191fed6954ab4a85d785bfd70746844b5676fc",
+   "599ba30a37a77d476070ea5b3b727dc2afc833e6",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "635ec9d82cbc38a43a016ed350ea0ee8e3c93949",
+   "d456f4fec7be24155dc8c10f0a2b4638b511ae2e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "00848d6602feb73e5138955e821eeb3e26815d7c",
+   "fd6e2e0f3fa81b487c36dc8d1173ad06c2b28d5b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "3ddbcee365f1eb5c8c1baa174d90dfc8953cf275",
+   "b65752bdfbda21f09ccc83fa8e7c384501706dae",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "00cacb9060ad73344a781d76a3b22c1927c43e5f",
+   "599558d826a246532d17d74449cf1d6642dbf6c4",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "68b8f69e5c63ee92e357c722a53957439869bea2",
+   "edc3544fc94b0ac8c562e7ead343c8e9261d4b81",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9390b64fde83b9f5dd4cf5f087d54a4073899d2b",
+   "0bc0ee857521d5fb1ac42297855db28fb492849b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "1c12c9ca24cf58e414c9180d4d22fd0fe380df9b",
+   "1f9110ca0008510713279440ef5b8ebcbce04ef9",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "a76c98066ac57da1d47708f1196b20f2a7d28434",
+   "1bcc264cf04faf25d1caaeddca8f76aee5ebe349",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "dd1c82dc6ccc916ff778737735ca9194c8f732ed",
+   "c74f071263bd0dc3c7f0c1fc31cf152ad77eed52",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "307c7621135d2f80e90b95d5da4af5af050ab5d2",
+   "d1f0c2e1e91f73cfb5219b30c46fafe072365857",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "30530e6636a633547ec810103ddc19c19d14a742",
+   "9569bbb4d5d4eeaa0535fdc4c85760e1189a4467",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "d6e1c283c399c8e6f67df8329bf3f5ece3a68d7a",
+   "e527876ac0e04d144368a1471096ee6fd95663e4",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "19666416a90c55663c58881674f33d0488711cdd",
+   "1e7cb029ac17f5a585e1afbf5a7d38a19a9d7c68",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "f05d225d8111bc8456337f80c001322594b2b4b3",
+   "9f070f67463d14b1d4d9b726472d3e9703a06d5c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "efa96f50fab36c2cd14e2154418f05a2c12891db",
+   "a6f3cc71c2723800a28db8b9f0210e09e49ce87e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "ecc377c6870cec8133e04a5e61d37a8246bae319",
+   "7c2f24e314c22a89c622baae0fbd8c92ef6d3206",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "c5b47ed3bbf20cabb741c15360d27d5fe616d7f8",
+   "6a530fc09ed68c037e6fed2103f7156b9b49085a",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "f8b744f618cc7fcb3d4144c5bcb19982ce6f0a9a",
+   "5e6ab1985ac62523e00f0a0b39348edd1e834335",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "6a70b5b42a19add193694f3790cb9430b2a8a736",
+   "cc182c1098effa67b4df0fbce6cdcf3d81d5304c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "36757f5dc623ac42ba99188f783bdae3a2618aef",
+   "6f84795a62142c072aa30764d37f376c774bd972",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "c75ea8d74cf6b60c8531a785d7dcb0e6ea467a5a",
+   "5a17464ef25b7fa4188442590b672d764ce9c590",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "e765d82001eabb5f4ac179dfe6a2c3fca5082db8",
+   "d547c4b15d839a107709ceb3297f74b7527ca428",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "5d2c1268cdfb5fd787e6ab36ee8abff3d7275742",
+   "3e2b15cefcd6072a04e39e1b47b304a05a732645",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "07850f1d2f5ca1b47ef63eef53ac1617e419ffd5",
+   "6f34b7f039c7352cb80b1cd6a6f12aaff5f90485",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "bea31157fe5c877676d1772699efcbe7171ad547",
+   "7b3143e624f08fe05ec5e242d9ddca430927d073",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "b1e6128a3ab5e421a2d71a55e6ac49022b086f30",
+   "00840f73e6237fb7cc150387931fb5c69bf883aa",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "187644769c25c72fdc1e91ecdbf08d64f5a7b4ae",
+   "9d1a36f454a62075cf624f6d062eb937a3282cea",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "621aaf86a285df38b4298ec486e25016d968f004",
+   "f50ba2946a6dd838ae87ec816c58eefc44c87dc7",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "aa5a9ac86bb5bc899ad21444c9591c33273ea09a",
+   "ba6b200df2e853d930ff1c8fe02c31e83c237a00",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html": [
-   "c2201e9c4e210fb68f52b924d96ed0268c09ffa7",
+   "65131c48982590adaa89b7aee1ae1f0c05e42e3c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "2c16b549ae919f7f4524d0f455434df0456f1e34",
+   "4076b3d0a9fd0f7c6a8e38c5e1c641a1abc13abc",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "2c66e693d31e99cca092505531b88f52ff9fcff8",
+   "2ad2e9d515854493eb0c751803e46f65663656d5",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "e6c6432c015f5f4ab5d987bf68d7415fc5e9b3f5",
+   "cd641e7b903b3e11882711838e4361a83d10f8ab",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "f5b7e511b3622712564d0bca03dcc2131b983ffd",
+   "699a94f9a1cf2d73a8b05216d4fc2f97f9af2fa7",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html": [
-   "526e24ac4c9efeab0a6dbe15693a9b4827318055",
+   "0910fa386b2cba23f49b41749b208e1a673f11c7",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "686d4feab2f2c84c8bccb587da23f8c5509c8d7c",
+   "26adab8772b19b17ad565497cc42213fd96adfe5",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html": [
-   "63195e03a244cc0ba3c134674384ff5569a983c5",
+   "54b50413161142670d28e58a745611b728cb6142",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "ec52992fd9273f342503920e6aea8fd565ad52a3",
+   "61dac7d3fe86ada1b8f80f90189e89100a0f17eb",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "c0aef90b38c1c49970172be05f5aa6481e849361",
+   "0bba74c770d9763296ebe5ffe187d46fb39afffd",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "76e883fce0d1c63e2f76fa844e352068cfc2a1df",
+   "87df303a657be8d3606f9432335886123e61b565",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "00e67dffba8f89f7134fa56a9b3e9ac424402426",
+   "ba575736b5ac6e0867bbdfe5c8d3814dd05a3abc",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "d719b51350699da19d25410d014d34daa60343d4",
+   "47b497f2b0a2e164d9ddfca3a8a01f4d8da34d1c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "21b899d88f284e08caedbc10eb97765e9b6f63e9",
+   "f284f6cf44fa63402ec6abdb12d6ebdee305fc7e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "e83e55eccef091c41d11586410dc4e8d16e2b64d",
+   "4f5cd420094dbf33c0390b05054595c0b62d469a",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "fdf3cf38c7559d122dbee9b575205f009295e48f",
+   "40e927d4da00f8ec3e2f04ff089c3eb6e9f43edd",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "ff768ca6241dd343e3a8d5afe6adbae81e283118",
+   "fdece9a07e232a81aaa2d7f8399249e41ea95912",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "b36050b5ed1efb9d3dd30bcc766842d5783068ab",
+   "f1b517ebbf766d0eddd1bd2f258a43620ac18c7f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "943ec5cf35f98afdf434e35d69533d4ddfa88294",
+   "5cf1f7c7ada0df74a272e36ddb968086cfdf907d",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "44cf0ddecc4288ebc542758a4faf09432e6d0405",
+   "4b97c9b6c562079a220aa040143f74c1e423e703",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "9df29013d07988b97b309b6c5b2c03066ff21407",
+   "1ae3c471c51a8200f5ae0c3a96f55bd90ce2a1f7",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "5b392fb53f5cb8a7cbaddbfa561cd2844a0bfab5",
+   "00f20b1e7e0e98d0f48024630711112933344713",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "7d6be6e4dca2400da2ee629ced71523e089cf57b",
+   "a39a72025c598a701f00654db3dd32d985557c49",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "29c554a2fca1351fe172d25cb40097c67a0b5df0",
+   "4c42aee6507b3ce174ac3298775749852b97d2a4",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "2f60784c0d99d4549e81719c14692d18f1db5789",
+   "d03e62030af767da80fffce83464768067bbdb88",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "179877264a64378893de0789164e2cae89bb143a",
+   "3eceeff71bb0fd9137cf083a863ad64fba65330e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "de46596f96af49e6267126706d413273cf3afd02",
+   "eb30e847d25b466f3bfe49a93ee251b79331a653",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "d519295475bb5bcd8ef97581e870308254ee6596",
+   "7c2b2347b1b1cc1e98d10e2e79983daca0b86c55",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "4ee0c81a535c25b43d7c703b60232c2edef587a4",
+   "a57e2a050a2dfd8f24a7f65ddf84e013274c51f0",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "1db8f0d996438fdfbf9c4df2bc8adb9b9c3d7a63",
+   "ac03ced7b71f8c42ad89b6059679eff86622f9ab",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "5b1533620e61a33c1a6c00d3bf436fb65a3e27b1",
+   "f08ddef240d2170db06f1da138917b3c7e2b4631",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "30dee3506adc27762c2ae15d4f1b808a24c2ef74",
+   "1836ebdc7566dffd57fe2763aa84220673f35c01",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "31b50bde1c8d41d0b591d4d327a504102c0e5f03",
+   "65b503d1df47e826da0c8f3b1bf6bf42cfb95af5",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "cea04e81a0f1d0d5d2170c50ba56acdc681ba14a",
+   "bc7f9ad7cd4b24885d2fe894b00c47a943de393f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "0e646941205f2a568d7bd91f0df79e0ebdafe650",
+   "3bdd36afe7f0df1a7c837786d88d023bc075e000",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "f99e0f0ae3070b1a95bc1ae7c939766c02146c5a",
+   "732d621c87ae857dd1bd579c38a6cfc1437738db",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "1bbcfbb06d347bc4d2fcdf62420b7d8bd506e972",
+   "8dfe8880440fb2ff076e82074e675f7e3a899485",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "a35c885ecebb01b6b4cd0bd132a359342b552343",
+   "89cd0526660408263c18569dcc74e6250b993e2d",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "7e46eee5ea070a6221bd84c825bbf7624836c1bc",
+   "95976e0878fb7edff6de4107f7dceac3c9b295c3",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "3457d393c266820832ed8d83b393165886db421c",
+   "e5a62b3e07f54a1d0ca8b4ffe6c1d8b99b3c47e3",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "690b427f4b1daed5a1d2107bf00e2393e711953d",
+   "00c5d396018f34065e811098dce5d783ae9ae2b0",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "7c1838c5158c940798d0b127fea7c3d2ca62a4ef",
+   "5a1c26f8ad3c4f948b3f90c6c5f3e5ce52a54338",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "b891494cb8875093a8c011a4ef6ba506b007aa20",
+   "c1d5b4ccd7c2b97e18209e676553e14f33258df6",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "4c07e9aeb6614a23b14c8b0fc588b07b0b801816",
+   "c2a56c863ce41aca1f8b98006fe9e7ac905c4b72",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "58c6f098cc16449fc5e191942fd677b42fd22f14",
+   "9c399c3bfcef445cbcbdf339ccf3fed69cb4e877",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "31da00276bde4b6f8b04d5ccdef65750a184e981",
+   "60ab186daa72caad1d040db8422e3d5d8b2f837d",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "b4448f4dac4f7422cad354645b7abe64ab9b4d6e",
+   "748af8f5f86e757f7e437a23f2bd21a8e631dd9f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "a9c58e69fe07162d1c44dfccd9e905aab2a7ed52",
+   "0d30bade3fabff71673bff4e27067b236a641409",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "71e9f32ec372e43da2bd2971ce50c55a43c3ab00",
+   "dddfbef0396fb8a51c822594317ff2b618abe42e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "da7331ae14d1d064d102e3fa71f402abbfd6ae35",
+   "30ad89093ec435e7cdd9232c2042390badc3f7bd",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "8fea31f3c85a2fa6ee1e71adb70ca1b34460fa5d",
+   "10b3610147636ad8daaab09278f5e04ed4d62769",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "476ddd04ec52eac60717104497fc847161b93e26",
+   "9655342103fece937ba00d9c7b58c9c207089f53",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "a583699ffbce0da85e769d9c3d318130bb94f2e6",
+   "719669da9a2c6dc626ea588bd3c0a029d2eb2411",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "6f60845874f02f56b65d702c59947bc28b6688f7",
+   "b15ff922c115da667c25c778cfd57cef9c0b721c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "88f9b2ff185a04088d203fc0a6b8035e08096935",
+   "4aaff556215ec19b89e3794acf1f08d855f3e2ec",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "c36005af7ab6108552509ec90fd840db58ab35c8",
+   "eb55e13e77dc3a1fc0179e61df027c819cedc4a0",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "1b67733527e8f4028ea8ee48c8b154cce63b181f",
+   "4ee8c7941053a0bb64721652e9ba0de0d601e78b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "0003f46e35175fe8d18dc82953e57a76c30c5eb0",
+   "5b8fa9cc474ea91378a2a4b60c22291366023820",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "89749f24178b7dd9cc19a36d06416ccc85f25c58",
+   "5504dabd95315ecb01693ec301ed662265474756",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [
-   "3e9b3473de133d9503fa33bd3af13d2bc5e8b444",
+   "e9054bff4305d29c6ac58f92dcaa40b6eb776d82",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "36911507e2682cfc10afd252bd52b65796703919",
+   "e9940a8d929a59e4ef1afbb6a1bc76a380ae9bf6",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html": [
-   "e8487bca9fe70c665aae90d7c021204d29356f1f",
+   "10b0d60b2f902400bb7551f1a9485b8463aa243f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "f3a2ea7278272ac5e86b4fa543c13ea9fda0f106",
+   "391be7ae10106623ba499b6f25370970ac5e7647",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "4f0899351163f68636c70c098f8988e85d9642a7",
+   "020a95d3bca8e938f32ecbb2cf6ab225ffb65d7c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html": [
-   "7cae21045babcba90aac13bb5b6b45eec8a2f715",
+   "50269b158f11e49316a1934d6d80b677520ca1bc",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "59699ea0c70495429b5e0741157edd0243e5c87b",
+   "8b4d43c07fa06c10a3e3cd287e6868791786973d",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "a0e4f7aae5aa29ca26c9ed90694f04ddb56f04d4",
+   "181944a1b61e50f4ced2461b59f877110641b3fb",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html": [
-   "39bc55b03c79d032b417cea53f86b465dc45a018",
+   "d93785c6000ad5ec2ae1773d9409cf980861c486",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "842e32d571fe2af5253a171eae12bdf8c3f39848",
+   "7329e02bfb1a805f7d2137de75e7605159ce83f0",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "15103438ba6853acb9b111fa6b3bf883d46bdaf7",
+   "4f3f00a55f746218e436eb27daec34ba130462b9",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html": [
-   "37e4203474d4189565b237457ee29fbfcfc12278",
+   "0c53605d2fa2b62f7d37946ec7844c33cbfaf896",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html": [
-   "39410f46c6538378abba4e442e7b8cf92c5daf97",
+   "3a64fb26fe6797c794404cb6c33dd52a729e71a3",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html": [
-   "74c79e9fdd8dbeea33993d222e162a777ef61a5f",
+   "a228469d11d46cab2262af31cf0ba06c95e091c1",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html": [
-   "5a66ee358306d08eda6d9ff4a089efcc7acb7fc2",
+   "7428dbf85b95652a93788b2fa7b698cfbe37d30e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html": [
-   "a32157dca017c4df12157a8242eaffb6db4cf5fe",
+   "ebb22260c75ea05eedc46df3801fe07e380e6d7c",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html": [
-   "7031f36f36f85e57642249f5c84d8f9c9f9cb088",
+   "39b2048c8a27099fc9b3f6eefbb5c205dec13e0d",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "6500c7f756c0ccafba428c8c386081cf7d5b524c",
+   "b9819db1faef78d5eeca35ca37f00fa457928c2e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html": [
-   "5f10dd7f5e9d8535c24b8170eac6cf8e1757715d",
+   "65be8f33e0aae71b09cfd2989eac89674acd2f3b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html": [
-   "85ecb5e6511ba5382b54de7c3be4ff70c92144fc",
+   "abb3d72fca7efd440a89203b528c6f0b3e772644",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html": [
-   "c4207cf8b3037faace459306281e9a3a6bbb6818",
+   "87d2aeb88e548ad976cbb253ff148e246f553c0d",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html": [
-   "359326b1a007d5f970bed5c3bef9594b7fe38b3f",
+   "1989f796e104afe2a16a5fc60b6ddaa87a3815b9",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html": [
-   "2f6ec65f99f2acfc03c5f4b0f5566a4b1c4e0de9",
+   "addd685a0da71b2c7047054b00c5f27fa92aff87",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "8378e3f1b165e919e827abfcc121bba4849cf6b5",
+   "4c15c563c2403c04722650bc6d3aec88ce1e7ffa",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html": [
-   "735dc7639f4ec880b195436ccd748d3565178d30",
+   "45f57513a6bfa8b7964cfa4ee35da0b8b6a0b0d9",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "ba6d9abb3735cbc0f5813cc175bdc54987c04bdd",
+   "c958f31b91f8fa0ba40dfc48e8fb573d0a219bf1",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "0d8231cfa4cd7849b182c2d6a613d8087ba91eb8",
+   "39005dc819d2a5a43719a0a3a45fb5fb3738e0e3",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html": [
-   "82296dc3819291f549bd87659b6d4b47890aaf18",
+   "a51d2fc5ef41a3f64af4d9ef9f30807430be6c48",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "7a7c19a6d8d96b2a6db20034ddfa0fda3f2784a9",
+   "9ab1701e208bbf3c0590fd558b948d1ac4288485",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "241ae8b800269821e7e89f9f777205ec75ed6401",
+   "e34b1e98a320192ec351bbc24352ecd5b4ba0e87",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html": [
-   "57e56be554374dac3d33c94aa5b7c761e31cd8a2",
+   "3e4e70070e023e7fd0ed6e04f013882317719c6e",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "98738a646dfa3043fa83b21235d609faf4230a9f",
+   "025b656bb760633c6527dd59394cbc37317b04ae",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html": [
-   "3e504c04971142b55760ea712bb408d7ab9c747e",
+   "600cdb9fc92a13e2c8615191f9cce1ff22ad1e4b",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html": [
-   "f48e258f09312c359b9666afa79a1f3e9ebb0d5d",
+   "e95715a151035fe3224154ed2bed83f240e3a65f",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html": [
-   "59e01959a1028ae4d0d7bac17b4fa79870a8f0a0",
+   "b9f74bb358e03ef257cfcbdb9b950e6dbb20c436",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html": [
-   "32e8231f01daaffc8b43e07721afd25fe9f9c657",
+   "3713018b868f5f2d8d5e7fd585e7fa73356f2193",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html": [
-   "2d391dbbdf5c4947cbec21ae695537c5d7856a23",
+   "fb74c67677ab737959f02566da31306f7bbd8d2a",
    "testharness"
   ],
   "referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html": [
-   "0bd9d4a42c83be578ad1dab6f48bc384bebf2972",
+   "001021fe4a1e3a8a2b205ebd9cd0aa6d68839047",
    "testharness"
   ],
   "remote-playback/META.yml": [
@@ -451422,7 +451449,7 @@
    "support"
   ],
   "service-workers/service-worker/update-registration-with-type.https.html": [
-   "b712c30f71e9a81a2832c0cd5afe7f5630e34071",
+   "e7d3692812eb8a24f253b87e157f4a4366e3098e",
    "testharness"
   ],
   "service-workers/service-worker/update-result.https.html": [
@@ -455846,55 +455873,55 @@
    "support"
   ],
   "upgrade-insecure-requests/animation-worklet-import-upgrade.https.html": [
-   "38e89eb8bd6eac913e4dced157a04a4f55e3e16c",
+   "5f65f2357fa462e9668aa20099271cd8508a832d",
    "testharness"
   ],
   "upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html": [
-   "87d0d2aa2a96344f9c0bdb1872f1f1780a9b1ff4",
+   "0e2c86e83a63b454a834df80a8213d1cce5d3276",
    "testharness"
   ],
   "upgrade-insecure-requests/animation-worklet-upgrade.https.html": [
-   "8a68b2d94ab1884a2356d6a70d48dbc719ea3c85",
+   "208e324a99636d57368dcd39c0c5f77d969b286b",
    "testharness"
   ],
   "upgrade-insecure-requests/audio-worklet-import-upgrade.https.html": [
-   "56d7259647c3439adfb1508261c803b2e927c5a8",
+   "d8d44a6a0e5df2529f388f0552114d16abcb5303",
    "testharness"
   ],
   "upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html": [
-   "2e1984f601742d5c47c97472159547798f6802b3",
+   "63848c60d8c145edc6dccf673c047d26f91d2570",
    "testharness"
   ],
   "upgrade-insecure-requests/audio-worklet-upgrade.https.html": [
-   "91d52adbdd3e7a6ccb7421d065d61d6a0e283014",
+   "52f1c4d5f6962651785981b710628feb47f3a427",
    "testharness"
   ],
   "upgrade-insecure-requests/iframe-redirect-upgrade.https.html": [
-   "72047493f1733f5a7af17036cf592371782e322b",
+   "4b4a21ce919524677cec64dbd6928ad3ce3bf8c6",
    "testharness"
   ],
   "upgrade-insecure-requests/iframe-upgrade.https.html": [
-   "60c5aaaf95e73ac136682919cdeb4ac95bbff6e1",
+   "53c9997ec2d00c996a84338f2e6f3e068bbbb27a",
    "testharness"
   ],
   "upgrade-insecure-requests/image-redirect-upgrade.https.html": [
-   "69c3f1469e7a178fa1cb5b278ce4f59307b94c16",
+   "5c7d8934c2e9022d98e32567a61b604f6c8f1369",
    "testharness"
   ],
   "upgrade-insecure-requests/image-upgrade.https.html": [
-   "5ab6306ed46179aef07c95829496517468e66d49",
+   "6f897050d48efc07ed50e19bfb628f732f315029",
    "testharness"
   ],
   "upgrade-insecure-requests/layout-worklet-import-upgrade.https.html": [
-   "ffc73afc42ab1041cce3bd7f2567e27509d18204",
+   "6e9ae4d36f207b7c31c0e6b1238e1abc1bb9a970",
    "testharness"
   ],
   "upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html": [
-   "c9c953170011480cff869e03eae9d2e8a44c9a76",
+   "d04165f32c390b22f9974dd868520b5cc7333597",
    "testharness"
   ],
   "upgrade-insecure-requests/layout-worklet-upgrade.https.html": [
-   "7cbdff3902c12e0b93d7a2af68eda731f98ee5ec",
+   "191ac12d3cab1c7caf2c9d63025b815d08c00cc0",
    "testharness"
   ],
   "upgrade-insecure-requests/link-upgrade.sub.https.html": [
@@ -455982,7 +456009,7 @@
    "support"
   ],
   "upgrade-insecure-requests/module-worker-import-upgrade.https.html": [
-   "0522051ebd49cab1a3bd4753cc22f9dede34820b",
+   "22c1600e13609d9292029f42193fb78565a68935",
    "testharness"
   ],
   "upgrade-insecure-requests/module-worker-redirect-upgrade.https-expected.txt": [
@@ -455990,7 +456017,7 @@
    "support"
   ],
   "upgrade-insecure-requests/module-worker-redirect-upgrade.https.html": [
-   "132663e3652b110b21a1b14d0887f26b7c753d7f",
+   "936a7944b4655ac2744af401b502b2a4e28f1aee",
    "testharness"
   ],
   "upgrade-insecure-requests/module-worker-upgrade.https-expected.txt": [
@@ -455998,23 +456025,23 @@
    "support"
   ],
   "upgrade-insecure-requests/module-worker-upgrade.https.html": [
-   "a4be5ed45a9db9bc467b1a70878b307fea985785",
+   "6de610a302f86f61df933f96f6d1a92a2666a4ee",
    "testharness"
   ],
   "upgrade-insecure-requests/paint-worklet-import-upgrade.https.html": [
-   "96d68e260bbcbbb5f5c954f9dd8ea9ec0c9258e8",
+   "da52df5c9984521dd80dacf4b28e9e0c7a5b8842",
    "testharness"
   ],
   "upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html": [
-   "0675c6ab0cbefda3007b0160cdcbc5f77dde3db6",
+   "b70c103da4c607f904a60eedcb9505894837a0f9",
    "testharness"
   ],
   "upgrade-insecure-requests/paint-worklet-upgrade.https.html": [
-   "b4f1aac04dea30a5974fd021c15bbf6c349c3723",
+   "3f2790a1092267e23e489b2ca181d99286ef0f42",
    "testharness"
   ],
   "upgrade-insecure-requests/support/generate.py": [
-   "2676d0c68dea98c10413e1ea2fd239d457119afc",
+   "8c8cca21273013693d94ecdae3bc401f08dc1241",
    "support"
   ],
   "upgrade-insecure-requests/support/pass.png": [
@@ -456034,7 +456061,7 @@
    "support"
   ],
   "upgrade-insecure-requests/support/testharness-helper.sub.js": [
-   "d7be710dd24b750a0d214fd8d24210c2ab3f9802",
+   "70378edd15e6a9423c91ca6d301f4e66e195e998",
    "support"
   ],
   "upgrade-insecure-requests/support/worker.js": [
@@ -456054,15 +456081,15 @@
    "support"
   ],
   "upgrade-insecure-requests/worker-redirect-upgrade.https.html": [
-   "19fbb1fc5af3b45817381587da8d701f5f0d790c",
+   "486965c438698fbb16e8832ec3d304c4372b4075",
    "testharness"
   ],
   "upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html": [
-   "91ff96d978c3ba8e5e1f01b3a284d2f3d4d7bfb2",
+   "b2ce2cfe4043d2d022a775c77244144b4dfdb5d2",
    "testharness"
   ],
   "upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html": [
-   "9fb4f853452ce9ffe795c803e22d18b1cb54c311",
+   "1639363e898b8faae7cb4fed0014696e6147d8f5",
    "testharness"
   ],
   "upgrade-insecure-requests/worker-upgrade.https-expected.txt": [
@@ -456070,7 +456097,7 @@
    "support"
   ],
   "upgrade-insecure-requests/worker-upgrade.https.html": [
-   "9f2cea16b93510c9679eb7cbd27662b4d51fbf22",
+   "2b0a6a757a2c1833ed772b45d4d23e6d1687f395",
    "testharness"
   ],
   "url/META.yml": [
@@ -463134,7 +463161,7 @@
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/regions/support/scroll_up.vtt": [
-   "0b88020d29f680718e95d80a99babd926d40c039",
+   "c2c2ff36ba48ca1b5ddb873f0190635bd956b878",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/regions/support/single_line_top_left.vtt": [
@@ -463386,7 +463413,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped-ref.html": [
-   "ac208c8f1299d28789a6cdff3e8d2ff411852bc0",
+   "f568217a1470a0d3e05308564ab0b69622d5c0a3",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped.html": [
@@ -463570,7 +463597,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped-ref.html": [
-   "4acb7779df94c19a44e0cb08bf07f679be866d62",
+   "b8b6025c31d1686867095dc9834c7c7cded7b072",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped.html": [
@@ -463738,7 +463765,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped-ref.html": [
-   "1c91eb7578f848146b4400a3f3c48bd6654781b7",
+   "a681294feccbe10427daf6cbb5dbdef2347303f0",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped.html": [
@@ -463970,7 +463997,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped-ref.html": [
-   "afcc80c13402dbcbeaa046af74c4b2202b86dd02",
+   "3eb92d702acd5dce6faf79719feabced9a0a8db4",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped.html": [
@@ -464234,7 +464261,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped-ref.html": [
-   "ec2f45926a2431c4a263ef75efba247ed0c71d06",
+   "8b9f12a4e0b1ea066bc56f8e9c15da58cc86d4a3",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped.html": [
@@ -464410,7 +464437,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped-ref.html": [
-   "aee2b7db423b7c57388bf099c75ed52cd837f326",
+   "5f32a25d3fd76dda2602e3fac84329528ca890f9",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped.html": [
@@ -464474,7 +464501,7 @@
    "reftest"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped-ref.html": [
-   "6a7e65867cb087f7e767e98742154c3c2c06b1c2",
+   "394549b1d83b7f1ae0f74e07351b1a40c44bb3b9",
    "support"
   ],
   "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped.html": [
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/README.md b/third_party/blink/web_tests/external/wpt/common/security-features/README.md
new file mode 100644
index 0000000..45cd74e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/README.md
@@ -0,0 +1,4 @@
+This directory contains the common infrastructure for the following tests.
+- referrer-policy/
+- mixed-content/
+- upgrade-insecure-requests/
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/generic/common.js b/third_party/blink/web_tests/external/wpt/common/security-features/resources/common.js
similarity index 97%
rename from third_party/blink/web_tests/external/wpt/mixed-content/generic/common.js
rename to third_party/blink/web_tests/external/wpt/common/security-features/resources/common.js
index f1574e9..678d2a0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/generic/common.js
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/resources/common.js
@@ -5,16 +5,6 @@
  *     method's JSDoc.
  */
 
-// The same content is placed as
-// - wpt/referrer-policy/generic/common.js and
-// - wpt/mixed-content/generic/common.js.
-// If you modify either one, please also update the other one.
-//
-// TODO(https://crbug.com/906850): These two files are going to be merged.
-// Currently they are duplicated only to avoid frequent mass modification
-// for each step of refactoring, as these file names are hard-coded in
-// a large number of generated test files.
-
 function timeoutPromise(t, ms) {
   return new Promise(resolve => { t.step_timeout(resolve, ms); });
 }
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/parsing/z-index-invalid.html b/third_party/blink/web_tests/external/wpt/css/css-position/parsing/z-index-invalid.html
index ceb7448..d89720a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-position/parsing/z-index-invalid.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-position/parsing/z-index-invalid.html
@@ -14,8 +14,6 @@
 test_invalid_value("z-index", "none");
 test_invalid_value("z-index", "10px");
 test_invalid_value("z-index", "0.5");
-test_invalid_value("z-index", "calc(0.5)");
-
 test_invalid_value("z-index", "auto 123");
 </script>
 </body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/z-index-blend-will-change-overlapping-layers-ref.html b/third_party/blink/web_tests/external/wpt/css/css-position/z-index-blend-will-change-overlapping-layers-ref.html
new file mode 100644
index 0000000..883ffed
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-position/z-index-blend-will-change-overlapping-layers-ref.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<div style="height: 100vh"></div>
+<div style="background: green; height: 100px"></div>
+<script>
+window.scrollTo(0, 100);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/z-index-blend-will-change-overlapping-layers.html b/third_party/blink/web_tests/external/wpt/css/css-position/z-index-blend-will-change-overlapping-layers.html
new file mode 100644
index 0000000..3adbda8f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-position/z-index-blend-will-change-overlapping-layers.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<title>z-index, will-change, mix-blend-mode on overlapping layers</title>
+<link rel="match" href="z-index-blend-will-change-overlapping-layers-ref.html">
+<link rel="help" href="https://www.w3.org/TR/CSS2/visuren.html#propdef-z-index">
+<link rel="help" href="https://drafts.csswg.org/css-will-change/#will-change">
+<link rel="help" href="https://www.w3.org/TR/compositing-1/#mix-blend-mode">
+<meta name="assert" content="Tests z-index, will-change and mix-blend-mode on overlapping layers.
+Passes if there is a green bar when the page is scrolled to the bottom.">
+<div style="z-index: 1; position: relative; height: 100vh">
+  <div style="mix-blend-mode: multiply"></div>
+  <div style="will-change: transform; position: absolute; bottom: -100px; width: 100px; height: 100px; background: red">
+  </div>
+</div>
+<div style="z-index: 1; position: relative; background: green; height: 100px"></div>
+<script>
+requestAnimationFrame(()=>{requestAnimationFrame(()=>window.scrollBy(0, 100));});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers-expected.txt
index d0e2635..3ebcb2f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers-expected.txt
@@ -2,7 +2,7 @@
 PASS testing tab-size: calc(2 * 3)
 FAIL testing tab-size: calc(2 * -4) assert_equals: calc(2 * -4) should compute to 0 expected "0" but got "12345"
 PASS testing opacity: calc(2 / 4)
-FAIL testing tab-size: calc(2 / 4) assert_equals: calc(2 / 4) should compute to 0.5 expected "0.5" but got "12345"
+PASS testing tab-size: calc(2 / 4)
 PASS testing opacity: calc(2 / 4) * 1px
 PASS testing tab-size: calc(1 + 1px)
 PASS testing tab-size: calc(1 + 100%)
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers.html b/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers.html
index 995595b..e9ade71 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/calc-numbers.html
@@ -71,7 +71,7 @@
 
     verifyComputedStyle("opacity", "initial", "calc(2 / 4)", "0.5", "testing opacity: calc(2 / 4)");
 
-    verifyComputedStyle("tab-size", "12345", "calc(2 / 4)", "0.5", "testing tab-size: calc(2 / 4)");
+    verifyComputedStyle("tab-size", "12345", "calc(2 / 4)", "1", "testing tab-size: calc(2 / 4)");
     /*
     'tab-size' accepts <number> values.
     */
diff --git a/third_party/blink/web_tests/external/wpt/custom-elements/HTMLElement-attachInternals-expected.txt b/third_party/blink/web_tests/external/wpt/custom-elements/HTMLElement-attachInternals-expected.txt
deleted file mode 100644
index 9101726..0000000
--- a/third_party/blink/web_tests/external/wpt/custom-elements/HTMLElement-attachInternals-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-PASS Successful attachInternals() and the second call.
-FAIL attachInternals() throws a NotSupportedError if it is called for a customized built-in element assert_throws: function "() => { customizedBuiltin.attachInternals() }" threw object "InvalidStateError: Failed to execute 'attachInternals' on 'HTMLElement': Unable to attach ElementInternals to non-custom elements." that is not a DOMException NotSupportedError: property "code" is equal to 11, expected 9
-PASS If a custom element definition for the local name of the element doesn't exist, throw an InvalidStateError
-FAIL If a custom element definition for the local name of the element has disable internals flag, throw a NotSupportedError assert_throws: function "() => {
-    (new MyElement2).attachInternals();
-  }" threw object "InvalidStateError: Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals is disabled by disabledFeature static field." that is not a DOMException NotSupportedError: property "code" is equal to 11, expected 9
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/fetch/sec-metadata/img.tentative.https.sub.html b/third_party/blink/web_tests/external/wpt/fetch/sec-metadata/img.tentative.https.sub.html
index befc7a9..802ae25b 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/sec-metadata/img.tentative.https.sub.html
+++ b/third_party/blink/web_tests/external/wpt/fetch/sec-metadata/img.tentative.https.sub.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <script src=/resources/testharness.js></script>
 <script src=/resources/testharnessreport.js></script>
-<script src=/referrer-policy/generic/common.js></script>
+<script src=/common/security-features/resources/common.js></script>
 <script src=/fetch/sec-metadata/resources/helper.js></script>
 <body>
 <script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/README.md b/third_party/blink/web_tests/external/wpt/mathml/README.md
index 175c181..9524d27 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/README.md
+++ b/third_party/blink/web_tests/external/wpt/mathml/README.md
@@ -1,4 +1,4 @@
-# MathML: Tests for the MathML Core specification
+# Tests for the MathML Core specification
 
 This directory contains tests for the
 [MathML Core specification](https://mathml-refresh.github.io/mathml-core/).
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-1.html
index 848eb5b..6b9fb28 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Fraction</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
 <meta name="assert" content="Verify fraction metrics for different sizes of numerator and denominator.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-bar-001.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-bar-001.html
index 6688a58..d6151f62 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-bar-001.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-bar-001.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>fractions bar</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="Verifies painting of the fraction bar">
     <link rel="match" href="frac-bar-001-ref.html">
     <style type="text/css">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-001.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-001.html
index bc61dbf5..d1a3e6eac 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-001.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-001.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>Fraction bar color</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="The CSS color property has an effect on the fraction bar.">
     <link rel="mismatch" href="frac-color-001-notref.html">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-002.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-002.html
index d7cc88cb..597acab 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-002.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-color-002.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>fractions color</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="Verifies the color attribute affects the fraction bar">
     <link rel="match" href="frac-color-002-ref.html">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-001.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-001.html
index 9411117..83e15c8 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-001.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-001.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>fractions linethickness</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="Verifies 'thin', 'medium', 'thick' and unitless values for the linethickness attribute of the mfrac element">
     <link rel="match" href="frac-linethickness-001-ref.html">
     <style type="text/css">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-002.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-002.html
index 5bb0d6b..fd45994 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-002.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-002.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>fractions linethickness</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="Verifies fraction with negative, percent and named space linethickness values.">
     <link rel="match" href="frac-linethickness-002-ref.html">
     <style type="text/css">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-003.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-003.html
index e535e70..b23cce8 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-003.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-linethickness-003.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>fractions linethickness</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="Verifies fraction with 0px bar.">
     <link rel="mismatch" href="frac-linethickness-003-notref.html">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-mrow-001.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-mrow-001.html
index e5c6f52..1447645 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-mrow-001.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-mrow-001.html
@@ -3,7 +3,8 @@
   <head>
     <meta charset="utf-8">
     <title>Fraction mrow</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mrow">
     <meta name="assert" content="This test that <mrow> elements can be used as numerator and denominator of fractions.">
     <link rel="match" href="frac-mrow-001-ref.html">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html
index 61f49e2f..d734f1d1 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>Fraction numalign denomalign</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="This fraction alignment with the numalign/denomalign attributes.">
     <link rel="match" href="frac-numalign-denomalign-001-ref.html">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-1.html
index 543017e..59e335a 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Fraction parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
 <meta name="assert" content="Element mfrac correctly uses the fraction parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-2.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-2.html
index 75074875..b1ee502 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-parameters-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Stack parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
 <meta name="assert" content="Element mfrac correctly uses the stack parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-visibility-001.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-visibility-001.html
index b98f68d2..8fbf5ac 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-visibility-001.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/fractions/frac-visibility-001.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <title>Fraction bar visibility</title>
-    <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
     <meta name="assert" content="The CSS visible property affects the rendering of the fraction bar.">
     <link rel="match" href="frac-visibility-001-ref.html">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/operators/mo-axis-height-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/operators/mo-axis-height-1.html
index 7b0031a..c88484b9 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/operators/mo-axis-height-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/operators/mo-axis-height-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>mo axis height</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS2.SSS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#tokenmo">
 <meta name="assert" content="Element mo correctly uses the axis height parameter from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/radicals/root-parameters-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/radicals/root-parameters-1.html
index 8ffcbe4..51d4713 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/radicals/root-parameters-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/radicals/root-parameters-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Radical parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS3">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msqrt">
 <meta name="assert" content="Elements msqrt and mroot correctly use the radical parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-1.html
index 3976831..447aa66d 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts metrics</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Basic metrics for elements msub, msup and msubsup.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-2.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-2.html
index 26fa5de78..9e2b6db 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts metrics</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Basic metrics for the mmultiscript element.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-3.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-3.html
index 231f65a..742fa8c 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-3.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-3.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts metrics</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Basic metrics for the mmultiscript element with many scripts.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-4.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-4.html
index c4bf438..fc70fef 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-4.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-4.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts metrics</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Verify metrics of scripted elements for bases of different heights.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-5.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-5.html
index 005ceea..a67d68d 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-5.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-5.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts metrics</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Verify metrics of scripted elements with tall scripts.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-1.html
index b0ebaceb..208a0a87 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Elements msub, msup, subsup and msubsup correctly use the subscript and superscript parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-2.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-2.html
index 5ba66b86..4a9db661 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/subsup-parameters-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Subscripts and Superscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#msubmsup">
 <meta name="assert" content="Elements msub, msup, subsup and msubsup correctly use the italic correction from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-1.html
index 6dcdbb7..45367e3 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Underscripts and Overscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mundermover">
 <meta name="assert" content="Elements munder, mover, munderover correctly .">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-1.html
index 8022938..cc09abb 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Underscripts and Overscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mundermover">
 <meta name="assert" content="Elements munder, mover, munderover correctly use the limit parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-2.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-2.html
index e9d6af49..d6d9185 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Underscripts and Overscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mundermover">
 <meta name="assert" content="Elements munder, mover, munderover correctly use the stretch stack parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-3.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-3.html
index 373d6d4..23c7dfa 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-3.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-3.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Underscripts and Overscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mundermover">
 <meta name="assert" content="Elements munder, mover, munderover correctly use underbar/overbar and AccentBaseHeight parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-4.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-4.html
index 3b1fa575..bfc3caf 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-4.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/scripts/underover-parameters-4.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Underscripts and Overscripts parameters</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mundermover">
 <meta name="assert" content="Elements munder, mover, munderover correctly use underbar/overbar and AccentBaseHeight parameters from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-1.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-1.html
index cb9dd9e..7bc5b8e 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Space</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS2.SSS6">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mspace">
 <meta name="assert" content="Verify mspace metrics for different values of height, depth and width">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-2.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-2.html
index 072f2bda..5b8351a1 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/spaces/space-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>space</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS2.SSS6">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mspace">
 <link rel="match" href="space-2-ref.html"/>
 <meta name="assert" content="Verify mspace visual rendering for different values of height, depth and width">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/tables/table-axis-height.html b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/tables/table-axis-height.html
index 024bdd2..e723008 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/tables/table-axis-height.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/presentation-markup/tables/table-axis-height.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>table axis height</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS5">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#tables">
 <meta name="assert" content="Element mtable correctly uses the axis height parameter from the MATH table.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/color-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/color-1.html
index 4ef8213..8158cec6 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/color-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/color-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>color</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling">
 <link rel="match" href="color-1-ref.html"/>
 <meta name="assert" content="Verify that the color is used for text and graphical elements.">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/display-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/display-1.html
index a7d6277..9ae6fe0b 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/display-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/display-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>display</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling">
 <link rel="match" href="display-1-ref.html"/>
 <meta name="assert" content="Verify that the 'display: none' property works on MathML elements.">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/displaystyle-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/displaystyle-1.html
index 3143343..ddb2173a 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/displaystyle-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/displaystyle-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>displaystyle</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling">
 <meta name="assert" content="Verify that the correct inheritance of the displaystyle value by measuring the size of large operators.">
 <style>
   @font-face {
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-1.html
index e5864cc..0e3a74d46 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>MathML lengths</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling"/>
 <link rel="match" href="lengths-1-ref.html"/>
 <meta name="assert" content="Verify whether the different units are accepted for MathML lengths.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-2.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-2.html
index e88111a..37cc640 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>MathML lengths</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling"/>
 <link rel="match" href="lengths-2-ref.html"/>
 <meta name="assert" content="Verify whether the different namedspaces are accepted for MathML lengths.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-3.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-3.html
index 68a144a..aa38e97 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-3.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/lengths-3.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>MathML lengths</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling"/>
 <meta name="assert" content="Verify various cases of the MathML length syntax.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-fraktur.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-fraktur.html
index 487d61d..f414181 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-fraktur.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-fraktur.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant bold-fraktur</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-bold-fraktur-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a bold-fraktur mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html
index 640baf3..7b53e986 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-italic.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant bold-italic</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-bold-italic-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a bold-italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html
index 1cab237..544db02f 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-sans-serif.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant bold-sans-serif</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-bold-sans-serif-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a bold-sans-serif mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-script.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-script.html
index 9083afa8..dc48fbea 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-script.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold-script.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant bold-script</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-bold-script-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a bold-script mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html
index b3fe917..a51be7b 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-bold.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant bold</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-bold-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a bold mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html
index e51908e1..3090fdc 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-double-struck.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant double-struck</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-double-struck-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a double-struck mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-fraktur.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-fraktur.html
index 12489172..8bd15a55 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-fraktur.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-fraktur.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant fraktur</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-fraktur-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a fraktur mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html
index df9e0af7..58751bd1 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-initial.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant initial</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-initial-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a initial mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html
index e1612a5..5bcbd32 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-italic.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant italic</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-italic-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html
index 81206e1..0326e86e 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-looped.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant looped</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-looped-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a looped mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html
index 8d4a4ad..8d9a5d3 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-monospace.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant monospace</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-monospace-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a monospace mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html
index 7020736..21401bc 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant sans-serif-bold-italic</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-sans-serif-bold-italic-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a sans-serif-bold-italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-italic.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-italic.html
index 0576236d..2573872 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-italic.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif-italic.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant sans-serif-italic</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-sans-serif-italic-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a sans-serif-italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html
index fc880b9..513e035 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-sans-serif.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant sans-serif</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-sans-serif-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a sans-serif mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-script.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-script.html
index 5725ed5..efd3f7e 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-script.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-script.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant script</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-script-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a script mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html
index 603cfe7..20c5a39 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-stretched.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant stretched</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-stretched-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a stretched mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html
index c00417d..c88d433c 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/mathvariant-tailed.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>mathvariant tailed</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>
 <link rel="match" href="mathvariant-tailed-ref.html"/>
 <meta name="assert" content="Verify that a single-char <mtext> with a tailed mathvariant is equivalent to an <mtext> with the transformed unicode character.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/visibility-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/visibility-1.html
index be8da3b0..c84f97ae 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/visibility-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/css-styling/visibility-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>visibility</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssstyling">
 <link rel="match" href="visibility-1-ref.html"/>
 <meta name="assert" content="Verify that visibility=hidden is used for text and graphical elements.">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-1.html
index 65485232..ee4b4b5 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>Class</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree"/>
 <link rel="match" href="class-1-ref.html"/>
 <meta name="assert" content="Verify that the class attribute affects CSS selectors.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-2.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-2.html
index 707500d..4e1ae6b 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/class-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Class</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree">
 <meta name="assert" content="Verify whether the getElementsByClassName() works for MathML elements.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/color-attributes-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/color-attributes-1.html
index b7bdf72..6f9f937 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/color-attributes-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/color-attributes-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>Color Attributes</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree"/>
 <meta name="assert" content="Verify that the mathcolor and mathbackground attributes are supported on the math element.">
 <link rel="match" href="color-attributes-1-ref.html"/>
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/display-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/display-1.html
index 64d862cf..77038ee2 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/display-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/display-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>MathML display attribute</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree">
 <meta name="assert" content="Verify that the display attribute on the math element is supported and impacts centering and line breaking with surrounding content.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/dynamic-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/dynamic-1.html
index ab22ad1..48fdd2591 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/dynamic-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/dynamic-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>Dynamic MathML DOM</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom"/>
 <link rel="match" href="dynamic-1-ref.html"/>
 <meta name="assert" content="Verify that the MathML DOM tree can be modified via javascript and that the rendering is correctly updated.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-1.html
index 6164346..dd6b7990 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>href click</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree">
 <link rel="match" href="href-click-1-ref.html"/>
 <meta name="assert" content="Verify that a click on a link moves to the target.">
 <script type="text/javascript">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-2.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-2.html
index 6e50493..4c5253d 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>href click</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree">
 <link rel="match" href="href-click-2-ref.html"/>
 <meta name="assert" content="Verify that a click on an element bubbles to an ancestor link.">
 <script type="text/javascript">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-3.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-3.html
new file mode 100644
index 0000000..f2863fe
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-click-3.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>href click</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+</head>
+<body>
+  <p>To test manually, click the blue rectangle.</p>
+  <p>
+    <math>
+      <mspace width="50px" height="10px" style="background: gray"></mspace>
+      <mspace id="target" href="javascript:handler()" width="50px" height="10px" style="background: blue"></mspace>
+      <mspace width="50px" height="10px" style="background: gray"></mspace>
+    </math>
+  </p>
+  <script>
+    var t = async_test("Click element with href");
+    function handler() { t.done(); }
+    test_driver.click(document.getElementById("target"));
+  </script>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-manual.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-manual.html
deleted file mode 100644
index 7f24f20f..0000000
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/href-manual.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>Manual click on a link</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script>
-setup({explicit_timeout: true})
-function handler() {
-document.body.insertAdjacentHTML("beforeend",
-  "<span style='background: green; color: white;'>PASS</span>");
-}
-</script>
-</head>
-<body>
-  <p>Click on the one asterisk which is a link. If a "PASS" result appears the
-    test passes, otherwise it fails.</p>
-  <p>
-    <math style="font-size: 3em;">
-      <mtext>*****</mtext>
-      <mtext href="javascript:handler()">*</mtext>
-      <mtext>*****</mtext>
-    </math>
-  </p>
-</body>
-</html>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-1.html
index b3ab19c..3221a67 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>MathML inside foreignObject</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom"/>
 <link rel="match" href="integration-point-1-ref.html"/>
 <meta name="assert" content="Verify that MathML can be used inside a foreignObject element.">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-2.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-2.html
index e970f9ec..d42eeb0 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>MathML as a phrasing content</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom"/>
 <link rel="match" href="integration-point-2-ref.html"/>
 <meta name="assert" content="Verify that MathML can be used at positions where phrasing content is accepted.">
 <style type="text/css">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-3.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-3.html
index 8132acc6..1feb8317 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-3.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/integration-point-3.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>phrasing content inside mtext</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom"/>
 <link rel="match" href="integration-point-3-ref.html"/>
 <meta name="assert" content="Verify that <mtext> can contain phrasing content">
 <style type="text/css">
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html
index 795f516..3dd7f16 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
 <title>SVG requiredExtensions</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom">
 <meta name="assert" content="Verify whether the MathML namespace is recognized as a required extensions of SVG foreignObject when using the hasExtension javascript function.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-2.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-2.html
index b49bdda..1d7af04 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>SVG requiredExtensions</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom"/>
 <link rel="match" href="required-extensions-2-ref.html"/>
 <meta name="assert" content="Verify that a foreignObject with MathML used as a requiredExtensions value is selected for display in a SVG switch element.">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-1.html
index 39c49a6b..42a547a 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-1.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>Unique identifier</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree"/>
 <link rel="match" href="unique-identifier-1-ref.html"/>
 <meta name="assert" content="Verify that the id on a MathML element can be used as a fragment identifier in order to force initial scrolling.">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-2.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-2.html
index 97e04a9..421ad7a 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-2.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-2.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <title>Unique Identifier</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree">
 <meta name="assert" content="Verify whether the getElementById() works for MathML elements.">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-3.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-3.html
index 5d66e13..c58e502 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-3.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/unique-identifier-3.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8"/>
 <title>Unique Identifier</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS1.SSS2"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mathmltree"/>
 <link rel="match" href="unique-identifier-3-ref.html"/>
 <meta name="assert" content="Verify that the id attribute affects CSS selectors.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/text-and-math/use-typo-metrics-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/text-and-math/use-typo-metrics-1.html
index 081d66b..3797aef5 100644
--- a/third_party/blink/web_tests/external/wpt/mathml/relations/text-and-math/use-typo-metrics-1.html
+++ b/third_party/blink/web_tests/external/wpt/mathml/relations/text-and-math/use-typo-metrics-1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <meta charset="utf-8"/>
 <title>Open Font Format: USE_TYPO_METRICS</title>
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS2.SSS1"/>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#openfontformat"/>
 <link rel="match" href="use-typo-metrics-1-ref.html"/>
 <meta name="assert" content="Verify that the USE_TYPO_METRICS flag from the OS/2 table is taken into account to calculate line height.">
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py b/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py
index 6094a744..ba99b59 100755
--- a/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py
+++ b/third_party/blink/web_tests/external/wpt/mathml/tools/mathvariant-transforms.py
@@ -81,7 +81,7 @@
     reftest.write(source % mathvariant)
     reftestReference.write(source % ("%s (reference)" % mathvariant))
     source ='\
-<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S2.html#SS3.SSS1.tab2"/>\n\
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#cssproperties"/>\n\
 <link rel="match" href="mathvariant-%s-ref.html"/>\n\
 <meta name="assert" content="Verify that a single-char <mtext> with a %s mathvariant is equivalent to an <mtext> with the transformed unicode character.">\n'
     reftest.write(source % (mathvariant, mathvariant))
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index ac620c1..cb58cbcd 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index abc81b30..815d926 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 27c67b08..3a9ba21 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 5fd63aa..163b1dc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index e6f74221..4dbbc6c4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 522e944..c3bc943e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 5e6b8cb..2c8a8cc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 0adc65f..d97aaba 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index 283c342..c04597d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index 1c65507..5b0987b3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index a291570..0253efc8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 15fe5d2..238565f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
index 2da4a2b..8ddc972 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 8b610ad..09ffb26b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index cd4d8a52..b17073db 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
index 20d31cf..6e86a30 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 2ed233dc..1aae605 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index b30f28b..b8ef228 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index c13fd88..5130274 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/audio-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index f0c5ae172..52aef35 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index e592db53..44fb9c5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index ee9c3c6..bd211c00 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index e050885..fbb5502 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 369044f..3392d1b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index aea84f7..5ea4cd97 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 83d425c5..2ea1e37 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 728e6ce..89d7b82 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 4753bb32..ac205269 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index e82c6cf..9cf67c8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index d9c87b3..ce86221 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 2a4f6a5e..e331f57 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 6b9d9b4..bb5d94c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index a3f302a..f3cddf5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 0a507e5..ccbaeb9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 5375ae5..6b0daa2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index c6afc290..adffe35 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 2b83f31..f0353c39f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index efc6ce6..2cfc380 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/beacon-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index a6c8fe8..af17b7e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 0359045..2fff8e8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 3772f3b..d654f3b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 92d7db0..af004635 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index bd51356e..bd45fa9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 51b84997..6258bc95 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index eff7b59..ce000b1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 1b7257d..84342c0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index b3bb138..d77d386 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index eb3b0a9..4334777 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 9c7b753..1de38b5a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 61288bb8..6b811116 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 4b32666..35a7e584 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 031a3728..e69505d7f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 253234f3..b56a6baa 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 61ef1c2..4ae4cb8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index d4dd6da..919e992 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 9b28a62..e56db94 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index c1496d03..e5110a4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 012bd354..a84f29e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 54fbe3a8..4de2f75 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index f9555455..3e0fb52 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index c03b96f..542a186 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index a7ce2a5..39ccde3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 1eec54d3..4c9d38e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 260fb14..fa4e8f2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 9b18ebb7..f05c4b9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index a1b37ef1..a1e69a67 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 0fb506de..b9599b2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 825fb244..256fca63 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index f35fd03d..1ebe923 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 3b2d158..250bbd4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 24a1e86..98b12d2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index d7aa389..a63a7940 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 55c7685..43a6499 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 13de80df7..b1534c8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 9045019..bbc089ba 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index d4b8292a..7040421 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/fetch-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.debug.html.template b/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.debug.html.template
index 013bb62..77f62ef 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.debug.html.template
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.debug.html.template
@@ -9,7 +9,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for mixed-content tests. -->
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <!-- The original specification JSON for validating the scenario. -->
     <script src="/mixed-content/spec_json.js"></script>
     <!-- Internal checking of the tests -->
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.release.html.template b/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.release.html.template
index ca77389c..188e32f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.release.html.template
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/generic/template/test.release.html.template
@@ -10,7 +10,7 @@
     <meta name="assert" content="%(test_description)s">%(meta_opt_in)s
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 1816b42..9b3b46ff 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index 509fc347..f39f0c69 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 61baeee7..149d0dc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index ad615e9b..d37a441 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index b6f9243..49d3813 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 580f4b54..9787e9c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 77adba6..740e202 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index b08d413..d45384a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index 684d244..b1e4649 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index b05dff3b..3c0bce6b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index e4ac20f4..cc943fd 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 5a7bdc3..8cc7a82c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
index 6c0a9f5..fae9b1e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index c9ffbfd0..9273ac43 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index aab662fc..030de70 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
index 6f0a8fd..c9c2081 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index f55cce43..dddd339 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 54bb60a..3e78d29 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 26d7d23..5d5e55e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/img-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 7376626..482accfd 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index fc123d9..4db9717 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index f7fd32c..90aa192e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index b93d177..3a8c8cf 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index b23f9f0e..a44839fb 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 122ee40..7a8949053 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 606887e3..585b54c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 2f4f750..d6166d0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 191b4a9e..9b6036b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 5e71b99d..dc18ca7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 869c05ab..5e74a770 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 13c536f..e6b3dedf 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index e941030..88f21d4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index c9efe54..ebd1747 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 11d8f48..76b18d6 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index ce383d9..4449e58 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 67b58e0..1000359 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 7d620f8..e07e2fa 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index f6d23405..cbbfa07 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-css-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index bcb7abb..9f69cae4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 3c6de84..883cfde5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 1fe904f1..13e9b46c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 2db9724..a806be7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ddad387..69cd3b29 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index d2d15b98d..f337745e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index a047941..9e0ab39c5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index bd24109..819b543 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 16c1e07..a9e57c1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index f3adaf6c..f2025dce 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 71ef6d35..b787497c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 6db101996..9317d5c7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 5c41820..8dc0000 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index afa70d3..6404268 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 00241b62..1655a2e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index f1be5428..a47869e4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index bc14146..1359609 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index c3ea33f..853bd27 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 4c59111..f450941 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/link-prefetch-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index ae4ebff1..0d0e79c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index aa3fc778..8f09c46 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index c9d2d22..77e7aad 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 5202090b..adb8f07 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 2013b19c..39560f5e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index fbe8606..2a37811 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index c6c56e0..5b8b9ef 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index c62ca12..ce6e2072 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 349a3731..5055e60 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 6536bef..f2e537b78 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 9632f696..acb39cc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index fde3d3a..9adb36a3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 4fe1a65..4124504 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 93d5a1b6..20133bc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 2810c3c1..29010df 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index afb1ac1..fb989ec 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index e54f7ba..c4a8417 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 7791db2e..1f734b4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index d50981f..4c171710 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 65c121204d..48bd7e2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 29d5696..905108ca2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 25bbcf1..9992cf9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 5d34ff6..895b875 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 347c57c..ed48895 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index ab991d2c..4dacb3a7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 775fcabb..e7e01df 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 6a9a643..1adac77 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index e873d4a..bff5398 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ee6c6da..ac623c71 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 2393202a..ff7b496 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 64f777e..fd30ae9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 4950c32a..2fa81d5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 7301b826..7a9a845 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index b9a59ad..4f9e979 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index f1d9910..8d83c1f9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 17e86bac..5719538 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 744ad87..16c4d61a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index e04e9ba..91db146 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 8ebd99b..5e71036 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index b7743daa..242569e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 3fe162a2..d2fe8ea 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 4c43f3a..4959d445 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 27da8b4..45d70e81 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 01df782..119dda32 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index d1be723f..01cc099 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 3f8ec136..72275f994 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ee5cfea..4cba2b5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 28fdc6f..ea3e1dc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 662ac19..d8c0fda 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 23e6bad..5ba5744 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 4820245..414ed3a0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index f91df503..a9a07e7c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 190b66b..36ee113 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index c03d503..32bf8286 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index d9a1666..57d8e55 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index ebfb519..1fc9bd3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index f5ffcf3a..66e4183 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/object-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 6f71158..f4284d2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 48012dfe..81c5e31 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index b76c48a6..423d55b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 27e971a..265c22f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 0fe505a..e78b35a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index d066d7f4..e71eca9f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 3ae09e2..60bb063 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 883c0bb..082a5d02 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index abe5008..d240025 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 9c484e3..545858e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 0d846777f..1722e18 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 09fadc8..07b58b5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 6350501..7cd7005 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index c3bedd38..5109e5a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 0b2a8c8..1005c62 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 532c97b..98bf20f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 662fc90..a5b1bed 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 57efd6f..76580a4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index e3113a8..7e6f59e3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/picture-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 61f10df..a1c58ee 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 69210c6..53729bb 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index a2201a2..3f6d7671 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 011e515d..c89c2a5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 5c8d860..84d81d6 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 123e53d2..83110755 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index cb3528e..e7b7bd4e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 7bffa29..1aaa445 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 7e9a239..bcb3b05 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 44b4795c..c6af6e42 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 0d0eec01..df5aa522 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 4c375ac..d0048db305 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 21d15255..a1519d9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index cd56451..9e46278 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index cc1c051a..d92025d3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 23efca0a..d84c70e5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 69e1515..d4ee795 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 9dc0bb1..d8b2161 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index bad7e7f2..7b4423b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/script-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 029d34c4..97d76b32 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index c72ca267fc..6d2d972e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index b50a7b70..912f5901 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 8b64104b..a0957ec 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index abe3385b0..a01f53a0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
index 78d9f8d5d..fb3b6344 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index ce726644..8bd2c9f6 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index b9ddc78..94a5e8e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index a181ecd3..5910d53 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/cross-origin-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
index 05f1890..44fb602 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-http/top-level/no-redirect/optionally-blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index cf843963..1cd1855 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 561a2f7..48687c6 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
index e02134b..e39519b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index f90575c1..1075bb4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 68bfc2b8..e97fcd5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/keep-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
index 2e5eff5..e74ae75 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/no-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
index 8c5bd7b..eaaf53b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-http/top-level/swap-scheme-redirect/optionally-blockable/no-opt-in-allows.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index f044783..399566f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index fd0a1f92..2b51bd4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/video-tag/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index 5f4face..4f52562 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
index 0d700202..20fc9b9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index 22e930e..3a67d12 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index 972d7f3d..0b1702a5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
index 66b20800..087f54d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index 664acc6..2491c538 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html
index ff33c35d..727cc35 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
index dabaab2..5a10108 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/http-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
index 1bc4b11d..f2e2642 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
index a3cb304..e944297 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
index f1cfed1..45bf7d3bb 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/meta-csp/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index ef95909..049e61b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
index 9a344137..2a28208 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index fad857a..099056f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/cross-origin-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index cc63690..c24e1d7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/keep-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
index 4b7ae62f..8312066 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/no-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
index 278819b..5fb923f2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-ws/top-level/swap-scheme-redirect/blockable/ws-downgrade-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html
index 52684b1..09fd3e42 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/keep-scheme-redirect/allowed/websocket-allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
index a32429b8..4e104fb 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/websocket-request/no-opt-in/same-host-wss/top-level/no-redirect/allowed/websocket-allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 8fc3283a..3b1be17 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 21f63bd7..e5c5a86 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index d4c4371..f318d00 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 735c267..1e133c2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index d70b857..1d7c1ec 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index bf77ac6..3e31998 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 1a9053e..2fa9e6b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 0488b133..c4651834 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 63ba904..140133f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 22e7c6e..f664dfc3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index e5bf5ce..f639f30e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 4feea4b7..7a8df78 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 2d4f15b1..99162059 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index a6782c7..5b69f15 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 065ff5b..f6bad6b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 3cd8a67..e2f8a28 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 3b3e17c..54b34e7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index d720fc4..a277471 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index bd69a14..db091027 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worker-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 99c2795..1db0a1e4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ea193ea..30cf903 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index f410e1c..8840673 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index cfda98f7..fcb3ed1f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index a85242a..e97d9ed9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 48d74bc..b9e6af0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 7d0cdae6..79ace77 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 94f9785..3a41ecf 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 1a895d0..9bf5482 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ab90656..a7d02739 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 1134603..2e7aa07 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index a636eef..4a97df5 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 8aa7d05..0358e5f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 5ef502f0..d59023de 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 34b6be4..13e91504 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 1586df9..84b53d8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 73f621e..4b6dc464 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 2b32f59..ad35a45 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 35995bb9..2ca7129 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index c858da0c..3ca94248 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 0387b16..0ebfe517 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 34a4e1e..85f339a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index b683d82..2ff42bf 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 5655510..3e0fbbc9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 0ccf4bc4..b12e3d7f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 7c54048..3877b4a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 2d3eb78..1aeee58 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 989f1ad..f96210c1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 46bca306..86e8c0c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 313f775..ef94f6d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 033b1d9..557f3f78 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index c4d4629..f9dd061 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 90ad600..f6e6751 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 5111667..2b1b0b2d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 7d54c015..159329a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index e1a0ac5..0e045e1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 812cec20..6658abc7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index a361197..32ac8f2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 81e57b1..189a25b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ec537f5..3144aba7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 0b8ddb9c..6e5dcc59 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index d2ab9e1..d78de561 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index e3b0cb81..a1f5f72b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 063c7b77..85d1a1e9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 802b84c..00b5d6f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 7e40482..9cae068 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 1c77b65..c4846185 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index c5ec8343..5f10d56 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 918aec3..502407c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index b801db0..c0f2fc7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 65d7c00..7b6e331e2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index bd3afe9..94cfb96 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 45759c1..49b9103 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 5d2f67b..6f8ea01 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index fbf57e8b..1b18de0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index e297efb..dfdbae7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 6e1e6cb..c6ce305c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 68329ff5..cba9bdc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 862abf01..13eb20d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 9e8ca3cd5..4df48a8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 341e9584..9c79635 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 0bf45c0..176da0f4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 017a388..3ba97cc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index c7f37de..66857b1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 84c5ae0..e0b664b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index b7f5cdc9..6f688d7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index adb418f..63bb81d1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index ce31e04..e9b1153 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 8197d981..6d72fbe 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 60a5b9e..ddb4146 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 035fe3b..f2e6058f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 56c5e14..970723e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index f1e134ad..4901118 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index ce5d3e1c..b0ea6b3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 5c123ed6..4b14527 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 06aadc3..4737340 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index bcc60543..7e1db35 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index e56443cb..617237da 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 40569b71..3a90c1da 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 17226d6..3f2b4aa4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 034c2f7..f620172 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 1ecd9d9..c96d2d4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index a60c79d..685bd1e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 88efeaf0..aaa62a9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 2e33579e..37d3c51 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 7f1353c..8c1cecce 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 5cc77dd..c766c5e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 6af86dd..408d01c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index e6a9c4c4..bd5f1b0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 4006220..006ee9d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index b4be536..905856f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 0d7b721..c031756 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 708c0a5..c8c56c45 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 2414d5f..a86f3b4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index f0fa9aa..e0a437e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 440630b5..89b2402e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 51cf26bc..5b01dbc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index d38c0259..55d23f9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index f32666f..64d4588 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 016ea76..27bb937 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 47ba0d80..2bd8a10 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 6b33951..8fec9a0 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 349d1ae..4bd8277 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index ba7834d..cc56889 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index d151432..f50bb18 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 42b9de5..785bc579 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 3a03aea..2918d12d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index c087917e..63ce10a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index f4192c2..333b26e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 82713253..29edc680 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 35ad440..12ea7f2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 58227b98..ede2b9e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index e43a2542..b35999d8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 4e0db8f..5ad4fdc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 84345fb..94dc4fa 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 52595a63b..1637723 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 0844824..c0df274 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 8b5df2c..2e99652a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index b03a99c..202b22c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 7180a72..3e4c570 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index f228ae5d..df15dd9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index ca0a9f47..23668777 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 7d38ae9f..a8b19ae 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index c8bb005..cfa30e47 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index e97507d..1c8391e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index a9b350b..d33c792 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 81db7898..939f20f9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 999411c..be7e4ce7c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index de2d0031..f69486e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index 453c5cb..806b2ae 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index fbf3629..f0b30f8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index a34698e..9ff4c3c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index bbd268a..0edffdf 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 4547296..ab3439a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 6d519a3..3d17e69c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 2a317be..c060ab3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 44d4b3d..22760d9 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index f1af455..9f3bc48 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 6eb6e95..95ef469 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 9b5656b..145cb04 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 4fbf140e..9110517 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index d1b9d5d..82434165 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index c328f8fe..e8d26e8 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index dc7cd63d..9db55dc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 1c7d2983..4412335c 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index cea0a88b..7f7d6b2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 224d7c7..97664540 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index b1432e7..196f60ff 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index ce845cb3..b2bf5c4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 1e9acdf..b931d339 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 0ff9576d..0eeba32e2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index d0e64b29..1da3a84 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index 314f097..f70e0d7 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index d44e65b..be74d7f 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index 973db80..39f508c2b 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
index f850941..703e0af 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 0dd9e88e..a1323d4 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
index eb7f7ea..0aa1bf3 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 23f0a1fc..61fe95d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index 7baa3e5..8a0c5b1 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index cf95677..df3f8cc 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
index 80a633a..74261daf 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index ebbc9ec0..45cd5ea 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -17,7 +17,7 @@
     <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index b2ee591..ed8f550d 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index e49db79f..c14bc41 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index ffd8aeb9..1061f61 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 897354a..18a5a3e 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
index ee787d0..d47797a 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
index 9a9085b..ff17fa2 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -16,7 +16,7 @@
                                  expectation: blocked">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
index 9da0d9f9..76d5442 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
index b0fff36..e6eba571 100644
--- a/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
+++ b/third_party/blink/web_tests/external/wpt/mixed-content/xhr-request/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -16,7 +16,7 @@
                                  expectation: allowed">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <script src="/mixed-content/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/README.md b/third_party/blink/web_tests/external/wpt/referrer-policy/README.md
index a4cc29b3..58eff1a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/README.md
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/README.md
@@ -96,7 +96,7 @@
 
 ## Updating the tests
 
-The main test logic lives in ```./generic/referrer-policy-test-case.js``` with helper functions defined in ```./generic/common.js``` so you should probably start there.
+The main test logic lives in ```./generic/referrer-policy-test-case.js``` with helper functions defined in ```./common/security-features/resources/common.js``` so you should probably start there.
 
 For updating the test suite you will most likely do **a subset** of the following:
 
@@ -165,12 +165,6 @@
   The schema used to check if a ```test_expansion``` is valid.
   Each test expansion can only contain fields defined by this schema.
 
-* **subresource_path**
-
-  A 1:1 mapping of a **subresource type** to the URL path of the sub-resource.
-  When adding a new sub-resource, a path to an existing file for it also must be specified.
-
-
 ### Test Expansion Patterns
 
 Each field in a test expansion can be in one of the following formats:
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/external-import-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/external-import-stylesheet.html
index 6be475e9..9245ff3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/external-import-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/external-import-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/internal-import-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/internal-import-stylesheet.html
index 37370fdd..c25b999 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/internal-import-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/internal-import-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/processing-instruction.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/processing-instruction.html
index 5362234..36d8bbc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/processing-instruction.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/child-css/processing-instruction.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-import-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-import-stylesheet.html
index 300960d2..6bd0554c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-import-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-import-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-stylesheet.html
index 45da018c..8773664 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/external-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-import-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-import-stylesheet.html
index dd06b7d7..6dcf6be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-import-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-import-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-stylesheet.html
index a0a9067..0d54bb76 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/internal-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/processing-instruction.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/processing-instruction.html
index a9d79a3..26203a82 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/processing-instruction.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/font-face/processing-instruction.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-import-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-import-stylesheet.html
index 2a7ac43..7c5a8c3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-import-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-import-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-stylesheet.html
index c763ecb..72a807bec 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/external-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/inline-style.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/inline-style.html
index da571af..7e3d887 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/inline-style.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/inline-style.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-import-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-import-stylesheet.html
index e320e063..e94218d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-import-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-import-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-stylesheet.html
index 3e2fc10..a6107cb3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/internal-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/presentation-attribute.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/presentation-attribute.html
index e810df54..ee70f15 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/presentation-attribute.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/presentation-attribute.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/processing-instruction.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/processing-instruction.html
index e5a1e20a..c2b31be8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/processing-instruction.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/image/processing-instruction.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="never">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html
index dfa6fd0..54ee36c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/external-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <!-- Helper functions for referrer-policy css tests. -->
     <script src="/referrer-policy/css-integration/css-test-helper.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/inline-style.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/inline-style.html
index fd6e4ba..59fb402 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/inline-style.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/inline-style.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <!-- Helper functions for referrer-policy css tests. -->
     <script src="/referrer-policy/css-integration/css-test-helper.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/internal-stylesheet.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/internal-stylesheet.html
index 228de6d..82d75665 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/internal-stylesheet.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/internal-stylesheet.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <!-- Helper functions for referrer-policy css tests. -->
     <script src="/referrer-policy/css-integration/css-test-helper.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/presentation-attribute.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/presentation-attribute.html
index 65bb642f..8e61641 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/presentation-attribute.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/presentation-attribute.html
@@ -7,7 +7,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <!-- Helper functions for referrer-policy css tests. -->
     <script src="/referrer-policy/css-integration/css-test-helper.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/processing-instruction.html b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/processing-instruction.html
index c0e8d4b..99ec1ae 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/processing-instruction.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/css-integration/svg/processing-instruction.html
@@ -7,7 +7,7 @@
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/utils.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <!-- Helper functions for referrer-policy css tests. -->
     <script src="/referrer-policy/css-integration/css-test-helper.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/common.js b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/common.js
deleted file mode 100644
index f1574e9..0000000
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/common.js
+++ /dev/null
@@ -1,699 +0,0 @@
-/**
- * @fileoverview Utilities for mixed-content in Web Platform Tests.
- * @author burnik@google.com (Kristijan Burnik)
- * Disclaimer: Some methods of other authors are annotated in the corresponding
- *     method's JSDoc.
- */
-
-// The same content is placed as
-// - wpt/referrer-policy/generic/common.js and
-// - wpt/mixed-content/generic/common.js.
-// If you modify either one, please also update the other one.
-//
-// TODO(https://crbug.com/906850): These two files are going to be merged.
-// Currently they are duplicated only to avoid frequent mass modification
-// for each step of refactoring, as these file names are hard-coded in
-// a large number of generated test files.
-
-function timeoutPromise(t, ms) {
-  return new Promise(resolve => { t.step_timeout(resolve, ms); });
-}
-
-/**
- * Normalizes the target port for use in a URL. For default ports, this is the
- *     empty string (omitted port), otherwise it's a colon followed by the port
- *     number. Ports 80, 443 and an empty string are regarded as default ports.
- * @param {number} targetPort The port to use
- * @return {string} The port portion for using as part of a URL.
- */
-function getNormalizedPort(targetPort) {
-  return ([80, 443, ""].indexOf(targetPort) >= 0) ? "" : ":" + targetPort;
-}
-
-/**
- * Creates a GUID.
- *     See: https://en.wikipedia.org/wiki/Globally_unique_identifier
- *     Original author: broofa (http://www.broofa.com/)
- *     Sourced from: http://stackoverflow.com/a/2117523/4949715
- * @return {string} A pseudo-random GUID.
- */
-function guid() {
-  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
-    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
-    return v.toString(16);
-  });
-}
-
-/**
- * Initiates a new XHR via GET.
- * @param {string} url The endpoint URL for the XHR.
- * @param {string} responseType Optional - how should the response be parsed.
- *     Default is "json".
- *     See: https://xhr.spec.whatwg.org/#dom-xmlhttprequest-responsetype
- * @return {Promise} A promise wrapping the success and error events.
- */
-function xhrRequest(url, responseType) {
-  return new Promise(function(resolve, reject) {
-    var xhr = new XMLHttpRequest();
-    xhr.open('GET', url, true);
-    xhr.responseType = responseType || "json";
-
-    xhr.addEventListener("error", function() {
-      reject(Error("Network Error"));
-    });
-
-    xhr.addEventListener("load", function() {
-      if (xhr.status != 200)
-        reject(Error(xhr.statusText));
-      else
-        resolve(xhr.response);
-    });
-
-    xhr.send();
-  });
-}
-
-/**
- * Sets attributes on a given DOM element.
- * @param {DOMElement} element The element on which to set the attributes.
- * @param {object} An object with keys (serving as attribute names) and values.
- */
-function setAttributes(el, attrs) {
-  attrs = attrs || {}
-  for (var attr in attrs)
-    el.setAttribute(attr, attrs[attr]);
-}
-
-/**
- * Binds to success and error events of an object wrapping them into a promise
- *     available through {@code element.eventPromise}. The success event
- *     resolves and error event rejects.
- * This method adds event listeners, and then removes all the added listeners
- * when one of listened event is fired.
- * @param {object} element An object supporting events on which to bind the
- *     promise.
- * @param {string} resolveEventName [="load"] The event name to bind resolve to.
- * @param {string} rejectEventName [="error"] The event name to bind reject to.
- */
-function bindEvents(element, resolveEventName, rejectEventName) {
-  element.eventPromise =
-      bindEvents2(element, resolveEventName, element, rejectEventName);
-}
-
-// Returns a promise wrapping success and error events of objects.
-// This is a variant of bindEvents that can accept separate objects for each
-// events and two events to reject, and doesn't set `eventPromise`.
-//
-// When `resolveObject`'s `resolveEventName` event (default: "load") is
-// fired, the promise is resolved with the event.
-//
-// When `rejectObject`'s `rejectEventName` event (default: "error") or
-// `rejectObject2`'s `rejectEventName2` event (default: "error") is
-// fired, the promise is rejected.
-//
-// `rejectObject2` is optional.
-function bindEvents2(resolveObject, resolveEventName, rejectObject, rejectEventName, rejectObject2, rejectEventName2) {
-  return new Promise(function(resolve, reject) {
-    const actualResolveEventName = resolveEventName || "load";
-    const actualRejectEventName = rejectEventName || "error";
-    const actualRejectEventName2 = rejectEventName2 || "error";
-
-    const resolveHandler = function(event) {
-      cleanup();
-      resolve(event);
-    };
-
-    const rejectHandler = function(event) {
-      // Chromium starts propagating errors from worker.onerror to
-      // window.onerror. This handles the uncaught exceptions in tests.
-      event.preventDefault();
-      cleanup();
-      reject(event);
-    };
-
-    const cleanup = function() {
-      resolveObject.removeEventListener(actualResolveEventName, resolveHandler);
-      rejectObject.removeEventListener(actualRejectEventName, rejectHandler);
-      if (rejectObject2) {
-        rejectObject2.removeEventListener(actualRejectEventName2, rejectHandler);
-      }
-    };
-
-    resolveObject.addEventListener(actualResolveEventName, resolveHandler);
-    rejectObject.addEventListener(actualRejectEventName, rejectHandler);
-    if (rejectObject2) {
-      rejectObject2.addEventListener(actualRejectEventName2, rejectHandler);
-    }
-  });
-}
-
-/**
- * Creates a new DOM element.
- * @param {string} tagName The type of the DOM element.
- * @param {object} attrs A JSON with attributes to apply to the element.
- * @param {DOMElement} parent Optional - an existing DOM element to append to
- *     If not provided, the returned element will remain orphaned.
- * @param {boolean} doBindEvents Optional - Whether to bind to load and error
- *     events and provide the promise wrapping the events via the element's
- *     {@code eventPromise} property. Default value evaluates to false.
- * @return {DOMElement} The newly created DOM element.
- */
-function createElement(tagName, attrs, parentNode, doBindEvents) {
-  var element = document.createElement(tagName);
-
-  if (doBindEvents)
-    bindEvents(element);
-
-  // We set the attributes after binding to events to catch any
-  // event-triggering attribute changes. E.g. form submission.
-  //
-  // But be careful with images: unlike other elements they will start the load
-  // as soon as the attr is set, even if not in the document yet, and sometimes
-  // complete it synchronously, so the append doesn't have the effect we want.
-  // So for images, we want to set the attrs after appending, whereas for other
-  // elements we want to do it before appending.
-  var isImg = (tagName == "img");
-  if (!isImg)
-    setAttributes(element, attrs);
-
-  if (parentNode)
-    parentNode.appendChild(element);
-
-  if (isImg)
-    setAttributes(element, attrs);
-
-  return element;
-}
-
-function createRequestViaElement(tagName, attrs, parentNode) {
-  return createElement(tagName, attrs, parentNode, true).eventPromise;
-}
-
-/**
- * Creates a new empty iframe and appends it to {@code document.body} .
- * @param {string} name The name and ID of the new iframe.
- * @param {boolean} doBindEvents Whether to bind load and error events.
- * @return {DOMElement} The newly created iframe.
- */
-function createHelperIframe(name, doBindEvents) {
-  return createElement("iframe",
-                       {"name": name, "id": name},
-                       document.body,
-                       doBindEvents);
-}
-
-/**
- * requestVia*() functions return promises that are resolved on successful
- * requests with objects of the same "type", i.e. objects that contains
- * the same sets of keys that are fixed within one category of tests (e.g.
- * within wpt/referrer-policy tests).
- * wrapResult() (that should be defined outside this file) is used to convert
- * the response bodies of subresources into the expected result objects in some
- * cases, and in other cases the result objects are constructed more directly.
- * TODO(https://crbug.com/906850): Clean up the semantics around this, e.g.
- * use (or not use) wrapResult() consistently, unify the arguments, etc.
- */
-
-/**
- * Creates a new iframe, binds load and error events, sets the src attribute and
- *     appends it to {@code document.body} .
- * @param {string} url The src for the iframe.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaIframe(url, additionalAttributes) {
-  const iframe = createElement(
-      "iframe",
-      Object.assign({"src": url}, additionalAttributes),
-      document.body,
-      false);
-  return bindEvents2(window, "message", iframe, "error", window, "error")
-      .then(event => {
-          assert_equals(event.source, iframe.contentWindow);
-          return event.data;
-        });
-}
-
-/**
- * Creates a new image, binds load and error events, sets the src attribute and
- *     appends it to {@code document.body} .
- * @param {string} url The src for the image.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaImage(url) {
-  return createRequestViaElement("img", {"src": url}, document.body);
-}
-
-// Helpers for requestViaImageForReferrerPolicy().
-function loadImageInWindow(src, attributes, w) {
-  return new Promise((resolve, reject) => {
-    var image = new w.Image();
-    image.crossOrigin = "Anonymous";
-    image.onload = function() {
-      resolve(image);
-    };
-
-    // Extend element with attributes. (E.g. "referrerPolicy" or "rel")
-    if (attributes) {
-      for (var attr in attributes) {
-        image[attr] = attributes[attr];
-      }
-    }
-
-    image.src = src;
-    w.document.body.appendChild(image)
-  });
-}
-
-function extractImageData(img) {
-    var canvas = document.createElement("canvas");
-    var context = canvas.getContext('2d');
-    context.drawImage(img, 0, 0);
-    var imgData = context.getImageData(0, 0, img.clientWidth, img.clientHeight);
-    return imgData.data;
-}
-
-function decodeImageData(rgba) {
-  var rgb = new Uint8ClampedArray(rgba.length);
-
-  // RGBA -> RGB.
-  var rgb_length = 0;
-  for (var i = 0; i < rgba.length; ++i) {
-    // Skip alpha component.
-    if (i % 4 == 3)
-      continue;
-
-    // Zero is the string terminator.
-    if (rgba[i] == 0)
-      break;
-
-    rgb[rgb_length++] = rgba[i];
-  }
-
-  // Remove trailing nulls from data.
-  rgb = rgb.subarray(0, rgb_length);
-  var string_data = (new TextDecoder("ascii")).decode(rgb);
-
-  return JSON.parse(string_data);
-}
-
-// A variant of requestViaImage for referrer policy tests.
-// This tests many patterns of <iframe>s to test referrer policy inheritance.
-// TODO(https://crbug.com/906850): Merge this into requestViaImage().
-// <iframe>-related code should be moved outside requestViaImage*().
-function requestViaImageForReferrerPolicy(url, attributes, referrerPolicy) {
-  // For images, we'll test:
-  // - images in a `srcdoc` frame to ensure that it uses the referrer
-  //   policy of its parent,
-  // - images in a top-level document,
-  // - and images in a `srcdoc` frame with its own referrer policy to
-  //   override its parent.
-
-  var iframeWithoutOwnPolicy = document.createElement('iframe');
-  var noSrcDocPolicy = new Promise((resolve, reject) => {
-        iframeWithoutOwnPolicy.srcdoc = "Hello, world.";
-        iframeWithoutOwnPolicy.onload = resolve;
-        document.body.appendChild(iframeWithoutOwnPolicy);
-      })
-    .then(() => {
-        var nextUrl = url + "&cache_destroyer2=" + (new Date()).getTime();
-        return loadImageInWindow(nextUrl, attributes,
-                                 iframeWithoutOwnPolicy.contentWindow);
-      })
-    .then(function (img) {
-        return decodeImageData(extractImageData(img));
-      });
-
-  // Give a srcdoc iframe a referrer policy different from the top-level page's policy.
-  var iframePolicy = (referrerPolicy === "no-referrer") ? "unsafe-url" : "no-referrer";
-  var iframeWithOwnPolicy = document.createElement('iframe');
-  var srcDocPolicy = new Promise((resolve, reject) => {
-        iframeWithOwnPolicy.srcdoc = "<meta name='referrer' content='" + iframePolicy + "'>Hello world.";
-        iframeWithOwnPolicy.onload = resolve;
-        document.body.appendChild(iframeWithOwnPolicy);
-      })
-    .then(() => {
-        var nextUrl = url + "&cache_destroyer3=" + (new Date()).getTime();
-        return loadImageInWindow(nextUrl, null,
-                                 iframeWithOwnPolicy.contentWindow);
-      })
-    .then(function (img) {
-        return decodeImageData(extractImageData(img));
-      });
-
-  var pagePolicy = loadImageInWindow(url, attributes, window)
-    .then(function (img) {
-        return decodeImageData(extractImageData(img));
-      });
-
-  return Promise.all([noSrcDocPolicy, srcDocPolicy, pagePolicy]).then(values => {
-    assert_equals(values[0].headers.referer, values[2].headers.referer, "Referrer inside 'srcdoc' without its own policy should be the same as embedder's referrer.");
-    assert_equals((iframePolicy === "no-referrer" ? undefined : document.location.href), values[1].headers.referer, "Referrer inside 'srcdoc' should use the iframe's policy if it has one");
-    return wrapResult(values[2]);
-  });
-}
-
-/**
- * Initiates a new XHR GET request to provided URL.
- * @param {string} url The endpoint URL for the XHR.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaXhr(url) {
-  return xhrRequest(url).then(result => wrapResult(result));
-}
-
-/**
- * Initiates a new GET request to provided URL via the Fetch API.
- * @param {string} url The endpoint URL for the Fetch.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaFetch(url) {
-  return fetch(url)
-    .then(res => res.json())
-    .then(j => wrapResult(j));
-}
-
-function dedicatedWorkerUrlThatFetches(url) {
-  return `data:text/javascript,
-    fetch('${url}')
-      .then(() => postMessage(''),
-            () => postMessage(''));`;
-}
-
-function workerUrlThatImports(url) {
-  return `data:text/javascript,import '${url}';`;
-}
-
-/**
- * Creates a new Worker, binds message and error events wrapping them into.
- *     {@code worker.eventPromise} and posts an empty string message to start
- *     the worker.
- * @param {string} url The endpoint URL for the worker script.
- * @param {object} options The options for Worker constructor.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaDedicatedWorker(url, options) {
-  var worker;
-  try {
-    worker = new Worker(url, options);
-  } catch (e) {
-    return Promise.reject(e);
-  }
-  worker.postMessage('');
-  return bindEvents2(worker, "message", worker, "error")
-    .then(event => wrapResult(event.data));
-}
-
-function requestViaSharedWorker(url) {
-  var worker;
-  try {
-    worker = new SharedWorker(url);
-  } catch(e) {
-    return Promise.reject(e);
-  }
-  const promise = bindEvents2(worker.port, "message", worker, "error")
-    .then(event => wrapResult(event.data));
-  worker.port.start();
-  return promise;
-}
-
-// Returns a reference to a worklet object corresponding to a given type.
-function get_worklet(type) {
-  if (type == 'animation')
-    return CSS.animationWorklet;
-  if (type == 'layout')
-    return CSS.layoutWorklet;
-  if (type == 'paint')
-    return CSS.paintWorklet;
-  if (type == 'audio')
-    return new OfflineAudioContext(2,44100*40,44100).audioWorklet;
-
-  assert_unreached('unknown worklet type is passed.');
-  return undefined;
-}
-
-function requestViaWorklet(type, url) {
-  try {
-    return get_worklet(type).addModule(url);
-  } catch (e) {
-    return Promise.reject(e);
-  }
-}
-
-/**
- * Sets the href attribute on a navigable DOM element and performs a navigation
- *     by clicking it. To avoid navigating away from the current execution
- *     context, a target attribute is set to point to a new helper iframe.
- * @param {DOMElement} navigableElement The navigable DOMElement
- * @param {string} url The href for the navigable element.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaNavigable(navigableElement, url) {
-  var iframe = createHelperIframe(guid(), false);
-  setAttributes(navigableElement,
-                {"href": url,
-                 "target": iframe.name});
-
-  const promise =
-    bindEvents2(window, "message", iframe, "error", window, "error")
-      .then(event => {
-          assert_equals(event.source, iframe.contentWindow, "event.source");
-          return event.data;
-        });
-  navigableElement.click();
-  return promise;
-}
-
-/**
- * Creates a new anchor element, appends it to {@code document.body} and
- *     performs the navigation.
- * @param {string} url The URL to navigate to.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaAnchor(url, additionalAttributes) {
-  var a = createElement(
-      "a",
-      Object.assign({"innerHTML": "Link to resource"}, additionalAttributes),
-      document.body);
-
-  return requestViaNavigable(a, url);
-}
-
-/**
- * Creates a new area element, appends it to {@code document.body} and performs
- *     the navigation.
- * @param {string} url The URL to navigate to.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaArea(url, additionalAttributes) {
-  var area = createElement(
-      "area",
-      Object.assign({}, additionalAttributes),
-      document.body);
-
-  // TODO(kristijanburnik): Append to map and add image.
-  return requestViaNavigable(area, url);
-}
-
-/**
- * Creates a new script element, sets the src to url, and appends it to
- *     {@code document.body}.
- * @param {string} url The src URL.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaScript(url, additionalAttributes) {
-  const script = createElement(
-      "script",
-      Object.assign({"src": url}, additionalAttributes),
-      document.body,
-      false);
-
-  return bindEvents2(window, "message", script, "error", window, "error")
-    .then(event => wrapResult(event.data));
-}
-
-/**
- * Creates a new form element, sets attributes, appends it to
- *     {@code document.body} and submits the form.
- * @param {string} url The URL to submit to.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaForm(url) {
-  var iframe = createHelperIframe(guid());
-  var form = createElement("form",
-                           {"action": url,
-                            "method": "POST",
-                            "target": iframe.name},
-                           document.body);
-  bindEvents(iframe);
-  form.submit();
-
-  return iframe.eventPromise;
-}
-
-/**
- * Creates a new link element for a stylesheet, binds load and error events,
- *     sets the href to url and appends it to {@code document.head}.
- * @param {string} url The URL for a stylesheet.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaLinkStylesheet(url) {
-  return createRequestViaElement("link",
-                                 {"rel": "stylesheet", "href": url},
-                                 document.head);
-}
-
-/**
- * Creates a new link element for a prefetch, binds load and error events, sets
- *     the href to url and appends it to {@code document.head}.
- * @param {string} url The URL of a resource to prefetch.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaLinkPrefetch(url) {
-  var link = document.createElement('link');
-  if (link.relList && link.relList.supports && link.relList.supports("prefetch")) {
-    return createRequestViaElement("link",
-                                   {"rel": "prefetch", "href": url},
-                                   document.head);
-  } else {
-    return Promise.reject("This browser does not support 'prefetch'.");
-  }
-}
-
-/**
- * Initiates a new beacon request.
- * @param {string} url The URL of a resource to prefetch.
- * @return {Promise} The promise for success/error events.
- */
-async function requestViaSendBeacon(url) {
-  function wait(ms) {
-    return new Promise(resolve => step_timeout(resolve, ms));
-  }
-  if (!navigator.sendBeacon(url)) {
-    // If mixed-content check fails, it should return false.
-    throw new Error('sendBeacon() fails.');
-  }
-  // We don't have a means to see the result of sendBeacon() request
-  // for sure. Let's wait for a while and let the generic test function
-  // ask the server for the result.
-  await wait(500);
-  return 'allowed';
-}
-
-/**
- * Creates a new media element with a child source element, binds loadeddata and
- *     error events, sets attributes and appends to document.body.
- * @param {string} type The type of the media element (audio/video/picture).
- * @param {object} media_attrs The attributes for the media element.
- * @param {object} source_attrs The attributes for the child source element.
- * @return {DOMElement} The newly created media element.
- */
-function createMediaElement(type, media_attrs, source_attrs) {
-  var mediaElement = createElement(type, {});
-
-  var sourceElement = createElement("source", {});
-
-  mediaElement.eventPromise = new Promise(function(resolve, reject) {
-    mediaElement.addEventListener("loadeddata", function (e) {
-      resolve(e);
-    });
-
-    // Safari doesn't fire an `error` event when blocking mixed content.
-    mediaElement.addEventListener("stalled", function(e) {
-      reject(e);
-    });
-
-    sourceElement.addEventListener("error", function(e) {
-      reject(e);
-    });
-  });
-
-  setAttributes(mediaElement, media_attrs);
-  setAttributes(sourceElement, source_attrs);
-
-  mediaElement.appendChild(sourceElement);
-  document.body.appendChild(mediaElement);
-
-  return mediaElement;
-}
-
-/**
- * Creates a new video element, binds loadeddata and error events, sets
- *     attributes and source URL and appends to {@code document.body}.
- * @param {string} url The URL of the video.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaVideo(url) {
-  return createMediaElement("video",
-                            {},
-                            {"src": url}).eventPromise;
-}
-
-/**
- * Creates a new audio element, binds loadeddata and error events, sets
- *     attributes and source URL and appends to {@code document.body}.
- * @param {string} url The URL of the audio.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaAudio(url) {
-  return createMediaElement("audio",
-                            {},
-                            {"type": "audio/wav", "src": url}).eventPromise;
-}
-
-/**
- * Creates a new picture element, binds loadeddata and error events, sets
- *     attributes and source URL and appends to {@code document.body}. Also
- *     creates new image element appending it to the picture
- * @param {string} url The URL of the image for the source and image elements.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaPicture(url) {
-  var picture = createMediaElement("picture", {}, {"srcset": url,
-                                                "type": "image/png"});
-  return createRequestViaElement("img", {"src": url}, picture);
-}
-
-/**
- * Creates a new object element, binds load and error events, sets the data to
- *     url, and appends it to {@code document.body}.
- * @param {string} url The data URL.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaObject(url) {
-  return createRequestViaElement("object", {"data": url, "type": "text/html"}, document.body);
-}
-
-/**
- * Creates a new WebSocket pointing to {@code url} and sends a message string
- * "echo". The {@code message} and {@code error} events are triggering the
- * returned promise resolve/reject events.
- * @param {string} url The URL for WebSocket to connect to.
- * @return {Promise} The promise for success/error events.
- */
-function requestViaWebSocket(url) {
-  return new Promise(function(resolve, reject) {
-    var websocket = new WebSocket(url);
-
-    websocket.addEventListener("message", function(e) {
-      resolve(e.data);
-    });
-
-    websocket.addEventListener("open", function(e) {
-      websocket.send("echo");
-    });
-
-    websocket.addEventListener("error", function(e) {
-      reject(e)
-    });
-  })
-  .then(data => {
-      return JSON.parse(data);
-    });
-}
-
-// SanityChecker does nothing in release mode. See sanity-checker.js for debug
-// mode.
-function SanityChecker() {}
-SanityChecker.prototype.checkScenario = function() {};
-SanityChecker.prototype.setFailTimeout = function(test, timeout) {};
-SanityChecker.prototype.checkSubresourceResult = function() {};
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/iframe-inheritance.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/iframe-inheritance.html
index 6c54c43..3bab0979 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/iframe-inheritance.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/iframe-inheritance.html
@@ -7,7 +7,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
     <meta name="referrer" content="origin">
   </head>
@@ -25,7 +25,7 @@
         iframe.src = "about:blank";
         document.body.appendChild(iframe);
         iframe.contentDocument.write(`
-            <script src = "/referrer-policy/generic/common.js"></` + `script>
+            <script src = "/common/security-features/resources/common.js"></` + `script>
             <script src = "/referrer-policy/generic/referrer-policy-test-case.js"></` + `script>
             <script>
               var urlPath = "/referrer-policy/generic/subresource/xhr.py";
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/link-rel-prefetch.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/link-rel-prefetch.html
index 16452b1d..0f78596 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/link-rel-prefetch.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/link-rel-prefetch.html
@@ -5,7 +5,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <meta name="referrer" content="origin">
     <link rel="prefetch" href="/referrer-policy/generic/subresource/image.py">
   </head>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-and-values.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-and-values.html
index ccbc02be..d6b9408c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-and-values.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-and-values.html
@@ -5,7 +5,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
 
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-combined.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-combined.html
index 7def76b9..0b36aeee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-combined.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-combined.html
@@ -5,7 +5,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
 
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-invalid.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-invalid.html
index eb6c217..599ffdccc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-invalid.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-invalid.html
@@ -5,7 +5,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
 
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-unknown-token.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-unknown-token.html
index 91e216b2..cf9a792 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-unknown-token.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers-one-unknown-token.html
@@ -5,7 +5,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
 
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers.html
index a74cf60..418044a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/multiple-headers.html
@@ -5,7 +5,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
 
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/referrer-policy-test-case.js b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/referrer-policy-test-case.js
index 2c5c8eb..1345e71 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/referrer-policy-test-case.js
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/referrer-policy-test-case.js
@@ -50,6 +50,19 @@
     "xhr-request": requestViaXhr
   };
 
+  const subresourcePath = {
+    "a-tag": "/referrer-policy/generic/subresource/document.py",
+    "area-tag": "/referrer-policy/generic/subresource/document.py",
+    "fetch-request": "/referrer-policy/generic/subresource/xhr.py",
+    "iframe-tag": "/referrer-policy/generic/subresource/document.py",
+    "img-tag": "/referrer-policy/generic/subresource/image.py",
+    "script-tag": "/referrer-policy/generic/subresource/script.py",
+    "worker-request": "/referrer-policy/generic/subresource/worker.py",
+    "module-worker": "/referrer-policy/generic/subresource/worker.py",
+    "shared-worker": "/referrer-policy/generic/subresource/shared-worker.py",
+    "xhr-request": "/referrer-policy/generic/subresource/xhr.py"
+  };
+
   var referrerUrlResolver = {
     "omitted": function() {
       return undefined;
@@ -85,7 +98,7 @@
       return t._scenario.target_protocol + "://" +
              domainForOrigin[t._scenario.origin] +
              normalizePort(targetPort) +
-             t._scenario["subresource_path"] +
+             subresourcePath[t._scenario.subresource] +
              "?redirection=" + t._scenario["redirection"] +
              "&cache_destroyer=" + (new Date()).getTime();
     },
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html
index 73b48f1..103627b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html
@@ -7,7 +7,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
@@ -26,7 +26,7 @@
           iframe.sandbox = sandboxAttributes;
           iframe.srcdoc = `
               <meta name = "referrer" content = "always">
-              <script src = "/referrer-policy/generic/common.js"></` + `script>
+              <script src = "/common/security-features/resources/common.js"></` + `script>
               <script src = "/referrer-policy/generic/referrer-policy-test-case.js"></` + `script>
               <script>
                 var urlPath = "/referrer-policy/generic/subresource/xhr.py";
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sanity-checker.js b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sanity-checker.js
index e071488..5c01c36 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sanity-checker.js
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/sanity-checker.js
@@ -13,9 +13,6 @@
     var expectedFields = SPEC_JSON["test_expansion_schema"];
     expectedFields["referrer_policy"] = SPEC_JSON["referrer_policy_schema"];
 
-    assert_own_property(scenario, "subresource_path",
-                        "Scenario has the path to the subresource.");
-
     for (var field in expectedFields) {
       assert_own_property(scenario, field,
                           "The scenario contains field " + field)
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/area-navigate.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/area-navigate.html
index c601c249..b7f05be9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/area-navigate.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/area-navigate.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/fetch-messaging.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/fetch-messaging.html
index 4d40245..2c12ae4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/fetch-messaging.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/fetch-messaging.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/iframe-messaging.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/iframe-messaging.html
index 3072436b..3bfada3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/iframe-messaging.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/iframe-messaging.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/image-decoding.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/image-decoding.html
index b132c06..807344da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/image-decoding.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/image-decoding.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/link-navigate.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/link-navigate.html
index 583458b5..8c5d2c83 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/link-navigate.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/link-navigate.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/script-messaging.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/script-messaging.html
index 7bc36dc..cdeb1a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/script-messaging.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/script-messaging.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/worker-messaging.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/worker-messaging.html
index 9daf6d5..7ef9b38 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/worker-messaging.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/worker-messaging.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/xhr-messaging.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/xhr-messaging.html
index a0208051..1bd1b4c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/xhr-messaging.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/subresource-test/xhr-messaging.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.debug.html.template b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.debug.html.template
index 0faf63b..ce7761b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.debug.html.template
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.debug.html.template
@@ -8,7 +8,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <!-- The original specification JSON for validating the scenario. -->
     <script src="/referrer-policy/spec_json.js"></script>
     <!-- Internal checking of the tests -->
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.js.template b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.js.template
index 4b01d4d1..9000994 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.js.template
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.js.template
@@ -7,7 +7,6 @@
     "source_protocol": "%(source_protocol)s",
     "target_protocol": "%(target_protocol)s",
     "subresource": "%(subresource)s",
-    "subresource_path": "%(subresource_path)s",
     "referrer_url": "%(referrer_url)s"
   },
   document.querySelector("meta[name=assert]").content,
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.release.html.template b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.release.html.template
index 0d63fd6..e55a50b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.release.html.template
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/template/test.release.html.template
@@ -9,8 +9,7 @@
     <meta name="assert" content="%(test_description)s">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/generate.py b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/generate.py
index 46314d44..5929486 100755
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/generate.py
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/generate.py
@@ -48,13 +48,11 @@
             yield next_selection
 
 
-def generate_selection(selection, spec, subresource_path,
-                       test_html_template_basename):
+def generate_selection(selection, spec, test_html_template_basename):
     selection['spec_name'] = spec['name']
     selection['spec_title'] = spec['title']
     selection['spec_description'] = spec['description']
     selection['spec_specification_url'] = spec['specification_url']
-    selection['subresource_path'] = subresource_path
     # Oddball: it can be None, so in JS it's null.
     selection['referrer_policy_json'] = json.dumps(spec['referrer_policy'])
 
@@ -170,11 +168,8 @@
 
         for selection_path in output_dict:
             selection = output_dict[selection_path]
-            subresource_path = \
-                spec_json["subresource_path"][selection["subresource"]]
             generate_selection(selection,
                                spec,
-                               subresource_path,
                                html_template)
 
 
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/spec_validator.py b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/spec_validator.py
index b1749d2..70656db 100755
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/spec_validator.py
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/tools/spec_validator.py
@@ -78,7 +78,6 @@
     assert_contains_only_fields(spec_json, ["specification",
                                             "referrer_policy_schema",
                                             "test_expansion_schema",
-                                            "subresource_path",
                                             "excluded_tests"])
     assert_non_empty_list(spec_json, "specification")
     assert_non_empty_list(spec_json, "referrer_policy_schema")
@@ -89,7 +88,6 @@
     referrer_policy_schema = spec_json['referrer_policy_schema']
     test_expansion_schema = spec_json['test_expansion_schema']
     excluded_tests = spec_json['excluded_tests']
-    subresource_path = spec_json['subresource_path']
 
     valid_test_expansion_fields = ['name'] + test_expansion_schema.keys()
 
@@ -152,16 +150,6 @@
                 test_expansion_schema[artifact])
             del details['test_expansion_field']
 
-    # Validate subresource paths.
-    details['object'] = subresource_path
-    assert_contains_only_fields(subresource_path,
-                                test_expansion_schema['subresource']);
-
-    for subresource in subresource_path:
-        local_rel_path = "." + subresource_path[subresource]
-        full_path = os.path.join(test_root_directory, local_rel_path)
-        assert os.path.isfile(full_path), "%s is not an existing file" % path
-
     del details['object']
 
 
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/unsupported-csp-referrer-directive.html b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/unsupported-csp-referrer-directive.html
index 40942a8..f639ead 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/generic/unsupported-csp-referrer-directive.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/generic/unsupported-csp-referrer-directive.html
@@ -6,7 +6,7 @@
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <!-- Common global functions for referrer-policy tests. -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 101f208..cbe5c340 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index e5e6a78..bdbf8c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 9d0ab240..7bdbbc1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index a8935c2b..7badfd8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 35d6245f..45667282 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index dae1ad5..f3a056045 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 86fa999..3498954 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index f8712fd2..d474e01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 701ec1d..d4835b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index d1b0482..df7e879 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 9dcfbac..4fa4a9e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 9f8f2d88..72be051 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index ca6ada1..1ad65c0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 49a8973..81f4844 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index a1eaf56e..1c7bce4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 70e1934..370d6387 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 85d4a15f..81553da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index e6863a13..9c5d6089 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 9a2dd53..301c53d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 058e0872..a17c9867 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 20d2c1b..7035e54e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index c5c0dd24..4208fb49 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index d5e3b9f..79180dd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index b3e8832..cfcaf54 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 1415f88..a31e8ef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index c9e14a5..59edb33 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 1197e4ea..c9959ff2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index c2c4ccd..2d0c223 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index e5da881..91c0a42f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index a0e3be1..dc29dbf6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index ca23aa44..11bfaaa5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 34a7176..cde4ea00 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 621a3f4..a28f306 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 70813579..65bd208 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index ca8b083..1e92417 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 553af1b..1ea239c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 5ac87bc..f082624 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 389921d4..feec9a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index dfbabf2..dac22586 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 233611e..1710dd8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 1339367..43faed2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 301edec..53d3ed9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index e398d46..9386254 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index eb99569..97f3d84d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index a05ee8e..9f12fd8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 00e0b12..7389528 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 4e17453..3e87aa5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 99be5759..8d779a2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 8b4c4a8..f8f58a8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 3a808fa1..61e5070 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index e6a4a48..ed912fd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 5b6a0f0..bb4ccc4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 45a76a77..ddc4a43 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index a3f6a8b..0adea70 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 013ad95..2756f376 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index eb834de9..a92a57a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index babd2f1..5effff6c0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index a3f6d25..a386a25 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 7e456c4..041a0def 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 6684bb31..3eed81b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 2937568..91e8184 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 695a773..4dca870 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index f7e7f0b..451de2c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index a54cf864..7f40332 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index b7adfc5..427d70cb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 6639c02..d6783b5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index f6e4ba0..3299615 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 8aaee1ba..46da8711 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 0a7d631..b7cd588 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 5c4afd6b..63841b8d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index bd9dec5..6b9d4d1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index dd03fe5..d030178 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index ca38b69..2aa0c8e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 5b0157e..720329e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index 47a08dd..116f07c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index be990f21..4bc58094 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 8cf74125..df2d8fc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 7cb08817..dafaeb26 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 2a4bde0..b2aa15f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 55ccac1..8082bae8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 36e1fed..dd54f1d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index fc4a9865..e6ab88c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
index 6cc76f75..303247356 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
index 7eb7b81..e8c152f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index c0fe57e..35f6072 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index dffd455..fc629c3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 79d8995..7148d49 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
index ab381f0..0fefd8d9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
index d0b3f5a..1929fde 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
index b900876..acf66a90 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
index 834afccf..75e2cd73 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index d521c16..f9fb398 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 6299e8ec..559872f1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index c67433bb..ac2bec35 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index eec9e27..34d782c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 8b46cf5..f6f19227d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 94290a0..1497279 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index dd800d3..eef23b2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 96b2d32..45f515c0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 75f0f33..6970b1f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 97c4bb9..b529c14 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index f6e9650..54d02b5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 71ff2950..43c1f774c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 399bb0c..8afc89e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 2ec45b4..c8046a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 6a93f842..f5a1673 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 9b72d4b..f4bec450 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index a7fac61..68f694e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 6e8a612..4bd4099 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 68cc563..7dbb558 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index af2ce4d..2476110d8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 33d9214..afb6b13 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index fe4596e..4c6f569 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index 0f6a74f..ba9f9a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 59fec56..6517df3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index c3bc39e..4e15e43 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index d6efd897..7638b0a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index aa00c6f7..6eb29336 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 5508357..1a8e73ce 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index e1d4a6b..12b0d017 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 6717cc2a..3ae13145 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index fd9e5863..219c254a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index d7fd000..7f3aa55 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 21f16002..e69ae08 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index aac4a2a..e199ae2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 7e1ce57d..2198438f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 05b5362..41e2e81 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 8d84056..b66d22e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index e09f582..f5c003e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index e4f4232..8e91b24 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index d3b557d..af01d1e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index c748f8c..99cfb54 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 7ff4aea0e..31d9834 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index cad3acf..528ebdd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 6975f780..9a773233 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index b55f537..691f803 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 514baf5..86386e19 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 41ad2ba..2d1cf98 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 36c8aaea..dbf7e11 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 6cee221..078f1e8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 5a67b55e..d304fee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index a3d17dd..d03e37d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 5a33e4c..b07d532 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index c86db50..1593e0c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index ba698b8..33baa60 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index e153ebd8..c31e2ae 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index e1d04f8..9222a8c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 4451804..d8168c9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index ec8dcc3b..eba59df 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 13d58dc..d1331eb6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index e7ed386..6c9dcdfe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index ce744e0..09d4ca95 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
index 574cdcc..54342e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
index f452387..69775f3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index a70858c0..0ad290b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 621b145..139ed4d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 134267bb..dcd8b45 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
index f7b4c6c3..5e5ec8c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
index dce5baf6..7fc74dd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
index ff6b14d..2d18c27 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
index d2541d34..bca073c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 74f1935..abb70894 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 2da8ff7..6995447 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 559862a..4ff4f97c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 844daf1..4c74d895 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 293d8c3..8d26b422 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 7571a86..9337d1e4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 9693961..27928aa0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index c79814f0..07ddfbc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 04b4a59..d60eac9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 5c749f4..dfc8c35 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 5246fb5..cf4586ca 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 3885e8a..0ab64106 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 9de62cd..53153eb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index af9798b..a176cff 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 36464436..1d6d93b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 455693e..eaad1a0a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 25ca0138..f1bb3cc7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index dd5055d..7aee747 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index dbecd94..34e69f7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer-when-downgrade/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index c58c2c72..42461c7c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 0b7655ac..8e2c9501 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index fe44085e..76b93cb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 875a8ff..def23fdf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 58af86ef..a3266512 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index fb82ab8..1c950d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index bdabcd3f3..610a20c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 542395d..f625618 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index 178f813..678c75ab 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index ff9462ec..000ce7b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index a0b8c34f..ef883ca 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index c5434c6..24510a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 0531f45d..64efe121 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 8691721..0f0dbd6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 4d69c86d..275e6cf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index 3330e7c..343fecc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index f159ef6..f648b8c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 890ab5b..e99813a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index 1dd2d1c..1f77326 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 4c9e155..91aa649 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 0a9f0a3a..a9d51a2f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 563ad1b9..c56bd5b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 1271218..e7d6a22 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index a7b4ad7..91c171f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 4ba159c..5ff9412 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
index c52392c3..5b394487 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 51c5c52..59f2fff 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 6edeebf3..68cd826 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 0276285..93adb61 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 2760fdc..de49d97 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
index 2e65b4d..3c2855c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 639c024..0c7d14b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 88db012..64920f6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 2663e30..2e10439 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 11f22d85..55dc971 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 3ce8fa97..d08bc42 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index c17e9a84..5c49deb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index d3a2a472..eac501ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 393a92a..1db72da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 2f2926b..31aca378 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 34815f4..99902760 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 57cddb7c..8f7caf14 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
index e0388db..0ef53d8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index a3355ef97..a81bfc9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 1aed56a..db728004 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 4dc27f0..62a8de9b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index fc98c1d72..a4efdd16 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 435a4b7c..106e6eda 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index 787e03d..d1093145 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 8dc6c82..d8d6b6e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 4a52130cc..60d19d4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index 0b5fc2178..9b31ed7be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 5a47798f0..7990117 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 5fece11..bb87b5bda 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
index f3921aaf..b4ed0577 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 04ddbad..36d5d03 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index 1d3f7dc..ee6a4b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 68528a3..d40a7ac 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
index 0485112..d65fd11 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index c2ae6ab..8f80e81 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 43a2c9c..5bbfd0ef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index c6fafef..a0d02354 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index d0b61af2..0515d64 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 07949589..3d1bd73 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index 325eaeb..f13681a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index b68a4e51..e1ebe43e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 8f8f01f2..bd6869a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index 74cf6d4e..3d9b9f1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 57c858ae..1d35ee3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 097b8cdd..4401145 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
index c53cf0d..86a68a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index a9370a99..df3ab816 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 713221d..f1422ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 712a2cee..cff3a88 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
index db4b684c..da2c5b7e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 334c549..5f3514b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 9a38440..bc6d22ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 5e8d81c..1290c51 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index a49ecda..c903683a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 723f226..d940f08 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
index c11e690..ddd50e2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index fd4612e..2ef7dde 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
index b18fbef..b9e3c4b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
index 3edc386..9ec62aa2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 4f12853..303a8d01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 52d3ae12..f7e1767c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index cb20e18a..635660b9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
index 636bf37..b2f2be7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
index 38473b34..234103dd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
index e0d3bd0f..c82c8a4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
index f6a5f61..32a281aa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 8a49347b..c69b1e7d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
index 9ab2958..9568f28 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index bda2e617..65b43ac 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
index 131a9c0..76805bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index c114a3f..e497c4b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
index f1dc123..f2515906 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index 44e0199f..f7ca726 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index b7b1fc5..995443fbc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 216a1e6..2c6590a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 355f562..5334977 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index e6154259..db045641 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 7170884..d4672cd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 65a9ba9..eb3a484 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 20dda3fe..3f28ff2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 9beec5d6..cebab2c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index d02fce2b..05b2545 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index ec472b2..7dff4f7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
index deb8d736..bb4388c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 8fa40cb..f2a7ddc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 4f02037..93289f8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index bc1c502..26d5267 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
index 7b2c327c..7e483a26 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index e5ea3115..c062453 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index cd54256a..fdbd90e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 84b7c65..3825e54 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index b9e130b..4d7d1e0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index ee64a39..5d5c4a021 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index 83168af..e0ec15f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 6e624a4c..f803cc2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 206283f..4365a3a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index c451169..637ae95 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index c439981..fa6e076d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 2983109..1b27a92e3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
index 488a26b..8185f00 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 1cf420f..5b2f107 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index 31e5d166..a82dc84b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 15ff3f5a..c9fa90e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
index 0dd487b..4765b57 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index b48e453..1bf43d9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index ba04f94a..d71c10f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index b35d2db..765c59f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index e923921..375e1d42 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index c1b54ab..587d613 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index 3ce1037..58b04f6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 1b4719a..046b05f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index b83af76c..5f86285 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index a370ed3..fa09d76 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index fa2e7a8..f0ceb06 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 485702b..f6f7a8a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
index c412dce..8bd07880 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index c1c32ba..0216050 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 1a73ec9e..de157bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 852b2a7..71975a01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
index fa18f83..ccddbcf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index e8a9e5144..f035f11 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 7932dd8..b05eb93 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 324251c..d5dc7e24 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 67df3bc8..feccd9a9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 9000bcb..f0e0db6e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
index 7f5cb7c..362bf8f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index ea981ad1..4370429 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
index ea935b1..64317423 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
index e22b638..38d05a3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 222b078..fd5ce02 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 3c1c41c..86526c3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 954dede..a9135e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
index d2fc88f..2631486b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
index 6da08e2..74c932ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
index b9ac0ad..1cd5af2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
index 1cb5b30..500eae5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index b052881..bfce0b6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
index 524e650e..157ae0f9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 0b6580b..e2b004a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
index 79329266..cffa02a3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 5c88dca..622f2bfe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
index 2a83f8c..44e6203 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index 3714b4a..ac1ec15f4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 57b4df5..6922466 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index dcf26139..eb74c6f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 070d4283..79098e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 9da6e44..be002de7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 2159b24e..77e3b3c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index aa032ca..151c44ad3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 6e0dcd4..368ad71f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 25559421..6b96346 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 04bb568..349ad204 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index da80635..be53cee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
index 253f15d..f8da5ca 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 3b52719..c3a5047 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/no-referrer/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
index 8227068..b3ab545 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 9455ed8..d4bf7a1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
index a651295..d762dee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
index af8c262..c9d1b4e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
index 2b634b85..927ee8c2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
index 42ed329..a3df640 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
index 9e78e96..ff3342e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
index d34b4ae2..74205b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
index f8a20023..a303873 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
index 38a61d2..4c6c29d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
index 0626306..99144cde 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
index f0dd273..a33e6800 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
index 0687cc22..accf8eb7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 7b6dd7b..58aa461 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
index c371ce9..9924d01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
index 5bfef0ff..421dfc0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
index 8569518..78f4583 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
index 098b987b..6bfcaa4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
index 2d82170..66360f4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
index fce7ad99..19daec1b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
index eadb3d1..db98a1c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
index 1bcb417..f64f19a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
index 8f3c27f..390a5f5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 6633b43..cb99538 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
index 36941155..b9e48fe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
index fc05b1e..9144141 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index 5656012..fb369992 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
index 318ffd5..b5209c48 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
index dea7ad2..e725c59f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 46c715d..50ae40e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
index 12903c4d..cd50a0c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
index ca0b0b1..ce16bd7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
index 19cf593..50e426c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 7745262..ce5af88 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
index f0c9e6fd..f089bb5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
index 2aed178..080b7afc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index 4e18451..7bcb5d5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
index 9063bbd5..4bb082e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
index 56bc742d..4da9437 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 3209c5b..c3733730 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
index d78b714..9f902d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
index f4902bd..a0aeaaa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
index fac6166..ad6787e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
index 7385003c..4a00eab 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 5e3a82f..aef8b03 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
index 6eed1d77..174286a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
index cc3f2c4..3fc318a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
index c9f973b..347ebc1f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
index 6850d32..9e3c509 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
index a27a2ee..1437c09 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
index 67a7335..894f219 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
index bace4139..4bac2f3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
index ebedf9e..ca8069f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
index 58121f9..0f50430e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
index 7381c13..036b2a5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
index 5117e3d..361e380f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
index 637ed02..b99ccab 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
index 20fe88f..0fb8028 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
index 224fc53..302bd24 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
index 856662a..e946058 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 17f7814..e216544 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
index 53d9a704..c9a82a7e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 423c8ed..ec1aa5fe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
index 790b685..21e76cbb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
index 1dae9fe..e70bb29 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
index 75644a3..221f5593 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
index 2a226c6e..4231bf5a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
index e1c3ecd..c52248944d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
index edd101a8..f52c976 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
index 37979395..3260bde 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
index bc7c6d02..87ef4d3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
index f9fbbbc..f3dbd36 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
index f481aa9..aed37136 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
index 6ef928b..c16e78d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
index b253ef8..86212da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index 2d20c7c..b90134b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
index 67169cf..4b0dcf7c2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
index d21c6bda..8f70ddb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 3859dced..70e6d49f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
index 77f71fb3..2b5ad603 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
index 024d43e..0511016 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index fa35c1f3..791dcb0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
index 291f4928..5c9f234 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
index f4006d1..add6afd2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
index 61669344..98e6da8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
index 4daa077..9d29a06 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 369e98e..e00321d7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
index bac8382..f525e4b7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
index b6fe780..dc152b1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
index 1ae15983..a775758 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
index 14159b0d..92a2d44 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
index 3ca50f3..8f18dd1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
index 5bddea2b..5f68ddb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index 9798ee5..0f39752 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
index 79e7506..272b00e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html
index ee78d6e..d926e88b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html
index 0019b7d1..3552354 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index f4020bd..cba63f6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
index 48dcc5d..f44abaa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
index 6cc4669..7666ac3f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index b1bacfe..098ff41 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
index 08156b6..ac60e28d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
index ae1f449..c7c01131 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index 7b0f9d4..cd1bae5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
index 633eb15..fd4d713c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
index b7dd2d2..7d2da9ae 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index d968e31f..60a1186 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html
index cde3c4dc..9b24a9b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html
index 69e0ac3f..351d30b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index f9f5cbf..c665e5b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
index 6a1e8da..05b86531 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
index cae0548b..97c82f6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
index dfbdf4e3..9537a489 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
index 33a64908..368b0ee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 99d89c892..4211efa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
index efc15af..d60f065d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 6457b6d0..662e248 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
index b4895ec..38948e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
index 8253f1e2..907cc36 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
index 8319c47..c75f257 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
index c961420..f39fb39 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
index fc66046..7e687422 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
index a821ec5..17bd96e9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
index f86d0e8..a9a7577 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
index f4826c6..11a87532 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
index d83650ee..a0ed420 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
index d2784ede..f1bf5cd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
index 48676a97..bbd7756 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
index 2812882..293db9a2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
index cc13e37..33680a39 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
index bbb0111..9374b0c9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
index 6d3ec1b9..2b6af670 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 76c95cde..af557c3e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
index 114d4dc..e5013b49 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
index 0b7378bd6..f8f883c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
index d5e863d..071c202 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
index 94f0f0b..4f717db 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
index 4a1ba7a..7fb3baf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
index 7009e93..a5d2f72 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
index 219ae6d8..f3aa717 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
index df5a52f..8e682a3f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
index 7436b39..fa83b85 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
index ef7b77d..f3686ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
index ebaa47c..7e81614 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
index 6cb598b..331bbdc5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index f7b66102..dac39cc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
index cc2175e..d18ea4a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
index b8cecae..09d5070 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index ba8b287..6959254 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
index 9aa2e51..0da5165 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
index 9d997bd..0549934 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index 0245434f..da3532e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
index 12b857b6..2a43365 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
index 056ff4e..2ef56b06 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
index 969d7e8..2daf1582 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
index 091ce5d..13d8b9b5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 9be9f24..ac38dd84 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
index 8a7bdc2..31b0ed5f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
index 4618f8eb..68e7b3b7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
index 3bd6428..7ba521e0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
index 497b8f6..23de8a05 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
index 225c18e..400db8eb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
index eb3e612..fd20ee8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index ef09fe30..2df2a64f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
index 2111a0cf..410b0f6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html
index f0adebf..e8a7f7a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html
index 4d5714f8..c453f6b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index 6578bd1..9796422 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
index 9480247..54fbe6c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
index a4298049..bb4c5d58 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 548e63ea..fa5da93 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
index 32da6f1e..1c793e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
index c7367f7..af71d2c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index a0e33c7..7b048dfdd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
index c80a3c7e..de54508 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
index e7e65e1..2cb2c9c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 42ecdbc..beef748 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html
index c6dcc471..7ff81f1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html
index 53505ab..bbacb98 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/same-origin-upgrade.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index 76b1b2d..75cafd9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 290d81d8..aa620be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 403b08e..a75718db 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 25e9e2f4..685c620 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 0ae83292..7914e4c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 7358e1c..a24dbda 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index 77b87b8..7ec3eda 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index e8ba9a7..214480ca 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 9be1730a..1a4d149 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index a7d72f5..d120b9c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 9bfb081..e634d52 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index 6d528c0..41d7e85 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 5622a50bf..48189b1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index dfdf69f..8f7a234 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index f5542f97..8a7a4cd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 8cec185..a868394 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index 9cb253f..f4275d6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 2ce74e6..248ffa3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 0a24543..16c4475 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index 463b67e..8bf0a004 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 10ef951..611336e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 899f078c..bdf2c01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index ce0b1252..e5f01e6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 39304901..e471f0a9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 98710624..8f7e7201 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 33d76d3..c52859b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
index 56a0eab..30075af 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 2befe6f..3f84d37 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 84333fb..7a233bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 15cd9b2b..3e523d9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 10984fd..532f0c5c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
index e71d09ac..f9c2b47 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index c9cb0684..7ff76ce 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index c6f8e14..dc86ae0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index dd44b667..3ed7638a2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 2ae35e0..ea62578 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 2b7cc6d..50d5a6c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index a6bbc66d..ca19460 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 554665cd..3617e7d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 6237b64b..d21d561a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 6eae7c5..2b9cf95 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 5592aa5d..fffd149 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 758ab57..ab66756 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
index 35a5049..8ee2450 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 851b077e..6b84a80 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index cd93dd6..3f368591 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 3cdd1725..ad08efb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 34be306a..e7a40a8f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 33fe33f..f3a1ceb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index eecbe27..f742fedd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 90f8d6a..fc5ba70b0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 8f88eaf..bee7e7c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index 3df62ff..7bbb4f1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index f9961c35..b318b3d1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 4c124d2..a245060 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
index 29b6635..618f7271 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 501315b..9bccee1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index b8b2f5ad..d134273 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index ddae157a..f33f2a41 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
index b4844541..ec0f304 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index 2219a920..1283487e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 22559b1..10f7d42 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index ddfbd4e..4b988f9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 23df7f0a..3989f87 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 767c138..393b5c8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index 414cae5d..da1a319f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 081b8b55..51e7b9f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index fd3a69a..c3ef83c9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index 65a3a53..c3e7547 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 6fb1b31..36d54be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index d8ff894..8f5729a5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
index 58fbc48..ad5192f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 229787117..bff291d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 7b79cde..38d2b85 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 2a421f84..4c6c66b6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
index df23d02..cd8d5a5b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 0098e8f3..9f3da6f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 6254fb8..16a0ea6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 8454f066..ad1fb82 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 381737d..9f2b156 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 7b600cb..fede3d5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
index f6631d8..433f7e59 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 4f08723..daed62fc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
index db8e7be..615d560 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
index 5a335d0..dac70645 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 04027e95..dac34ad4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 3703722..c649d8d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 13473d5..1c621fd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
index 82ee690..d8b420b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
index 333f687..4fcae62 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
index be0f44c..144995f9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
index 7442817..bd04002 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 619ed34..93c9e35 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
index 015a044..edf049b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 2b3c2527..92eb517e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
index f3110e1..ae73fbc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 02d91a9..37b9083 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
index 064eea5a..9f077ba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index d92098a3..57d7d3a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index a8f6d4c..e857f4c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 22b20d3..1b49b8f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index e4c0e8e6..44ce107 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 30a7422fe..84bd7f15 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 99c436d..af062631 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index a94ce6d..c05be86f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 9f262c08..ea519ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
index e4d50953..34b7778 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 3a3e505e..770a09f7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 8cf8a9d..734bc6f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
index f0e9bcf..d050b56 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 9bb9159f..dab9d52 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 0d75669..84dea49 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 66cad98..7b1cbb2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
index 373a9a1..99c2a35 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 0661bda..74d96730 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 95cfae3..9ce9bede 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 5631be4..506e55c7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index c5f2de3..bbab94c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index e676621..ec56711 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index d1f431f..b8e5a1e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 10ba9c18..c4c455d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 78762fe5..7c00437 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index 8580bf4..f7e611b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 740cca8f..e813a79b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 3809652..b399c06 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
index 9d1db30..e932931 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index f28bd67..2139b0b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index ad1d0d0..71695073 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 52ea79ea..5e689a4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
index 45bc707..397d206 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index d803870..0ccd881d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 6465e10c..e7e41b63 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 413690e8..03081d0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 602ec76..18ce974 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 1a987e7..a5950be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index b7d1135..f8a80aa5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 312c8d5..2e5e19e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index ba9d5d08..c7ebf4a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index 93a164d..3a9187bc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 9b8f447..0cbaa01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 8b1a8ea3..3737ab6a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
index d40d7b4..4c38441 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 65bc469..037b7a01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 69c724f..0cb67fe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index cba7210..16fd999 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
index 54122bd8..d38c1b65 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index a83eed3..074b186 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 493f799..9f644b23 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 4aaae188..b9ac4730 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index acf0c7a..f4342e3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 99da41e..9ed44e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
index 756dfb3..6dd14610 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 65ed223..821d533f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
index 87ebfbfa..06d6ba9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
index 0cf72a9..f4357c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 96e7d4e7..53a65a9c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
index d6c28231..73766d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index ee9ad999..a534338 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
index 09ccab6..90f15d3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
index 36e0f5d..4e4bd6e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
index 69a8c2c..8e69d73 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
index 4d4e8ef2..400e925 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index e33ca1b..94ec3d20 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
index e966c29..bf854e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 175441c..45a441a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
index f323ca7..ae8a1cbe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 21828b7..487a4e0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
index cadd6aa..ed9dca4b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index ac6d689b..b48fa874 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 92c2e4d..b70b0138 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index eceedcb..8bca7260 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index e847df8f..5145f3b8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 9cb83cb..49aecc7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 700d958..8e30651 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 73c907d..e8cbb667 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 2b7786c..348ed773 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 15ff14f..72ff5190 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index ba84112..d790e13 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 60df8dd..1a05902 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
index a119d66b..5d798f5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 47c8084..a11d44f17 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
index 8d4c19c4..27be3854 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 14e928e..d781a3c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
index 0e549ae0..10d6d02 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
index ea0d402..692bceabc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
index 0acf101..560438c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
index 7026fe1d..e2e3c14 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
index e8bb9ae..4d1c319 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
index 0c7b712..bc7ee277 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
index eca111b..7cf53822 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
index f4629963..ec99ff4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
index 59943a3e..2b47852 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 73f992b..a2b03ce 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
index 7fc3541b..1ed9506 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 73ba641f..10d8d55e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
index 172853a..e5599ca5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
index b2104f4..5982a1a2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
index c984c436..d843f6e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
index 7b61c26..22e5916 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
index aa3b6aa0..32fc200 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
index b993d95..1b40227 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
index a384aa04..16e801b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
index 4cb71bcb..3877ada 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
index 66abd90..1fc0adb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 7c366c10..190220f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
index 11683e4..fa4064bb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
index 6170937..ce1a841 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index 594c2984..c779d14 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
index 0a4d82c7..949c123 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
index 7eee32a04..d24966f2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index f92bf34..5a995aa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index f17556c5..08319d5fa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index fa91f2c..31692cc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index ddd0fd4..dd06b82 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
index f04cea14..b5c99bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
index 18dba00..06780d95 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
index 9d8b2b2c..5e57d9a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
index 2befaca..ac2b34d4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 988c99d5..3db9b5d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
index 7588d84..8102315 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 3e2b369..9cffc3a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
index b26c3ef..77090c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
index c7c348f..e36ed4dd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
index 126e278..90de6fb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
index f22d6d8..a483e45 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
index 90dd8881..88e761fa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
index 8dd055d7..ab9b340 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
index 32248c7..2ae89993 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
index 4e41494..318ac0f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
index 08973c5..ca48b23 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
index 54629cb45..1556581 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
index 8637915..c0284a4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
index 1e66182f..8d701f43 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
index 289a4a5..3ac0dcc9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 4d44a10..3450d8e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
index d76ff641..2aed29b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
index 37d4e3e..594eb723 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
index 2757daba..6531c27e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
index 8a40547..f3ea627 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
index f5c690b..6abc50ec 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
index ba1424c..6f11fcc8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
index 7aebb65..2a7ea1c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
index 8d145be..dd9cacd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
index 6d334876..67d90cd4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
index 941dd86..c6962cf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
index 41e0570..d7f3d69 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
index 1af12eb..8076d21 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
index 8f72529..7512b2e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
index 36e5d0a..61a4547e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index 87cc414..23176037 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
index 41d8f63..d256320b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
index e9082a80..54a2aee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 731cb63..d2f96231 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
index 94a1cec..39344d05 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
index 0e0fc8e5..aa394e3a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index b5f8a4c..b1cd787f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
index 8da4f3b..632f1e32 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
index 424221d9..2525a167 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
index bbc8f26..1d754d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
index d373139..8776fdc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 49468d1..ff1f2711 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
index 84f4c47..9b189b5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
index e7d9438..b190d3b1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
index 5f8f6c1e..84bf6dad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
index 44413d7b..d7efdd2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
index c3be387..dd169e5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
index f4800516..8806a01 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index ce60482..e4ce94a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index 5714a7e0..f1fbb2b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index ca5c1fd..1555a3d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index 934fb53..7e27cfdc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 755075a..b716504 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index 56c1bdb7..0c8e45be8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
index 319db6a..22b88b8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
index 9864344..ec43372b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
index a70bbb7f..88f90ba8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
index 2199fba..5f24b6e4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
index 0038a1a..0d03f45b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
index 8555bc6..b289aa5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
index bd2014b..e7001e50 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
index b519ebc..903030a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
index a70f22d6..d0d2862 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
index 63393898..b6c3033e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
index b9eefbc..d714cf6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
index 82fc3b1..5c37342f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
index bbcbe23..219a8663 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
index fd270955..bab1422 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
index 4739c58..dcb2fef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
index fe6f0283..4afe764 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
index 80f337f9..59c9006a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
index 5d0f816..ecc047c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
index 3a4fb95e..3bc5d62 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
index 20c2f4f..f0b5310 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
index d3ad1f9..e3819a3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
index 5de6a24..b6ac8b1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
index d39c95d8..2b9112f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
index df9f3a8..9ee2002 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
index 729839842..2c4115e9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
index f5e5c523..6f2bfd5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
index 5e03688..b10591c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
index 346e401..b7fbd26 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
index 27d89b3..da50e5c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
index 045dc061..7830d6f4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
index aadf717..99dd29ee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
index aada3951..465007e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/cross-origin.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
index ab255af..a88aa71 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
index 9bbbfb7..3f8cae0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
index 6d7a54cd..d92b1c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index 8117e29..d8951158 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
index 34859ed..da4812ee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
index e7390895..9254b47bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 0080977..3dd0924 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
index 155bf010..14a541a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
index 7b3442d..1763d19 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index fe2b40c..9ec70b6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
index c0d87fa..52d5a74 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
index 8586b96..dd0c663 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
index 18f3dbc8..4f157deb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
index f296512..7d23326 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 8eaeb5cd..a1e1b9d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
index 548025d..b2bbee5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
index d6e828c5..01c4548 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
index 2e459e3d..f31661fc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
index 0760ef9..68c1c107 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
index 9ca45122..c301290f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
index a8ec1e6..0210924 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index 5fdacce..d8de5bb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
index cac2719..4a376c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
index 7023a52..64d2fce 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
index a6be79b..b6966365 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
index 70602133..591f211 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
index 27a95b7..fc88896b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/same-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/same-origin-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/spec.src.json b/third_party/blink/web_tests/external/wpt/referrer-policy/spec.src.json
index 97fbad6..5f0247b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/spec.src.json
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/spec.src.json
@@ -640,18 +640,5 @@
       "origin",
       "stripped-referrer"
     ]
-  },
-
-  "subresource_path": {
-    "a-tag": "/referrer-policy/generic/subresource/document.py",
-    "area-tag": "/referrer-policy/generic/subresource/document.py",
-    "fetch-request": "/referrer-policy/generic/subresource/xhr.py",
-    "iframe-tag": "/referrer-policy/generic/subresource/document.py",
-    "img-tag": "/referrer-policy/generic/subresource/image.py",
-    "script-tag": "/referrer-policy/generic/subresource/script.py",
-    "worker-request": "/referrer-policy/generic/subresource/worker.py",
-    "module-worker": "/referrer-policy/generic/subresource/worker.py",
-    "shared-worker": "/referrer-policy/generic/subresource/shared-worker.py",
-    "xhr-request": "/referrer-policy/generic/subresource/xhr.py"
   }
 }
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
index 0f00dc4..0c23a10 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
index 410b5da8..05d3c57a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
index ee98171..649fc0bb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
index 7f80e3dc..ceb1df9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
index e1acb81..518a983b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
index 8f524a2..1891f73 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
index d1d3bfbf..0510bad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
index aa2b89c..36d2e8b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
index 3d35d85..9235e2f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
index 6185377..4ed01ba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 9e10c7f..1d76bd4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 6b6302a..ea4a9cd9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index bcdf715..113c6de 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 18ec84b..9a13daa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 07bcce77..d611bb5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 81c5c0b..e6a2f23 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 3e08734..61ab8977 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index ad88c2de..8f69b50 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 62cfcfb..00ec7fd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 867f86fc..c36fc8dd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
index 8ab2c07..977b03a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
index 14ffec0..6665152 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
index 1dd3145..b3212e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
index fbda921..ebb494d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
index 0ba667d9..b43d0d9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
index abbc2d8..0b7fff63 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
index 71b1a90..95b684b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
index 6466b7f1..aaf4952c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
index a86dca2..e812d9a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
index 6936906..70e0de3d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 44b03ee..ed76f75 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index f21693a2..181b14f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 5ecad484..9f85cba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 4a37ed8..873f53f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 44d4afa..5c680ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index e0135ac6..9adb33a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index c03ac3ec..c01fdd42 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 81f8677..b72ab96 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 79b6a081..f4d4be6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 0517a5d4..690c3f53 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
index e49741f..e64a489 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html
index 78028ea..6bc062c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html
index b436f26..58feb6d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html
index 7f0b239..ffff41d3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
index 7d86575..efb17d6a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
index cf0764b..ce5dbd7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
index 68f7480..34c1e30 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
index 713b5ee..07d5571 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
index 5ce05593..dcde036 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
index e1b43a7..f5efe8c0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
index 57e8410..95939f1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
index 220448dd..4063445 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
index 1bf99f1..a520b09 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html
index 4b41fa5..a1284bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html
index f46debf..c4d04af 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html
index 7642d2f3..585b273 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 66928c5..6f68668 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 23dddef0..d7cad6d1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 41eb7ea..e5d8f02cc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index fa964a4..16cbf347 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index a973b97..14d7741 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 8e6ca11..778169f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 7073af2..fd7e6df 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 6554f6c..af30f36 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 65f8a56..53d4bc14 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 9c0a097..b65e35e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index f456395..2e774af 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 6943ffa9..44d5a7e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index b14bb43..e0a1190 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index b9275cb..862a53dc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 947e631d..78f77cc4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index f6c8623a..fcc8004d9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
index cddec2b..9db0593 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html
index 08135c2a..e1cd5ce7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html
index 37fb15fe..e8966a3dd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html
index 3c35f06..5ca9fa7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
index 0c49b4e..3756bc9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
index bc93039..de03c558 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
index af7d1df7..a47402f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
index b40e4012..55d3eb1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
index fe66263..1f4182fc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
index 4f54837..1df1aea 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html
index 80d2dcd0..e6142429 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html
index 695afae6..25c47754 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
index 16c752ce..5098411 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
index 6acc89c..ce461d48 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
index 7620c01..595ff8c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html
index ae16346..25628c5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html
index 118bb0a3..59b5540d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html
index df71263..90c9c062 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html
index c71cd29..c0c4d57 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html
index d5979d7..df3d3caf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html
index b6bedee..12cd210 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html
index 7baab77..afa379c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 693c2370..69ffdead 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index fa61f35..0310cd68 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 316e28a..85d6618 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index f08708b1..2e4e2e4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index c922dd3..21a46331 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index dbbc064..393b2512 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index cd93f80..5c96b21 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 2ce4f8c..c571505 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 05cd143..3bc07177 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 6c0eee6..4db9193 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 55f137e..59ce04e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index c13e87d..c3fcd6c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index ed886aa2..9f60ef48 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 2cf0c49..fdcf4ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index c06e5fa..a9cb84bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index f29aae30..4188c706 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
index dbe403f..5c7e811 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html
index 5d8c30513..adc20b10 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html
index fb54ac71..14c5f88 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html
index 4e71ba5..1f7660e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
index feb537f..2a8ebc5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
index 6dba08c..52204f8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
index d40ed50..b9276fb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
index ba6cc74c..9ce53940 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
index 285c361..16f65d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
index 29976794..9178670e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
index dff2411..2187ed6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
index 6d11862e..9481c4e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
index 1fc31fe..87189f7a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html
index 4a8a1f0..d91479b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html
index 68b177b..04f2d1e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html
index 68a6482..c0a3a3fe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/cross-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 7b1ddac..a7121fa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 684dcaa1..5c945e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index ecfd82d0..fa6bee08 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 7071663d..87b9c18 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 9d761452..b09d94eb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index f515e1d..4a0abcba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 9bba4f39..fda4a75 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index b3d45d7..42eed76 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 0faae4a9..575447c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index cc26b09..03ece49 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 94b4281..dc66954e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index ffb2366a..e2302d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index b67826d..2ecbb3bb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 596550e8..ae5bac9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index dc8ee2a..b2c6669d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 266d4ff2..72bc5f3a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
index 2e49fa6..c216eb8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html
index 0e1f137..a770bc11 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html
index c00e3501..5d6f7b2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html
index 65aa8b72..3612fc0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
index b3079d2d..44ce343 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
index c3ef7af0..cc9bcb4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
index d21951e..dd27180 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
index 7077dfa..3818bdb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
index e6b8211..e3a8560 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
index 28a14304..bb969a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html
index a74c968c..c2d2eef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html
index e7527433..65f61af 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
index 06e0cf6c..f96147a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
index d9cfc360..15f8356 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
index 882de7e..7b37f77 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html
index a567c33..2ee6670f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html
index ede59d3..324200c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html
index e9b7a295..7679e7f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html
index f9e58ca..01429fc8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html
index 2c9beb9..35a67d5c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html
index 2da9b42..6655e66 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html
index 61b40b55..cf42562 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/same-insecure.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 3e10a76..3bfba05 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 3dc9ca4..7682dc3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index fa5788b..f438db2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index f226759..d25fb846 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 263ca22b5..96cdc93e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index e631d79..f698ba3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index dd777e2..0bc65f1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 3666ca9..c031a4c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 083863b..8f40cb4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 73e1f65..af4f0f3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 9b8cb3a1..4a335ea 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index ec76e41..b0bbd0b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 7f76db1..9365b20 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index c6dd559..f8f378e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 8ebdfb9f..d1a685be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 793aef7..50a5f8e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin-when-cross-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index de1463b..66d6405 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 5cec234..6af2ee1d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 0f5f5353..1893dfae 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 67f62b5..3162697b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 0185812e..c9bb4d2f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index b13d43aa..da49cf91 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 733dd399..7a6b6aba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 966f10b..01a91c0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 3001dbfd..245bcde 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 308d22d..e428457 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 6c5e16e3..90568a2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index e5171da..6bf526d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 518fc5ca..6a3de7d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 07c8d14f..787fd136 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 307ec94..5412f5c7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 94a45bb..7c196b7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index ff3a4d5..b65dd714 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 5e202a4..8e4e673 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 437c1a5..9e22575 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index adb575e8..411d654 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index b368130f..362bb73 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 6be36059..33929b4d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 29a5417..6e34809 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 1d19df2c..f9c98e4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 29cec56..3319262 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index fc158a9c..c7b24ea 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 0636fed..a32db59 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 6ee4480..48a0551 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 1e97bb8..d9691a5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index bf2a213..112cb07a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 92f584e..c577811 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 3a3d0cb3..fc3caa7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index b1771d7..562b343 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index a2b64ec..a5efd1a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 10d67abe..5111816d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index c5d55de..88a8d6ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 8b1c993..0abbbc3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index e409624..f9bd0ff 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index d968e80..5235d65e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 9b6ea47c..ca82f79 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 3a37854f..eb2728b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index b8bfa36..6db13b8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index e7abb55..a775c92 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index ee0f6a6..fa5dd4e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 6e0f4dd..ddc08785 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 6dcc1de0..ef1e1e1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index dd867e25..4404426b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index a8a664fa..7bac59b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 778eace9..acbed10 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 151cdf9..c6cf502 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 8356d3b..de2b97f3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index be8889a..51e66f2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index f579e96..36161da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 6771dfdc..a11910b0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 82b6165..9ba64a5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 850b62b..af71a31 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 112efd4..83bb4f5a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 8dd238f..8d8435e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index d0c92c8..2d324453 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 80aba4f..88065cd1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 76edcef..d979933 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 0c9a64d..f53a953 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 7261e07..67600bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index e3d99ada..e27563a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index bf4f76c..282de2a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 3568a585..afe01d9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 34678b6..c385eeb8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index fd6fa84b..d3b18a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 8e2f2611..ae435de 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index f1ef490..ac8edef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 882ec58..5288baf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 61222c06..76a320a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index eced7c9..bd748b6d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 07324af..428ff86 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index 74f5a7c..6669ab2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index e0c91358..c35d7cb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 28616e8..01ba2d5b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 4fb7052..8fb9370 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index dc4f644..de6638c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 829b2b07..ac920cb9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index e2be71d..a6eedfd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index b3d3dc5..e0e92bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
index 82b6754..4586fab 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
index bb8d797..9e0900d7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 56fdc792..d8edc55 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 62397c2..b68fabf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 183620ee..c9623dc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
index 1be3aa7..705a94f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
index ea83402..e751a96 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
index 1b30f714..ee798fd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
index b5880bd..8629041 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index dce61d41d..34909cb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index c857f4c..8baf9ee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 1f13728..3462a51 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index b254707..3dc212e9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 4a82c29..c25f716 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 787d3af..ca6b4320 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 0a1d40c5..a22890c0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 999c43e8..5592f7a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 6330560..af5b5b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 4681722a..ac79d620 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 1487f96..d3bd991 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index ddd876b..3aa49c4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 6c92b8d..dde11eb5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index c2fef2e..b6be0bc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 51b0a80..face97d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index ab62bdbe..32123fa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index bd5bbed3..8efd8497 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index a3d7e84..961cb2b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index e264bc3..5f0a33f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index bdfe9f7b..8bece44 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 96cb246..02c0d38 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index 97b2f49..2167cd1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index 41c90bd..464d3810 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 005b0fa..6bddb18 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index bb240be..076e510 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 0d6b7b2..8e9b655 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 09d9594c..d78d22da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index c83cd66..ca2079d4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index d9ed4f6c..5d9aa9a9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index f060d3b..1eba7c4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index d37724e..090d7177 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 7c9c53f8..6f8a8d1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 2b04c50a..68836a1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 064da1b..de67eb31 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 7046e6e1..f29a313 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index a14d6f7..85ffd5a6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 25557dfb..66c4ed6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index f3ce31c..6539ce8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index fdbf7a78..4588734e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index cf16f8ad..9b86f363 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index ffda5230..7271188 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index e013b680..c26d300 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 1a1b240..70c9c816 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 5bfd8fa..1171eaf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index d6487382..3f958fb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 25f01ca..c37487a8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index c51a797..f7aeb601 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 3562c93..d3696d838 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 50994e2..f6b60e3e3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index da91cfdd..d696ac79 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index bb496aa..3e232830 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 32ceeff..77304433 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 0179180e..cec3060 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index 3b9d5beb..479d8c5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index 01c5646b..b5515806 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index fccec81bb..b1d9cad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 5840859..337b2ee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 4e93faf..47e9004 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 9a9490e..2199f7a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 9e1bd3a..2657884e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 46a7a33..40c7e037 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
index f60cef60..85886ba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
index 3ee6b65..9763a197 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 6186d57..ecbf2b8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 08a6df4f..c0f5c86 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 8bf116b..e747f570 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
index aa874fd..7fd8ff4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
index 056494d..beec47c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
index 7d18b730..c4070ec 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
index 8a85ecf..e5ec2f3a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 3fe96e7..0383a617e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index bdfce453..7ce14526 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 6e29cc1..d613196 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 8f4342b..752a2bb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index dfc4b97..489181e7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index dfbc93f..e3a255b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 4f581e78..b2c688bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 610799d5..1677fde 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index db36bbc..995c0e60 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 8f4eabfa..31f622b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index e5acfb1b..d5a472e0ff 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index f2a6afb8..86665bc9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 40dc6bfa..caff374 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 2bac0fc..2f14b230 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 023680a..6205355d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index fbd9be4..d061c5f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 1b2a3b3c..6066601 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 0c002ef..597c0a5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 3aecaf5..1cbc165 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/strict-origin/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index b803ec8..cefaa9c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 1d4be3c..bd43802 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 7151507..9503d148 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 814b6d9..bce63cd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 3bb8712..a579597 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index 8a8a459..9e292c97 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 04ae66bd..1fa9bf4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index edfdd5a..070e99e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index 19bb254..980678e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 4521600..982a571a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index 0ae15d3..7e9c9f1e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 4947e50..639c2ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 39deeac..9bd40a44 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 334ebae..e2b981ef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index ca1f0a6..8bab7df 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index f813f24..c2d2948 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index d3272c4..f180435 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 9c4d6810..fb1c255c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index 2c445f1..bde4708 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 384d6b4..e28d725 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
index f1d51bf..699a9f8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 22800cf..241f87c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index ceaa016..e9c5fc2a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 5117c0f4..2b77f97 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index d891987..089c3c59 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
index 2460892..f152def 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 10fc2a0..6be7be5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 3fae7fd..1d234b8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 6ad3c31..fff0f8b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 5976b8f..9adae7ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
index 3a4c6024..5a74b6f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 9d504a9..256ffe7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 5fc928a3..7875fa9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 01d2abb..c611592 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 2b520ff4..2705d9d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 7a2fb09..2edd407 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 7612d5ef..bed4da1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 6171619..e3baa43 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 7c900a7..d4eefd63 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 4b307df8..60917b64 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 3aabb1d..30b4a24 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 53ab93a3..78f5cbf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
index ae0a512..efd83b240 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 1360c04..aee2c19 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index e608f52..0bdbad44 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index e8b1059..cc62ce4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 0755eaf..44308b95 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 6c873e8..34fa48f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index e9d9d24..a525fc6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 78b8715..7ac73e2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index a38b20f..f213cd3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index a7fd03c4..8140af2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 06b2b25..8e8241e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 49c3ec5..f8f9328 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
index 163b8c8a..dc670ca 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index c285501..b10e0f2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index 2ce057e..ed9b5c00 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 60803553..3adc054 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
index 046b258..9a64304 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index 59bf756..03a51f7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index eee0a3f..ab4c343 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 57f1a9d..db547ec 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index fdb7033c..931895b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 7168479..0ef325fa 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index 5689889e..69909e9e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 678d955..35115b87 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 73cabcf..b9566357 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index fccf2996..1220a18b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 174c0fea..21df7bc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 832ceb0..144c8bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
index 4ce7799..4608673 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 664cb7e..96faa625 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 2041b85..5e5c5f82 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 2ce45af4..d82278a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
index 038a0b2..928dcce4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 78b340af..f4a8314 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index 12446ba1..6fc3d594 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 70a115d..e9fff3e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 7a083ea6..d6b38a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 12871fa..c399b479 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
index abd803c4..93d63b6c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 02e9b92a..5e771796 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
index 8d97cd7..7b67fec 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
index a3291b0..d8ced77 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/module-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 435281a..e315f3c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
index dbdf2d6f..fa86de29 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index e1643fd..c7ee265f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
index 53cfed5..86ce965 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
index 4621243b..a0a3492f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/shared-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
index 7882c13..ff29153c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
index f9baeba..ba0c3a2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/worker-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 89acf02..67f6ce8b9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
index 9f43191..c1892cb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index 5e492ca9..d40087f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
index f0824a2..c3cb404 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 54a2fc3..e90461c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
index e6775088..0ae217ed 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index c2bccdf7..b55a270 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 79cd636..b092571 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 4fc687f..c0b5209 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 3a24da9..9393d4cd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index 95154a9..b76378b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 501e8ed..9025174 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index a49c2a0..e197f94 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 77d22e9..dd4ebfc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 6ab0525a..057f268 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 22057804..5d87766 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 980c4a9..dbde82d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
index 42c0c4b..02ce759 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index efb989e..a6c62bec 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
index 9bc18f9..e4da9e99 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 15120a2..2eeb2a7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
index dea4a85c..3e8df22 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index c46cbb6..24958f5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index e89ee7f..27c437066 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
index 875901b256..a3b987b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 82858ef..f390274 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 775bf93f..ddd26ce 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
index 41560ae8..79eaac29 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 03073d50..a62df13c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index 5a1e1cc..ff52865 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
index 5dab671..3fd0a99 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 50447b968..b53da6f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index e4d2e2c..0264f09 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
index 374f5c0..8258da3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index f02d54b..90e0df7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
index 8a372ce..ac71e83 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index 71778ee..6e38ce7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
index 6f34ef1..ab90716 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index ebd930f..f0c3f6e6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 18e6eb2..4595ec4c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
index fc44e3e..74551b6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index 5c88226..0476d6f8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index ebf71f1..12f9db6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
index bf6262f..873003b9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index f591cbef..06cabeaf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index ba2d54d..b3b3b5d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
index e8b0aa9..62caaa3e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index a34ce037..2872e8bc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 6482686..789b74b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
index 2610bb0..958547a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 740895b8..97413c4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
index 0f16cc6..99e9bf4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
index 681dab4..19639f84 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
index d72aeb7..8388262 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
index 77c3c68..3de61cf2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
index e5592cd..3522e360 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
index a87451fb..01987663 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
index 631e1477..7241086 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
index 0cbf66f..065d0185 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
index 43dc43d0..2fffac4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
index 7fe2baa..0a3500c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
index c33155b..bb863463 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
index eae3381a..63b5c5a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/module-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
index e1db3d1..77bee45 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
index 404392c..1545ccb9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
index 18cd159..4f5f456 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
index 6fb87153..4c803b3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
index f1f7592..39671be 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/shared-worker/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
index 7a763d0..a0d247f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
index bc7f418..2f787fc9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/worker-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
index 34c7295..4ad2229 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
index 6386f26..7ce79de 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
index e9ffeeba..be77219b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
index e00dc04..5b3f4220 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/a-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
index d3cc95a..8bb961f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
index dbd4183..332f3826 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
index 6e07cfb..09c9f0636 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
index 8c54512..71785bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
index 07e669c..8a1b13d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
index ec2e9c6..1240388 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
index da52ddc..a549e552 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
index 38e4019..1dc5657f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
index 3ae164b..e391b72 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
index 759728b..23220fb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
index 7b73c8de..8fb47741 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
index 379763f..ef8036fc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
index 90417e90..ac23978e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
index a4e1bee..f6bb90e3e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/no-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
index 4780d0d4..9f7db2b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unsafe-url/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/generic.http.html
@@ -14,8 +14,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index d4d48c5..93678e4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index bcd0a81..1167119 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 5534693..558f6538 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index e377fc3..4ea9185 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 2b2c1b2..f243ee2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index e4d5cd7d..f335481 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 2361a04f..1284d29 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index ce4ea6be..85227020 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 2dc068a..b4036ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 87e94c62..c0907438 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index b495fd2..2e1bb1e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 8d6e5f5..e9261bc5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 5fd5bf6..3d46e70 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index fb46a40..0b778f4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 5d37c9f..d5de490 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index efd9143..d7e2a54 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 6198659..ae40fba 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 67f0f03..10c558f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index fcfa56d..117dbf8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 52400d6..c0d9f6c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 29c0ced3..2099d0da 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 7c8e98fa..7b12dba7 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index e67e90c8..729766e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 1866775..3f7f04c9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index b47279c..0fa5970 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 997bbf49..9cd46c0d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 9472829..d913fd5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 3668aee5..dabd9cf6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 2cd7df02..1c5a69f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 3345a9e..08c5c1d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 5ed0f06..6edd0b62 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index cb9ff640..ba34cf5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 8f98188..6dc6e58 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 8c134e9..1869a4a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 7eb82506..9370940 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 35e905c3..6364a6b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 871679a..50f9ef6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index ceb55866..104de66b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 3ea90747..c253955b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 5b89eb7..00058b3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/attr-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index e750aa91..c7c15bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 0665510..3c28f779 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index a93c94af..c14f0f8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index 6665a2f..0a7733497 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index b380ce0..7fa1acae 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 1894667..b21bad3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 033feff..6ef1bfc0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 1f6b628..a1a9cc6e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 88a3e42..bf66c51 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 69d835c..e00dbee8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index ffa234c..fab4c37 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index f92abf0..922da30 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 9538057..49b72b4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index b6191fe..599ba30a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 635ec9d..d456f4fe 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 00848d660..fd6e2e0f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 3ddbcee3..b65752bd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 00cacb9..599558d82 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 68b8f69..edc3544f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index 9390b64f..0bc0ee8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 1c12c9ca2..1f9110c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index a76c980..1bcc264 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index dd1c82d..c74f0712 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 307c762..d1f0c2e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 30530e6..9569bbb4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index d6e1c28..e527876 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 19666416..1e7cb029 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index f05d225d..9f070f67 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index efa96f5..a6f3cc71 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index ecc377c..7c2f24e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index c5b47ed..6a530fc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index f8b744f..5e6ab198 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 6a70b5b4..cc182c1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 36757f5..6f84795 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index c75ea8d..5a17464 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index e765d82..d547c4b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 5d2c1268..3e2b15ce 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 07850f1..6f34b7f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index bea3115..7b3143e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index b1e6128a..00840f73 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 1876447..9d1a36f4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 621aaf8..f50ba29 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
index aa5a9ac..ba6b200 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
index c2201e9..65131c4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 2c16b54..4076b3d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 2c66e693d..2ad2e9d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index e6c6432..cd641e7b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
index f5b7e511..699a94f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
index 526e24ac..0910fa3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
index 686d4fe..26adab87 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
index 63195e03..54b5041 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index ec52992..61dac7d3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index c0aef90..0bba74c77 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 76e883f..87df303 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 00e67df..ba57573 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index d719b513..47b497f2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 21b899d..f284f6cf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index e83e55e..4f5cd42009 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index fdf3cf3..40e927d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index ff768ca..fdece9a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index b36050b5..f1b517e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 943ec5c..5cf1f7c7a 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 44cf0dd..4b97c9b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 9df2901..1ae3c471 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 5b392fb5..00f20b1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 7d6be6e..a39a720 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 29c554a2..4c42aee 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 2f60784c..d03e6203 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 17987726..3eceeff 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index de46596..eb30e847d2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index d519295..7c2b234 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 4ee0c81..a57e2a0 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index 1db8f0d..ac03ced 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index 5b15336..f08ddef2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 30dee35..1836ebd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 31b50bd..65b503d1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index cea04e8..bc7f9ad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index 0e64694..3bdd36af 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index f99e0f0a..732d621c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 1bbcfbb0..8dfe8880 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index a35c885..89cd052 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 7e46eee..95976e08 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 3457d393..e5a62b3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 690b427..00c5d39 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index 7c1838c..5a1c26f8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index b891494..c1d5b4cc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 4c07e9a..c2a56c8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 58c6f09..9c399c3 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 31da002..60ab186 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index b4448f4da..748af8f5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index a9c58e6..0d30bad 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 71e9f32e..dddfbef 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index da7331a..30ad8909 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 8fea31f..10b36101 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 476ddd0..9655342 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index a583699f..719669d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 6f60845..b15ff92 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index 88f9b2f..4aaff55 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index c36005af..eb55e13 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 1b67733..4ee8c79 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 0003f46..5b8fa9cc4 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 89749f24..5504dabd 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/cross-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is cross-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
index 3e9b347..e9054bf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
index 3691150..e9940a8d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
index e8487bca..10b0d60 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
index f3a2ea72..391be7ae 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/fetch-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
index 4f08993..020a95d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
index 7cae210..50269b1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
index 59699ea..8b4d43c 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/iframe-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
index a0e4f7a..181944a1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
index 39bc55b..d93785c6 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
index 842e32d..7329e02b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/img-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
index 1510343..4f3f00a5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
index 37e4203..0c53605 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/module-worker/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
index 39410f4..3a64fb2 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
index 74c79e9f..a228469d 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
index 5a66ee3..7428dbf 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/script-tag/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
index a32157dc..ebb2226 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
index 7031f36..39b2048 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/shared-worker/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
index 6500c7f..b9819db1 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
index 5f10dd7..65be8f33 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/worker-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
index 85ecb5e..abb3d72 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/keep-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
index c4207cf..87d2aeb8 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/no-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
index 359326b..1989f796 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-http/xhr-request/swap-origin-redirect/insecure-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
index 2f6ec65..addd685 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/a-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
index 8378e3f1b..4c15c563 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
index 735dc76..45f5751 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
index ba6d9ab..c958f31b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/fetch-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
index 0d8231cf..39005dc 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
index 82296dc..a51d2fc5 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
index 7a7c19a..9ab1701e 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/iframe-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
index 241ae8b..e34b1e98 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
index 57e56be5..3e4e700 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
index 98738a6..025b656 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
index 3e504c0..600cdb9 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
index f48e258..e95715a15 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
index 59e0195..b9f74bb 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/script-tag/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
index 32e8231f..3713018b 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/keep-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
index 2d391db..fb74c67 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/no-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
index 0bd9d4a..001021f 100644
--- a/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
+++ b/third_party/blink/web_tests/external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/xhr-request/swap-origin-redirect/upgrade-protocol.http.html
@@ -13,8 +13,7 @@
                                  the target request is same-origin.">
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
-    <!-- TODO(kristijanburnik): Minify and merge both: -->
-    <script src="/referrer-policy/generic/common.js"></script>
+    <script src="/common/security-features/resources/common.js"></script>
     <script src="/referrer-policy/generic/referrer-policy-test-case.js?pipe=sub"></script>
   </head>
   <body>
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/update-registration-with-type.https.html b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/update-registration-with-type.https.html
index b712c30f..e7d3692 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/update-registration-with-type.https.html
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/update-registration-with-type.https.html
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <title>Service Worker: Update the registration with a different script type.</title>
 <!-- common.js is for guid() -->
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="resources/test-helpers.sub.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html
index 38e89eb8b..5f65f235 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html
index 87d0d2aa..0e2c86e 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-upgrade.https.html
index 8a68b2d..208e324 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/animation-worklet-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html
index 56d72596..d8d44a6a 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html
index 2e1984f..63848c6 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-upgrade.https.html
index 91d52adb..52f1c4d5 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/audio-worklet-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-redirect-upgrade.https.html
index 7204749..4b4a21ce 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-upgrade.https.html
index 60c5aaaf..53c9997 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/iframe-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-redirect-upgrade.https.html
index 69c3f14..5c7d893 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-upgrade.https.html
index 5ab6306e..6f89705 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/image-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html
index ffc73af..6e9ae4d 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html
index c9c9531..d04165f3 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-upgrade.https.html
index 7cbdff39..191ac12 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/layout-worklet-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-import-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-import-upgrade.https.html
index 0522051..22c1600e 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-import-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-import-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html
index 132663e3..936a7944 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-upgrade.https.html
index a4be5ed..6de610a 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/module-worker-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html
index 96d68e2..da52df5 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html
index 0675c6a..b70c103 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-upgrade.https.html
index b4f1aac0..3f2790a 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/paint-worklet-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/generate.py b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/generate.py
index 2676d0c..8c8cca21 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/generate.py
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/generate.py
@@ -13,7 +13,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/testharness-helper.sub.js b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/testharness-helper.sub.js
index d7be710..70378ed 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/testharness-helper.sub.js
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/support/testharness-helper.sub.js
@@ -1,4 +1,4 @@
-// Used by /mixed-content/generic/common.js.
+// Used by common.js.
 function wrapResult(server_data) {
   // Currently the returned value is not used in mixed-content tests.
   return null;
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-redirect-upgrade.https.html
index 19fbb1f..486965c 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html
index 91ff96d9..b2ce2cf 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html
index 9fb4f85..1639363 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-upgrade.https.html b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-upgrade.https.html
index 9f2cea1..2b0a6a7 100644
--- a/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-upgrade.https.html
+++ b/third_party/blink/web_tests/external/wpt/upgrade-insecure-requests/worker-upgrade.https.html
@@ -6,7 +6,7 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="./support/testharness-helper.sub.js"></script>
-<script src="/mixed-content/generic/common.js"></script>
+<script src="/common/security-features/resources/common.js"></script>
 
 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 </head>
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-transport.https.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-transport.https.html
index fb8aaaf..88984dc 100644
--- a/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-transport.https.html
+++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-transport.https.html
@@ -35,6 +35,7 @@
     const [transceiver] = caller.getTransceivers();
     assert_equals(transceiver.sender.transport,
                   transceiver.receiver.transport);
+    assert_not_equals(sender.transport.iceTransport, null);
   }, 'RTCRtpSender/receiver.transport has a value when connected');
 
   // Test with multiple tracks, and checking details of when things show up
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/regions/support/scroll_up.vtt b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/regions/support/scroll_up.vtt
index 0b88020..c2c2ff36 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/regions/support/scroll_up.vtt
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/regions/support/scroll_up.vtt
@@ -1,4 +1,4 @@
-WEVTT
+WEBVTT
 
 REGION
 id:1
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped-ref.html
index ac208c8..f568217 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped-ref.html
@@ -18,6 +18,7 @@
     width: 40%;
     font-family: sans-serif;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     background: rgba(0,0,0,0.8);
@@ -25,4 +26,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>A A  A   A	A	<br>	A		<br>A	A   A  A A</span></span></div>
+<div class="video"><span class="cue"><span>A A  A   A	A		A		A	A   A  A A</span></span></div>
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped-ref.html
index 4acb777..b8b6025 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped-ref.html
@@ -17,6 +17,7 @@
     right: 0;
     width: 50%;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     font-family: sans-serif;
@@ -26,4 +27,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>This is a test subtitle that most <br>likely 	will span over several <br>rows since it's a pretty long cue <br>with a lot of text.</span></span></div>
+<div class="video"><span class="cue"><span>This is a test subtitle that most likely 	will span over several rows since it's a pretty long cue with a lot of text.</span></span></div>
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped-ref.html
index 1c91eb7..a681294 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped-ref.html
@@ -17,6 +17,7 @@
     right: 0;
     width: 50%;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     font-family: sans-serif;
@@ -25,4 +26,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>This is a test subtitle that most <br>likely 	will span over several <br>rows since it's a pretty long cue <br>with a lot of text.</span></span></div>
+<div class="video"><span class="cue"><span>This is a test subtitle that most likely 	will span over several rows since it's a pretty long cue with a lot of text.</span></span></div>
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped-ref.html
index afcc80c1..3eb92d7 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped-ref.html
@@ -17,6 +17,7 @@
     right: 0;
     width: 50%;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     font-family: sans-serif;
@@ -26,4 +27,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>This is a test subtitle that most <br>likely 	will span over several <br>rows since it's a pretty long cue <br>with a lot of text.</span></span></div>
+<div class="video"><span class="cue"><span>This is a test subtitle that most likely 	will span over several rows since it's a pretty long cue with a lot of text.</span></span></div>
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped-ref.html
index ec2f459..8b9f12a 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped-ref.html
@@ -17,6 +17,7 @@
     right: 0;
     width: 50%;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     font-family: sans-serif;
@@ -26,4 +27,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>This is a test subtitle that most <br>likely 	will span over several <br>rows since it's a pretty long cue <br>with a lot of text.</span></span></div>
+<div class="video"><span class="cue"><span>This is a test subtitle that most likely 	will span over several rows since it's a pretty long cue with a lot of text.</span></span></div>
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped-ref.html
index aee2b7db..5f32a25 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped-ref.html
@@ -17,6 +17,7 @@
     right: 0;
     width: 50%;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     font-family: sans-serif;
@@ -25,4 +26,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>This is a test subtitle that most <br>likely 	will span over several <br>rows since it's a pretty long cue <br>with a lot of text.</span></span></div>
+<div class="video"><span class="cue"><span>This is a test subtitle that most likely 	will span over several rows since it's a pretty long cue with a lot of text.</span></span></div>
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped-ref.html b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped-ref.html
index 6a7e6586..394549b 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped-ref.html
+++ b/third_party/blink/web_tests/external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped-ref.html
@@ -18,6 +18,7 @@
     width: 40%;
     font-family: sans-serif;
     text-align: center;
+    overflow: hidden;
 }
 .cue > span {
     background: rgba(0,0,0,0.8);
@@ -25,4 +26,4 @@
     white-space: pre
 }
 </style>
-<div class="video"><span class="cue"><span>A A  A   A	A	<br>	A		<br>A	A   A  A A</span></span></div>
+<div class="video"><span class="cue"><span>A A  A   A	A		A		A	A   A  A A</span></span></div>
diff --git a/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt b/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt
index 6033407..adda6a8 100644
--- a/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt
@@ -61,8 +61,8 @@
 PASS stepDown("7", "300", "") is "0"
 PASS stepDown("-7", "300", "") is "-300"
 Huge value and small step
-PASS input.min = ""; stepUp("1e+308", "1", "", 999) is "1e+308"
-PASS input.max = ""; stepDown("1e+308", "1", "", 999) is "1e+308"
+PASS input.min = ""; stepUp("1e+308", "100", "", 9) is "1e+308"
+PASS input.max = ""; stepDown("1e+308", "100", "", 9) is "1e+308"
 Fractional numbers
 PASS input.min = ""; stepUp("0", "0.33333333333333333", "", 3) is "1"
 PASS stepUp("1", "0.1", "", 10) is "2"
diff --git a/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer.html b/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer.html
index f2376bb..4c03db4 100644
--- a/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer.html
+++ b/third_party/blink/web_tests/fast/forms/number/number-stepup-stepdown-from-renderer.html
@@ -139,8 +139,8 @@
 shouldBe('stepDown("7", "300", "")', '"0"');
 shouldBe('stepDown("-7", "300", "")', '"-300"');
 debug('Huge value and small step');
-shouldBe('input.min = ""; stepUp("1e+308", "1", "", 999)', '"1e+308"');
-shouldBe('input.max = ""; stepDown("1e+308", "1", "", 999)', '"1e+308"');
+shouldBe('input.min = ""; stepUp("1e+308", "100", "", 9)', '"1e+308"');
+shouldBe('input.max = ""; stepDown("1e+308", "100", "", 9)', '"1e+308"');
 debug('Fractional numbers');
 shouldBe('input.min = ""; stepUp("0", "0.33333333333333333", "", 3)', '"1"');
 shouldBe('stepUp("1", "0.1", "", 10)', '"2"');
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-contenteditable-expected.png b/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-contenteditable-expected.png
index 0e58104..58db08b 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-contenteditable-expected.png
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-contenteditable-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-input-expected.png b/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-input-expected.png
index d44c6b78..59d2e45b 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-input-expected.png
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/editing/input/reveal-caret-of-multiline-input-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/fast/forms/text/input-text-scroll-left-on-blur-expected.png b/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/fast/forms/text/input-text-scroll-left-on-blur-expected.png
index 6c5d61c..d04ebf0 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/fast/forms/text/input-text-scroll-left-on-blur-expected.png
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/fast/forms/text/input-text-scroll-left-on-blur-expected.png
Binary files differ
diff --git a/tools/grit/grit/format/resource_map.py b/tools/grit/grit/format/resource_map.py
index 3f4ab90..c34e4a2 100644
--- a/tools/grit/grit/format/resource_map.py
+++ b/tools/grit/grit/format/resource_map.py
@@ -61,7 +61,7 @@
 #ifndef %(macro_prefix)sGRIT_RESOURCE_MAP_STRUCT_
 #define %(macro_prefix)sGRIT_RESOURCE_MAP_STRUCT_
 struct %(struct_prefix)sGritResourceMap {
-  const char* name;
+  const char* const name;
   int value;%(maybe_gzipped_bool)s
 };
 #endif // %(macro_prefix)sGRIT_RESOURCE_MAP_STRUCT_
diff --git a/tools/grit/grit/format/resource_map_unittest.py b/tools/grit/grit/format/resource_map_unittest.py
index 8ec788b..e1e456e 100755
--- a/tools/grit/grit/format/resource_map_unittest.py
+++ b/tools/grit/grit/format/resource_map_unittest.py
@@ -53,7 +53,7 @@
 #ifndef GRIT_RESOURCE_MAP_STRUCT_
 #define GRIT_RESOURCE_MAP_STRUCT_
 struct GritResourceMap {
-  const char* name;
+  const char* const name;
   int value;
 };
 #endif // GRIT_RESOURCE_MAP_STRUCT_
@@ -109,13 +109,14 @@
 
     formatter = resource_map.GetFormatter('gzipped_resource_file_map_source')
     output = util.StripBlankLinesAndComments(''.join(formatter(grd, 'en', '.')))
+    gen_path = os.path.join('@out_folder@', 'gen', 'foo', 'bar', 'baz.js')
     expected = '''\
 #include "gzipped_resource_map_header.h"
 #include <stddef.h>
 #include "base/stl_util.h"
 #include "the_rc_header.h"
 const GzippedGritResourceMap kTheRcHeader[] = {
-  {"@out_folder@/gen/foo/bar/baz.js", IDR_FOO_BAR_BAZ_JS, true},
+  {"''' + gen_path + '''", IDR_FOO_BAR_BAZ_JS, true},
 };
 const size_t kTheRcHeaderSize = base::size(kTheRcHeader);'''
     self.assertEqual(expected, output)
@@ -148,7 +149,7 @@
 #ifndef GZIPPED_GRIT_RESOURCE_MAP_STRUCT_
 #define GZIPPED_GRIT_RESOURCE_MAP_STRUCT_
 struct GzippedGritResourceMap {
-  const char* name;
+  const char* const name;
   int value;
   bool gzipped;
 };
@@ -216,7 +217,7 @@
 #ifndef GRIT_RESOURCE_MAP_STRUCT_
 #define GRIT_RESOURCE_MAP_STRUCT_
 struct GritResourceMap {
-  const char* name;
+  const char* const name;
   int value;
 };
 #endif // GRIT_RESOURCE_MAP_STRUCT_
@@ -295,7 +296,7 @@
 #ifndef GRIT_RESOURCE_MAP_STRUCT_
 #define GRIT_RESOURCE_MAP_STRUCT_
 struct GritResourceMap {
-  const char* name;
+  const char* const name;
   int value;
 };
 #endif // GRIT_RESOURCE_MAP_STRUCT_
@@ -368,7 +369,7 @@
 #ifndef GRIT_RESOURCE_MAP_STRUCT_
 #define GRIT_RESOURCE_MAP_STRUCT_
 struct GritResourceMap {
-  const char* name;
+  const char* const name;
   int value;
 };
 #endif // GRIT_RESOURCE_MAP_STRUCT_
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index fe79e405..160a8e7 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -43325,6 +43325,10 @@
   <int value="2" label="Parsing error">
     Threshold parameter was not parsed correctly from string to double.
   </int>
+  <int value="3" label="Use default value">
+    Threshold parameter was not supplied or same as the default value. In either
+    case, the default value was used.
+  </int>
 </enum>
 
 <enum name="PowerSupplyType">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 6c1a516..22e6036 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -7707,6 +7707,14 @@
   </summary>
 </histogram>
 
+<histogram name="Autofill.CanLogUKM" enum="BooleanEnabled">
+  <owner>dlkumar@google.com</owner>
+  <owner>chrome-autofill@google.com</owner>
+  <summary>
+    Tracks whether UKM logging is enabled for the page in the Autofill.
+  </summary>
+</histogram>
+
 <histogram name="Autofill.CardholderNameFixFlowPrompt.Events"
     enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2019-12-01">
   <owner>dlkumar@google.com</owner>
@@ -137751,9 +137759,11 @@
   </suffix>
   <suffix name="GCMKeyStore" label="Databases for GCMKeyStore"/>
   <suffix name="ImageManager" label="Databases for ImageManager"/>
+  <suffix name="Metadata" label="Metadata of shared databases"/>
   <suffix name="OfflinePageMetadataStore"
       label="Databases for OfflinePageMetadataStore"/>
   <suffix name="PreviewsHintCacheStore" label="Databases for Previews Hints"/>
+  <suffix name="SharedDb" label="Shared database"/>
   <suffix name="UsageReportsBufferBackend"
       label="The result of the first attempt to open the usage reports buffer
              backend database."/>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index aaa9cec4..2ff4b581 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -456,6 +456,29 @@
   </metric>
 </event>
 
+<event name="Autofill.FormEvent">
+  <owner>dlkumar@google.com</owner>
+  <summary>
+    Recorded when user interacted with autofill.
+  </summary>
+  <metric name="AutofillFormEvent">
+    <summary>
+      Logs autofill form events funnel. See |FormEvent|.
+    </summary>
+  </metric>
+  <metric name="FormTypes">
+    <summary>
+      Type of form. Stored as bitvector. A set ith bit implies enum FormType's
+      ith type was detected. Multiple types are possible.
+    </summary>
+  </metric>
+  <metric name="MillisecondsSinceFormParsed">
+    <summary>
+      Time since form parse.
+    </summary>
+  </metric>
+</event>
+
 <event name="Autofill.FormSubmitted">
   <owner>jiahuiguo@google.com</owner>
   <summary>
@@ -530,15 +553,6 @@
   </metric>
 </event>
 
-<event name="Autofill.SelectedMaskedServerCard">
-  <owner>jiahuiguo@google.com</owner>
-  <metric name="MillisecondsSinceFormParsed">
-    <summary>
-      Time since form parse.
-    </summary>
-  </metric>
-</event>
-
 <event name="Autofill.SuggestionFilled">
   <owner>jiahuiguo@google.com</owner>
   <summary>
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index 6bc20ff9..9c82c36 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -642,6 +642,8 @@
 jumbo_static_library("test_support") {
   testonly = true
   sources = [
+    "resource/mock_resource_bundle_delegate.cc",
+    "resource/mock_resource_bundle_delegate.h",
     "test/material_design_controller_test_api.cc",
     "test/material_design_controller_test_api.h",
     "test/ui_controls.h",
@@ -693,6 +695,7 @@
     "//base/test:test_config",
     "//base/test:test_support",
     "//skia",
+    "//testing/gmock",
     "//testing/gtest",
     "//ui/base:ui_data_pack",
     "//ui/display:test_support",
@@ -914,9 +917,7 @@
       sources += [ "ime/composition_text_util_pango_unittest.cc" ]
     }
     if (is_chromeos || use_ozone) {
-      sources += [
-        "ime/character_composer_unittest.cc",
-      ]
+      sources += [ "ime/character_composer_unittest.cc" ]
     }
   }
 
diff --git a/ui/base/resource/mock_resource_bundle_delegate.cc b/ui/base/resource/mock_resource_bundle_delegate.cc
new file mode 100644
index 0000000..15359d1
--- /dev/null
+++ b/ui/base/resource/mock_resource_bundle_delegate.cc
@@ -0,0 +1,12 @@
+// 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 "ui/base/resource/mock_resource_bundle_delegate.h"
+
+namespace ui {
+
+MockResourceBundleDelegate::MockResourceBundleDelegate() {}
+MockResourceBundleDelegate::~MockResourceBundleDelegate() {}
+
+}  // namespace ui
diff --git a/ui/base/resource/mock_resource_bundle_delegate.h b/ui/base/resource/mock_resource_bundle_delegate.h
new file mode 100644
index 0000000..577a687
--- /dev/null
+++ b/ui/base/resource/mock_resource_bundle_delegate.h
@@ -0,0 +1,38 @@
+// 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 UI_BASE_RESOURCE_MOCK_RESOURCE_BUNDLE_DELEGATE_H_
+#define UI_BASE_RESOURCE_MOCK_RESOURCE_BUNDLE_DELEGATE_H_
+
+#include "testing/gmock/include/gmock/gmock.h"
+#include "ui/base/resource/resource_bundle.h"
+
+namespace ui {
+
+class MockResourceBundleDelegate : public ResourceBundle::Delegate {
+ public:
+  MockResourceBundleDelegate();
+  ~MockResourceBundleDelegate() override;
+
+  MOCK_METHOD2(GetPathForResourcePack,
+               base::FilePath(const base::FilePath& pack_path,
+                              ScaleFactor scale_factor));
+  MOCK_METHOD2(GetPathForLocalePack,
+               base::FilePath(const base::FilePath& pack_path,
+                              const std::string& locale));
+  MOCK_METHOD1(GetImageNamed, gfx::Image(int resource_id));
+  MOCK_METHOD1(GetNativeImageNamed, gfx::Image(int resource_id));
+  MOCK_METHOD2(LoadDataResourceBytes,
+               base::RefCountedMemory*(int resource_id,
+                                       ScaleFactor scale_factor));
+  MOCK_METHOD3(GetRawDataResource,
+               bool(int resource_id,
+                    ScaleFactor scale_factor,
+                    base::StringPiece* value));
+  MOCK_METHOD2(GetLocalizedString, bool(int message_id, base::string16* value));
+};
+
+}  // namespace ui
+
+#endif  // UI_BASE_RESOURCE_MOCK_RESOURCE_BUNDLE_DELEGATE_H_
diff --git a/ui/base/resource/resource_bundle_unittest.cc b/ui/base/resource/resource_bundle_unittest.cc
index e2e69d3..be36b9a 100644
--- a/ui/base/resource/resource_bundle_unittest.cc
+++ b/ui/base/resource/resource_bundle_unittest.cc
@@ -24,6 +24,7 @@
 #include "ui/base/layout.h"
 #include "ui/base/resource/data_pack.h"
 #include "ui/base/resource/data_pack_literal.h"
+#include "ui/base/resource/mock_resource_bundle_delegate.h"
 #include "ui/gfx/codec/png_codec.h"
 #include "ui/gfx/font_list.h"
 #include "ui/gfx/image/image_skia.h"
@@ -37,6 +38,7 @@
 using ::testing::Property;
 using ::testing::Return;
 using ::testing::ReturnArg;
+using ::testing::SetArgPointee;
 
 namespace ui {
 namespace {
@@ -51,39 +53,6 @@
                                            'c', 's', 'C', 'l',
                                            0xc1, 0x30, 0x60, 0x4d };
 
-// Mock for the ResourceBundle::Delegate class.
-class MockResourceBundleDelegate : public ui::ResourceBundle::Delegate {
- public:
-  MockResourceBundleDelegate() {
-  }
-  ~MockResourceBundleDelegate() override {
-  }
-
-  MOCK_METHOD2(GetPathForResourcePack, base::FilePath(
-      const base::FilePath& pack_path, ui::ScaleFactor scale_factor));
-  MOCK_METHOD2(GetPathForLocalePack, base::FilePath(
-      const base::FilePath& pack_path, const std::string& locale));
-  MOCK_METHOD1(GetImageNamed, gfx::Image(int resource_id));
-  MOCK_METHOD1(GetNativeImageNamed, gfx::Image(int resource_id));
-  MOCK_METHOD2(LoadDataResourceBytes,
-      base::RefCountedMemory*(int resource_id, ui::ScaleFactor scale_factor));
-  MOCK_METHOD2(GetRawDataResourceMock, base::StringPiece(
-      int resource_id,
-      ui::ScaleFactor scale_factor));
-  bool GetRawDataResource(int resource_id,
-                          ui::ScaleFactor scale_factor,
-                          base::StringPiece* value) override {
-    *value = GetRawDataResourceMock(resource_id, scale_factor);
-    return true;
-  }
-  MOCK_METHOD1(GetLocalizedStringMock, base::string16(int message_id));
-  bool GetLocalizedString(int message_id,
-                          base::string16* value) override {
-    *value = GetLocalizedStringMock(message_id);
-    return true;
-  }
-};
-
 // Returns |bitmap_data| with |custom_chunk| inserted after the IHDR chunk.
 void AddCustomChunk(const base::StringPiece& custom_chunk,
                     std::vector<unsigned char>* bitmap_data) {
@@ -267,10 +236,10 @@
 
   int resource_id = 5;
 
-  EXPECT_CALL(delegate, GetRawDataResourceMock(
-          resource_id, ui::SCALE_FACTOR_NONE))
+  EXPECT_CALL(delegate,
+              GetRawDataResource(resource_id, ui::SCALE_FACTOR_NONE, _))
       .Times(1)
-      .WillOnce(Return(string_piece));
+      .WillOnce(DoAll(SetArgPointee<2>(string_piece), Return(true)));
 
   base::StringPiece result = resource_bundle->GetRawDataResource(
       resource_id);
@@ -284,9 +253,9 @@
   base::string16 data = base::ASCIIToUTF16("My test data");
   int resource_id = 5;
 
-  EXPECT_CALL(delegate, GetLocalizedStringMock(resource_id))
+  EXPECT_CALL(delegate, GetLocalizedString(resource_id, _))
       .Times(1)
-      .WillOnce(Return(data));
+      .WillOnce(DoAll(SetArgPointee<1>(data), Return(true)));
 
   base::string16 result = resource_bundle->GetLocalizedString(resource_id);
   EXPECT_EQ(data, result);
@@ -329,8 +298,9 @@
   base::string16 delegate_data = base::ASCIIToUTF16("My delegate data");
   int resource_id = 5;
 
-  EXPECT_CALL(delegate, GetLocalizedStringMock(resource_id)).Times(1).WillOnce(
-      Return(delegate_data));
+  EXPECT_CALL(delegate, GetLocalizedString(resource_id, _))
+      .Times(1)
+      .WillOnce(DoAll(SetArgPointee<1>(delegate_data), Return(true)));
 
   base::string16 override_data = base::ASCIIToUTF16("My override data");
 
diff --git a/ui/events/devices/input_device_observer_win.cc b/ui/events/devices/input_device_observer_win.cc
index dc5df14..33b901c 100644
--- a/ui/events/devices/input_device_observer_win.cc
+++ b/ui/events/devices/input_device_observer_win.cc
@@ -82,9 +82,9 @@
 }
 
 WIN_NOTIFY_OBSERVERS(NotifyObserversKeyboardDeviceConfigurationChanged(),
-                     kKeyboard);
+                     kKeyboard)
 
 WIN_NOTIFY_OBSERVERS(NotifyObserversTouchpadDeviceConfigurationChanged(),
-                     kTouchpad);
+                     kTouchpad)
 
 }  // namespace ui
diff --git a/ui/file_manager/file_manager/background/js/background.js b/ui/file_manager/file_manager/background/js/background.js
index 192b2d90..e6224bb 100644
--- a/ui/file_manager/file_manager/background/js/background.js
+++ b/ui/file_manager/file_manager/background/js/background.js
@@ -11,6 +11,7 @@
  */
 function FileBrowserBackgroundImpl() {
   BackgroundBase.call(this);
+  this.setLaunchHandler(this.launch_);
 
   /**
    * Progress center of the background page.
@@ -94,8 +95,7 @@
    */
   this.launcherSearch_ = new LauncherSearch();
 
-  // Initialize handlers.
-  chrome.fileBrowserHandler.onExecute.addListener(this.onExecute_.bind(this));
+  // Initialize listeners.
   chrome.runtime.onMessageExternal.addListener(
       this.onExternalMessageReceived_.bind(this));
   chrome.contextMenus.onClicked.addListener(
@@ -332,42 +332,28 @@
 }
 
 /**
- * Executes a file browser task.
- *
- * @param {string} action Task id.
- * @param {Object} details Details object.
+ * Launches the app.
  * @private
+ * @override
  */
-FileBrowserBackgroundImpl.prototype.onExecute_ = (action, details) => {
-  const appState = {
-    params: {action: action},
-    // It is not allowed to call getParent() here, since there may be
-    // no permissions to access it at this stage. Therefore we are passing
-    // the selectionURL only, and the currentDirectory will be resolved
-    // later.
-    selectionURL: details.entries[0].toURL()
-  };
-
-  // Every other action opens a Files app window.
-  // For mounted devices just focus any Files app window. The mounted
-  // volume will appear on the navigation list.
-  launcher.launchFileManager(
-      appState,
-      /* App ID */ undefined,
-      LaunchType.FOCUS_SAME_OR_CREATE);
+FileBrowserBackgroundImpl.prototype.onLaunched_ = function(launchData) {
+  metrics.startInterval('Load.BackgroundLaunch');
+  if (!launchData || !launchData.items || launchData.items.length == 0) {
+    this.launch_(undefined);
+    return;
+  }
+  BackgroundBase.prototype.onLaunched_.apply(this, [launchData]);
 };
 
 /**
  * Launches the app.
  * @private
- * @override
+ * @param {!Array<string>|undefined} urls
  */
-FileBrowserBackgroundImpl.prototype.onLaunched_ = function() {
-  metrics.startInterval('Load.BackgroundLaunch');
-  this.initializationPromise_.then(() => {
+FileBrowserBackgroundImpl.prototype.launch_ = function(urls) {
+  return this.initializationPromise_.then(() => {
     if (nextFileManagerWindowID == 0) {
-      // The app just launched. Remove window state records that are not needed
-      // any more.
+      // The app just launched. Remove unneeded window state records.
       chrome.storage.local.get(items => {
         for (const key in items) {
           if (items.hasOwnProperty(key)) {
@@ -378,10 +364,15 @@
         }
       });
     }
-    launcher.launchFileManager(
-        null, undefined, LaunchType.FOCUS_ANY_OR_CREATE, () => {
-          metrics.recordInterval('Load.BackgroundLaunch');
-        });
+    let appState = {};
+    let launchType = LaunchType.FOCUS_ANY_OR_CREATE;
+    if (urls) {
+      appState.selectionURL = urls[0];
+      launchType = LaunchType.FOCUS_SAME_OR_CREATE;
+    }
+    launcher.launchFileManager(appState, undefined, launchType, () => {
+      metrics.recordInterval('Load.BackgroundLaunch');
+    });
   });
 };
 
diff --git a/ui/file_manager/file_manager/background/js/crostini.js b/ui/file_manager/file_manager/background/js/crostini.js
index 6dbc764..82ec2fd 100644
--- a/ui/file_manager/file_manager/background/js/crostini.js
+++ b/ui/file_manager/file_manager/background/js/crostini.js
@@ -17,9 +17,8 @@
 
   /**
    * Maintains a list of paths shared with the crostini container.
-   * Keyed by VolumeManagerCommon.RootType, with boolean set values
-   * of string paths.  e.g. {'Downloads': {'/foo': true, '/bar': true}}.
-   * @private @dict {!Object<!Object<boolean>>}
+   * Keyed by entry.toURL().
+   * @private @dict {!Object<boolean>}
    */
   this.shared_paths_ = {};
 }
@@ -91,30 +90,34 @@
 };
 
 /**
+ * @param {!Entry} entry
+ * @return {VolumeManagerCommon.RootType}
+ * @private
+ */
+CrostiniImpl.prototype.getRoot_ = function(entry) {
+  const info =
+      this.volumeManager_ && this.volumeManager_.getLocationInfo(entry);
+  return info && info.rootType;
+};
+
+/**
  * Registers an entry as a shared path.
  * @param {!Entry} entry
  */
 CrostiniImpl.prototype.registerSharedPath = function(entry) {
-  const info = this.volumeManager_.getLocationInfo(entry);
-  if (!info) {
-    return;
-  }
-  let paths = this.shared_paths_[info.rootType];
-  if (!paths) {
-    paths = {};
-    this.shared_paths_[info.rootType] = paths;
-  }
+  const url = entry.toURL();
   // Remove any existing paths that are children of the new path.
-  for (let path in paths) {
-    if (path.startsWith(entry.fullPath)) {
-      delete paths[path];
+  for (let path in this.shared_paths_) {
+    if (path.startsWith(url)) {
+      delete this.shared_paths_[path];
     }
   }
-  paths[entry.fullPath] = true;
+  this.shared_paths_[url] = true;
 
   // Record UMA.
-  let suffix = CrostiniImpl.VALID_ROOT_TYPES_FOR_SHARE.get(info.rootType) ||
-      CrostiniImpl.VALID_DRIVE_FS_ROOT_TYPES_FOR_SHARE.get(info.rootType) ||
+  const root = this.getRoot_(entry);
+  let suffix = CrostiniImpl.VALID_ROOT_TYPES_FOR_SHARE.get(root) ||
+      CrostiniImpl.VALID_DRIVE_FS_ROOT_TYPES_FOR_SHARE.get(root) ||
       CrostiniImpl.UMA_ROOT_TYPE_OTHER;
   metrics.recordSmallCount(
       'CrostiniSharedPaths.Depth.' + suffix,
@@ -126,14 +129,7 @@
  * @param {!Entry} entry
  */
 CrostiniImpl.prototype.unregisterSharedPath = function(entry) {
-  const info = this.volumeManager_.getLocationInfo(entry);
-  if (!info) {
-    return;
-  }
-  const paths = this.shared_paths_[info.rootType];
-  if (paths) {
-    delete paths[entry.fullPath];
-  }
+  delete this.shared_paths_[entry.toURL()];
 };
 
 /**
@@ -160,20 +156,20 @@
  *   share or from one of its ancestor directories.
  */
 CrostiniImpl.prototype.isPathShared = function(entry) {
-  const root = this.volumeManager_.getLocationInfo(entry).rootType;
-  const paths = this.shared_paths_[root];
-  if (!paths) {
-    return false;
-  }
   // Check path and all ancestor directories.
-  let path = entry.fullPath;
-  while (path.length > 1) {
-    if (paths[path]) {
+  let path = entry.toURL();
+  let root = path;
+  if (entry && entry.filesystem && entry.filesystem.root) {
+    root = entry.filesystem.root.toURL();
+  }
+
+  while (path.length > root.length) {
+    if (this.shared_paths_[path]) {
       return true;
     }
     path = path.substring(0, path.lastIndexOf('/'));
   }
-  return !!paths['/'];
+  return !!this.shared_paths_[root];
 };
 
 /**
@@ -191,18 +187,17 @@
     return false;
   }
 
-  // Allow Downloads, and Drive if DriveFS is enabled.
-  const rootType = this.volumeManager_.getLocationInfo(entry).rootType;
+  const root = this.getRoot_(entry);
 
   // TODO(crbug.com/917920): Remove when DriveFS enforces allowed write paths.
   // Disallow Computers Grand Root, and Computer Root.
-  if (rootType === VolumeManagerCommon.RootType.COMPUTERS_GRAND_ROOT ||
-      (rootType === VolumeManagerCommon.RootType.COMPUTER &&
+  if (root === VolumeManagerCommon.RootType.COMPUTERS_GRAND_ROOT ||
+      (root === VolumeManagerCommon.RootType.COMPUTER &&
        entry.fullPath.split('/').length <= 3)) {
     return false;
   }
 
-  return CrostiniImpl.VALID_ROOT_TYPES_FOR_SHARE.has(rootType) ||
+  return CrostiniImpl.VALID_ROOT_TYPES_FOR_SHARE.has(root) ||
       (loadTimeData.getBoolean('DRIVE_FS_ENABLED') &&
-       CrostiniImpl.VALID_DRIVE_FS_ROOT_TYPES_FOR_SHARE.has(rootType));
+       CrostiniImpl.VALID_DRIVE_FS_ROOT_TYPES_FOR_SHARE.has(root));
 };
diff --git a/ui/file_manager/file_manager/foreground/elements/files_metadata_box.js b/ui/file_manager/file_manager/foreground/elements/files_metadata_box.js
index f7f6e644..c56a1e2 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_metadata_box.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_metadata_box.js
@@ -149,9 +149,9 @@
     }
 
     time = parseInt(time, 10);
-    var seconds = time % 60;
-    var minutes = Math.floor(time / 60) % 60;
-    var hours = Math.floor(time / 60 / 60);
+    const seconds = time % 60;
+    const minutes = Math.floor(time / 60) % 60;
+    const hours = Math.floor(time / 60 / 60);
 
     if (hours === 0) {
       return minutes + ':' + ('0' + seconds).slice(-2);
@@ -180,7 +180,7 @@
    * @private
    */
   deviceModel_: function(ifd) {
-    var id = 272;
+    const id = 272;
     return (ifd && ifd.image && ifd.image[id] && ifd.image[id].value) || '';
   },
 
@@ -191,8 +191,8 @@
    * @private
    */
   parseRational_: function(r) {
-    var num = parseInt(r[0], 10);
-    var den = parseInt(r[1], 10);
+    const num = parseInt(r[0], 10);
+    const den = parseInt(r[1], 10);
     return num / den;
   },
 
@@ -206,20 +206,20 @@
    * @private
    */
   geography_: function(ifd) {
-    var gps = ifd && ifd.gps;
+    const gps = ifd && ifd.gps;
     if (!gps || !gps[1] || !gps[2] || !gps[3] || !gps[4]) {
       return '';
     }
 
-    var computeCoordinate = function(value) {
+    const computeCoordinate = value => {
       return this.parseRational_(value[0]) +
           this.parseRational_(value[1]) / 60 +
           this.parseRational_(value[2]) / 3600;
-    }.bind(this);
+    };
 
-    var latitude =
+    const latitude =
         computeCoordinate(gps[2].value) * (gps[1].value === 'N\0' ? 1 : -1);
-    var longitude =
+    const longitude =
         computeCoordinate(gps[4].value) * (gps[3].value === 'E\0' ? 1 : -1);
 
     return Number(latitude).toFixed(3) + ', ' + Number(longitude).toFixed(3);
@@ -235,27 +235,27 @@
    * @private
    */
   deviceSettings_: function(ifd) {
-    var exif = ifd && ifd.exif;
+    const exif = ifd && ifd.exif;
     if (!exif) {
       return '';
     }
 
-    var f = exif[33437] ? this.parseRational_(exif[33437].value) : 0;
-    var fNumber = '';
+    const f = exif[33437] ? this.parseRational_(exif[33437].value) : 0;
+    let fNumber = '';
     if (f) {
       fNumber = 'f/' + (Number.isInteger(f) ? f : Number(f).toFixed(1));
     }
-    var exposureTime =
+    const exposureTime =
         exif[33434] ? exif[33434].value[0] + '/' + exif[33434].value[1] : '';
-    var focalLength = exif[37386] ?
+    const focalLength = exif[37386] ?
         Number(this.parseRational_(exif[37386].value)).toFixed(2) + 'mm' :
         '';
-    var iso = exif[34855] ? 'ISO' + exif[34855].value : '';
+    const iso = exif[34855] ? 'ISO' + exif[34855].value : '';
 
-    var values = [fNumber, exposureTime, focalLength, iso];
+    const values = [fNumber, exposureTime, focalLength, iso];
 
-    var result = '';
-    for (var i = 0; i < values.length; i++) {
+    let result = '';
+    for (let i = 0; i < values.length; i++) {
       if (values[i]) {
         result += (result ? ' ' : '') + values[i];
       }
diff --git a/ui/file_manager/file_manager/foreground/elements/files_quick_view.js b/ui/file_manager/file_manager/foreground/elements/files_quick_view.js
index 44515b3..1e9d1a2 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_quick_view.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_quick_view.js
@@ -46,7 +46,7 @@
    * @param {!Event} e
    */
   applyTextCss: function(e) {
-    var webview = /** @type {WebView} */ (e.target);
+    const webview = /** @type {WebView} */ (e.target);
     webview.insertCSS(
         {'file': 'foreground/elements/files_safe_text_webview_content.css'});
   },
@@ -124,7 +124,7 @@
    * @private
    */
   onContentPanelTap_: function(event) {
-    var target = event.detail.sourceEvent.target;
+    let target = event.detail.sourceEvent.target;
     while (target) {
       if (target.classList.contains('no-close-on-click')) {
         return;
diff --git a/ui/file_manager/file_manager/foreground/elements/files_ripple.js b/ui/file_manager/file_manager/foreground/elements/files_ripple.js
index f1f9649..8adbc47 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_ripple.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_ripple.js
@@ -32,7 +32,7 @@
   },
 
   attached: function() {
-    var node = assert(this.parentElement || this.parentNode.host);
+    const node = assert(this.parentElement || this.parentNode.host);
     // Listen events of parent element.
     this.listen(node, 'down', 'onDown_');
     this.listen(node, 'up', 'onUp_');
@@ -57,7 +57,7 @@
    */
   performPressAnimation: function() {
     /** @type {EventTarget} */
-    var animationPlayer = this.ripple_.animate([
+    const animationPlayer = this.ripple_.animate([
       {
         width: '2%',
         height: '2%',
@@ -75,7 +75,7 @@
 
     this._setPressed(true);
 
-    this.pressAnimationPromise_ = new Promise(function(resolve, reject) {
+    this.pressAnimationPromise_ = new Promise((resolve, reject) => {
       animationPlayer.addEventListener('finish', resolve, false);
       animationPlayer.addEventListener('cancel', reject, false);
     });
@@ -85,12 +85,12 @@
    * Performs burst animation.
    */
   performBurstAnimation: function() {
-    var pressAnimationPromise = this.pressAnimationPromise_ !== null ?
+    const pressAnimationPromise = this.pressAnimationPromise_ !== null ?
         this.pressAnimationPromise_ : Promise.resolve();
     this.pressAnimationPromise_ = null;
 
     // Wait if press animation is performing.
-    pressAnimationPromise.then(function() {
+    pressAnimationPromise.then(() => {
       this._setPressed(false);
 
       this.ripple_.animate([
@@ -117,6 +117,6 @@
           offset: 1
         }
       ], 150);
-    }.bind(this));
+    });
   }
 });
diff --git a/ui/file_manager/file_manager/foreground/elements/files_safe_media.js b/ui/file_manager/file_manager/foreground/elements/files_safe_media.js
index 2245671..9721895 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_safe_media.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_safe_media.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-var FILES_APP_ORIGIN = 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
+const FILES_APP_ORIGIN = 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
 
 /**
  * Polymer element to render a media securely inside webview.
@@ -54,7 +54,7 @@
       this.webview_ = null;
     } else if (this.src && !this.webview_) {
       // Create webview node only if src exists to save resources.
-      var webview =
+      const webview =
           /** @type {!HTMLElement} */ (document.createElement('webview'));
       this.webview_ = webview;
       webview.partition = 'trusted';
@@ -64,12 +64,12 @@
           'contentload', this.onSrcChange_.bind(this));
       webview.src = this.sourceFile_();
     } else if (this.src && this.webview_.contentWindow) {
-      var data = {};
+      const data = {};
       data.type = this.type;
       data.src = this.src;
-      window.setTimeout(function() {
+      window.setTimeout(() => {
         this.webview_.contentWindow.postMessage(data, FILES_APP_ORIGIN);
-      }.bind(this));
+      });
     }
   },
 
@@ -90,7 +90,7 @@
         }
       }
     });
-    window.addEventListener('message', function(event) {
+    window.addEventListener('message', event => {
       if (event.origin !== FILES_APP_ORIGIN) {
         console.log('Unknown origin.');
         return;
@@ -108,6 +108,6 @@
           this.webview_.removeAttribute('loaded');
         }
       }
-    }.bind(this));
+    });
   }
 });
diff --git a/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js b/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js
index 3988c77..7d393de 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_safe_media_webview_content.js
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-window.onload = function() {
-  var FILES_APP_ORIGIN = 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
-  var messageSource;
+window.onload = () => {
+  const FILES_APP_ORIGIN = 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
+  let messageSource;
 
-  var content = document.querySelector('#content');
+  const content = document.querySelector('#content');
 
-  window.addEventListener('message', function(event) {
+  window.addEventListener('message', event => {
     if (event.origin !== FILES_APP_ORIGIN) {
       console.error('Unknown origin: ' + event.origin);
       return;
@@ -50,12 +50,12 @@
     }
   });
 
-  document.addEventListener('contextmenu', function(e) {
+  document.addEventListener('contextmenu', e => {
     e.preventDefault();
     return false;
   });
 
-  document.addEventListener('click', function(e) {
+  document.addEventListener('click', e => {
     sendMessage((e.target === content) ? 'tap-inside' : 'tap-outside');
   });
 
@@ -72,7 +72,7 @@
   // TODO(oka): This is a workaround to fix FOUC problem, where sometimes
   // immature view with smaller window size than outer window is rendered for a
   // moment. Remove this after the root cause is fixed. http://crbug.com/640525
-  window.addEventListener('resize', function() {
+  window.addEventListener('resize', () => {
     // Remove hidden attribute on event of resize to avoid FOUC. The window's
     // initial size is 100 x 100 and it's fit into the outer window size after a
     // moment. Due to Files App's window size constraint, resized window must be
@@ -81,7 +81,7 @@
   });
   // Fallback for the case of webview bug is fixed and above code is not
   // executed.
-  setTimeout(function() {
+  setTimeout(() => {
     content.removeAttribute('hidden');
   }, 500);
 };
diff --git a/ui/file_manager/file_manager/foreground/elements/files_toast.js b/ui/file_manager/file_manager/foreground/elements/files_toast.js
index f26c39a5..9c1db6f 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_toast.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_toast.js
@@ -100,9 +100,9 @@
       {bottom: '16px', opacity: 1, offset: 1}
     ], 100 /* ms */);
 
-    this.enterAnimationPlayer_.addEventListener('finish', function() {
+    this.enterAnimationPlayer_.addEventListener('finish', () => {
       this.enterAnimationPlayer_ = null;
-    }.bind(this));
+    });
 
     // Set timeout.
     setTimeout(this.timeout_.bind(this, this.generationId_), this.duration);
@@ -144,7 +144,7 @@
     // If it's performing enter animation, wait until it's done and come back
     // later.
     if (this.enterAnimationPlayer_ && !this.enterAnimationPlayer_.finished) {
-      return new Promise(function(resolve) {
+      return new Promise(resolve => {
         // Check that the animation is still playing. Animation can be finished
         // between the above condition check and this function call.
         if (!this.enterAnimationPlayer_ ||
@@ -153,7 +153,7 @@
         }
 
         this.enterAnimationPlayer_.addEventListener('finish', resolve);
-      }.bind(this)).then(this.hide.bind(this));
+      }).then(this.hide.bind(this));
     }
 
     // Start hide animation if it's not performing now.
@@ -164,12 +164,12 @@
       ], 100 /* ms */);
     }
 
-    return new Promise(function(resolve) {
+    return new Promise(resolve => {
       this.hideAnimationPlayer_.addEventListener('finish', resolve);
-    }.bind(this)).then(function() {
+    }).then(() => {
       this.$.container.hidden = true;
       this.hideAnimationPlayer_ = null;
       this._setVisible(false);
-    }.bind(this));
+    });
   }
 });
diff --git a/ui/file_manager/file_manager/foreground/elements/files_toggle_ripple.js b/ui/file_manager/file_manager/foreground/elements/files_toggle_ripple.js
index 796a712..cbfde41 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_toggle_ripple.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_toggle_ripple.js
@@ -54,7 +54,7 @@
    * @private
    */
   performActivateAnimation_: function() {
-    var borderRadius = Math.min(this.clientWidth, this.clientHeight) / 2;
+    const borderRadius = Math.min(this.clientWidth, this.clientHeight) / 2;
 
     this.$.ripple.animate([
       {opacity: 0, offset: 0, easing: 'linear'},
@@ -102,7 +102,7 @@
    * @private
    */
   performDeactivateAnimation_: function() {
-    var borderRadius = Math.min(this.clientWidth, this.clientHeight) / 2;
+    const borderRadius = Math.min(this.clientWidth, this.clientHeight) / 2;
 
     this.$.ripple.animate([
       {opacity: 0.2, offset: 0, easing: 'linear'},
diff --git a/ui/file_manager/file_manager/foreground/elements/files_tooltip.js b/ui/file_manager/file_manager/foreground/elements/files_tooltip.js
index edf561c..9f48ebe 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_tooltip.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_tooltip.js
@@ -73,7 +73,7 @@
    * @param {!NodeList} targets
    */
   addTargets: function(targets) {
-    for (var i = 0; i < targets.length; i++) {
+    for (let i = 0; i < targets.length; i++) {
       this.addTarget(targets[i]);
     }
   },
@@ -158,21 +158,21 @@
 
     this.visibleTooltipTarget_ = target;
 
-    var label = target.getAttribute('aria-label');
+    const label = target.getAttribute('aria-label');
     if (!label) {
       return;
     }
 
     this.$.label.textContent = label;
-    var rect = target.getBoundingClientRect();
+    const rect = target.getBoundingClientRect();
 
-    var top = rect.top + rect.height;
+    let top = rect.top + rect.height;
     if (top + this.offsetHeight > document.body.offsetHeight) {
       top = rect.top - this.offsetHeight;
     }
     this.style.top = `${Math.round(top)}px`;
 
-    var left = rect.left + rect.width / 2 - this.offsetWidth / 2;
+    let left = rect.left + rect.width / 2 - this.offsetWidth / 2;
     if (left < 0) {
       left = 0;
     }
diff --git a/ui/file_manager/file_manager/foreground/elements/files_tooltip_unittest.js b/ui/file_manager/file_manager/foreground/elements/files_tooltip_unittest.js
index b1cd0bd2..0404831b 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_tooltip_unittest.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_tooltip_unittest.js
@@ -41,22 +41,22 @@
 ];
 
 /** @type {Element} */
-var chocolateButton;
+let chocolateButton;
 
 /** @type {Element} */
-var cherriesButton;
+let cherriesButton;
 
 /** @type {Element} */
-var otherButton;
+let otherButton;
 
 /** @type {FilesTooltip|Element} */
-var tooltip;
+let tooltip;
 
 function setUpPage() {
   console.log('setUpPage');
 
   const importElements = (src) => {
-    var link = document.createElement('link');
+    const link = document.createElement('link');
     link.rel = 'import';
     link.onload = onLinkLoaded;
     document.head.appendChild(link);
@@ -96,8 +96,8 @@
 }
 
 function waitForMutation(target) {
-  return new Promise(function(fulfill, reject) {
-    var observer = new MutationObserver(function(mutations) {
+  return new Promise((fulfill, reject) => {
+    const observer = new MutationObserver(mutations => {
       observer.disconnect();
       fulfill();
     });
@@ -109,7 +109,7 @@
   chocolateButton.focus();
 
   return reportPromise(
-    waitForMutation(tooltip).then(function() {
+    waitForMutation(tooltip).then(() => {
       assertEquals('Chocolate!', tooltip.textContent.trim());
       assertTrue(!!tooltip.getAttribute('visible'));
       assertEquals('4px', tooltip.style.left);
@@ -117,16 +117,16 @@
 
       cherriesButton.focus();
       return waitForMutation(tooltip);
-    }).then(function() {
+    }).then(() => {
       assertEquals('Cherries!', tooltip.textContent.trim());
       assertTrue(!!tooltip.getAttribute('visible'));
-      var expectedLeft = document.body.offsetWidth - tooltip.offsetWidth + 'px';
+      const expectedLeft = document.body.offsetWidth - tooltip.offsetWidth + 'px';
       assertEquals(expectedLeft, tooltip.style.left);
       assertEquals('70px', tooltip.style.top);
 
       otherButton.focus();
       return waitForMutation(tooltip);
-    }).then(function() {
+    }).then(() => {
       assertFalse(!!tooltip.getAttribute('visible'));
     }), callback);
 }
@@ -135,7 +135,7 @@
   chocolateButton.dispatchEvent(new MouseEvent('mouseover'));
 
   return reportPromise(
-    waitForMutation(tooltip).then(function() {
+    waitForMutation(tooltip).then(() => {
       assertEquals('Chocolate!', tooltip.textContent.trim());
       assertTrue(!!tooltip.getAttribute('visible'));
       assertEquals('4px', tooltip.style.left);
@@ -144,16 +144,16 @@
       chocolateButton.dispatchEvent(new MouseEvent('mouseout'));
       cherriesButton.dispatchEvent(new MouseEvent('mouseover'));
       return waitForMutation(tooltip);
-    }).then(function() {
+    }).then(() => {
       assertEquals('Cherries!', tooltip.textContent.trim());
       assertTrue(!!tooltip.getAttribute('visible'));
-      var expectedLeft = document.body.offsetWidth - tooltip.offsetWidth + 'px';
+      const expectedLeft = document.body.offsetWidth - tooltip.offsetWidth + 'px';
       assertEquals(expectedLeft, tooltip.style.left);
       assertEquals('70px', tooltip.style.top);
 
       cherriesButton.dispatchEvent(new MouseEvent('mouseout'));
       return waitForMutation(tooltip);
-    }).then(function() {
+    }).then(() => {
       assertFalse(!!tooltip.getAttribute('visible'));
     }), callback);
 }
@@ -162,17 +162,17 @@
   chocolateButton.dispatchEvent(new MouseEvent('mouseover', {bubbles: true}));
 
   return reportPromise(
-    waitForMutation(tooltip).then(function() {
+    waitForMutation(tooltip).then(() => {
       assertEquals('Chocolate!', tooltip.textContent.trim());
       assertTrue(!!tooltip.getAttribute('visible'));
 
       // Hiding here is synchronous. Dispatch the event asynchronously, so the
       // mutation observer is started before hiding.
-      setTimeout(function() {
+      setTimeout(() => {
         document.body.dispatchEvent(new MouseEvent('mousedown'));
       });
       return waitForMutation(tooltip);
-    }).then(function() {
+    }).then(() => {
       assertFalse(!!tooltip.getAttribute('visible'));
     }), callback);
 }
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks.js b/ui/file_manager/file_manager/foreground/js/file_tasks.js
index f6c4466b..7adbd7d8 100644
--- a/ui/file_manager/file_manager/foreground/js/file_tasks.js
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks.js
@@ -205,7 +205,7 @@
           var taskType = taskParts[1];
           var actionId = taskParts[2];
           return !(
-              appId === chrome.runtime.id && taskType === 'file' &&
+              appId === chrome.runtime.id && taskType === 'app' &&
               actionId === 'install-linux-package');
         });
       }
@@ -474,7 +474,7 @@
   var taskType = taskParts[1];
   var actionId = taskParts[2];
   return (
-      appId === chrome.runtime.id && taskType === 'file' &&
+      appId === chrome.runtime.id && taskType === 'app' &&
       (actionId === 'mount-archive' || actionId === 'install-linux-package'));
 };
 
@@ -514,15 +514,11 @@
     }
 
     // Tweak images, titles of internal tasks.
-    if (taskParts[0] === id && taskParts[1] === 'file') {
-      if (taskParts[2] === 'play') {
-        // TODO(serya): This hack needed until task.iconUrl is working
-        //             (see GetFileTasksFileBrowserFunction::RunImpl).
-        task.iconType = 'audio';
-        task.title = loadTimeData.getString('TASK_LISTEN');
-      } else if (taskParts[2] === 'mount-archive') {
+    if (taskParts[0] === id && taskParts[1] === 'app') {
+      if (taskParts[2] === 'mount-archive') {
         task.iconType = 'archive';
         task.title = loadTimeData.getString('MOUNT_ARCHIVE');
+        task.verb = undefined;
       } else if (taskParts[2] === 'open-hosted-generic') {
         if (entries.length > 1) {
           task.iconType = 'generic';
@@ -530,18 +526,23 @@
           task.iconType = FileType.getIcon(entries[0]);
         }
         task.title = loadTimeData.getString('TASK_OPEN');
+        task.verb = undefined;
       } else if (taskParts[2] === 'open-hosted-gdoc') {
         task.iconType = 'gdoc';
         task.title = loadTimeData.getString('TASK_OPEN_GDOC');
+        task.verb = undefined;
       } else if (taskParts[2] === 'open-hosted-gsheet') {
         task.iconType = 'gsheet';
         task.title = loadTimeData.getString('TASK_OPEN_GSHEET');
+        task.verb = undefined;
       } else if (taskParts[2] === 'open-hosted-gslides') {
         task.iconType = 'gslides';
         task.title = loadTimeData.getString('TASK_OPEN_GSLIDES');
+        task.verb = undefined;
       } else if (taskParts[2] === 'install-linux-package') {
         task.iconType = 'crostini';
         task.title = loadTimeData.getString('TASK_INSTALL_LINUX_PACKAGE');
+        task.verb = undefined;
       } else if (taskParts[2] === 'view-swf') {
         // Do not render this task if disabled.
         if (!loadTimeData.getBoolean('SWF_VIEW_ENABLED')) {
@@ -549,6 +550,7 @@
         }
         task.iconType = 'generic';
         task.title = loadTimeData.getString('TASK_VIEW');
+        task.verb = undefined;
       } else if (taskParts[2] === 'view-pdf') {
         // Do not render this task if disabled.
         if (!loadTimeData.getBoolean('PDF_VIEW_ENABLED')) {
@@ -556,9 +558,11 @@
         }
         task.iconType = 'pdf';
         task.title = loadTimeData.getString('TASK_VIEW');
+        task.verb = undefined;
       } else if (taskParts[2] === 'view-in-browser') {
         task.iconType = 'generic';
         task.title = loadTimeData.getString('TASK_VIEW');
+        task.verb = undefined;
       }
     }
     if (!task.iconType && taskParts[1] === 'web-intent') {
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js b/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
index 64ae458..b932fc5 100644
--- a/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
@@ -512,7 +512,7 @@
             null,
             [
               {
-                taskId: 'test-extension-id|file|install-linux-package',
+                taskId: 'test-extension-id|app|install-linux-package',
                 isDefault: false,
                 isGenericFileHandler: false,
                 title: '__MSG_INSTALL_LINUX_PACKAGE__',
diff --git a/ui/file_manager/file_manager/foreground/js/quick_view_uma.js b/ui/file_manager/file_manager/foreground/js/quick_view_uma.js
index 401d1126..950b81d92 100644
--- a/ui/file_manager/file_manager/foreground/js/quick_view_uma.js
+++ b/ui/file_manager/file_manager/foreground/js/quick_view_uma.js
@@ -63,6 +63,7 @@
   VolumeManagerCommon.VolumeType.MEDIA_VIEW,
   VolumeManagerCommon.VolumeType.CROSTINI,
   VolumeManagerCommon.VolumeType.ANDROID_FILES,
+  VolumeManagerCommon.VolumeType.DOCUMENTS_PROVIDER,
 ];
 
 /**
diff --git a/ui/file_manager/file_manager/manifest.json b/ui/file_manager/file_manager/manifest.json
index 3803ec0..7508feb 100644
--- a/ui/file_manager/file_manager/manifest.json
+++ b/ui/file_manager/file_manager/manifest.json
@@ -25,7 +25,6 @@
     "commandLinePrivate",
     "contextMenus",
     "echoPrivate",
-    "fileBrowserHandler",
     "fileManagerPrivate",
     {
       "fileSystem": ["requestFileSystem", "write"]
@@ -60,109 +59,72 @@
       ]
     }]
   },
-  "file_browser_handlers": [
-    {
-      "id": "mount-archive",
-      "default_title": "__MSG_MOUNT_ARCHIVE__",
-      "default_icon": "common/images/file_types/200/archive.png",
-      "file_filters": [
-        "filesystem:*.rar"
+  "file_handlers": {
+    "mount-archive": {
+      "extensions": [
+        "rar"
       ]
     },
-    {
-      "id": "view-pdf",
-      "default_title": "__MSG_OPEN_ACTION__",
-      "default_icon": "common/images/file_types/200/pdf.png",
-      "file_filters": [
-        "filesystem:*.pdf"
+    "view-pdf": {
+      "extensions": [
+        "pdf"
       ]
     },
-    {
-      "id": "view-swf",
-      "default_title": "__MSG_OPEN_ACTION__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": [
-        "filesystem:*.swf"
+    "view-swf": {
+      "extensions": [
+        "swf"
       ]
     },
-    {
-      "id": "view-in-browser",
-      "default_title": "__MSG_OPEN_ACTION__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": [
-        "filesystem:*.htm",
-        "filesystem:*.html",
-        "filesystem:*.mht",
-        "filesystem:*.mhtml",
-        "filesystem:*.shtml",
-        "filesystem:*.xht",
-        "filesystem:*.xhtml",
-        "filesystem:*.svg",
-        "filesystem:*.txt"
+    "view-in-browser": {
+      "extensions": [
+        "htm",
+        "html",
+        "mht",
+        "mhtml",
+        "shtml",
+        "xht",
+        "xhtml",
+        "svg",
+        "txt"
       ]
     },
-    {
-      "id": "open-hosted-generic",
-      "default_title": "__MSG_HOSTED__",
-      "default_icon": "common/images/file_types/200generic.png",
-      "file_filters": [
-        "filesystem:*.gdraw",
-        "filesystem:*.gtable",
-        "filesystem:*.gform",
-        "filesystem:*.gmaps",
-        "filesystem:*.gsite",
-        "filesystem:*.glink"
+    "open-hosted-generic": {
+      "extensions": [
+        "gdraw",
+        "gtable",
+        "gform",
+        "gmaps",
+        "gsite",
+        "glink"
       ]
     },
-    {
-      "id": "open-hosted-gdoc",
-      "default_title": "__MSG_HOSTED__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": [
-        "filesystem:*.gdoc"
+    "open-hosted-gdoc": {
+      "extensions": [
+        "gdoc"
       ]
     },
-    {
-      "id": "open-hosted-gsheet",
-      "default_title": "__MSG_HOSTED__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": [
-        "filesystem:*.gsheet"
+    "open-hosted-gsheet": {
+      "extensions": [
+        "gsheet"
       ]
     },
-    {
-      "id": "open-hosted-gslides",
-      "default_title": "__MSG_HOSTED__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": [
-        "filesystem:*.gslides"
+    "open-hosted-gslides": {
+      "extensions": [
+        "gslides"
       ]
     },
-    {
-      "id": "install-linux-package",
-      "default_title": "__MSG_INSTALL_LINUX_PACKAGE__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": [
-        "filesystem:*.deb"
+    "install-linux-package": {
+      "extensions": [
+        "deb"
       ]
     },
-    // The following handlers are used only internally, therefore they do not
-    // have any file filter.
-    // Selects the passed file after launching the Files app.
-    {
-      "id": "select",
-      "default_title": "__MSG_OPEN_ACTION__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": []
+    "select": {
+      "extensions": ["*"]
     },
-    // Opens the passed directory after launching the Files app.
-    {
-      "id": "open",
-      "default_title": "__MSG_OPEN_ACTION__",
-      "default_icon": "common/images/file_types/200/generic.png",
-      "file_filters": []
+    "open": {
+      "extensions": ["*"]
     }
-  ],
+  },
   // Required to import scripts in a web worker. Note, that in Apps v2, it is
   // enough that anything is passed to web_accessible_resources. If there is
   // at least any file, then all files are allowed. http://crbug.com/179127.
diff --git a/ui/file_manager/file_manager/test/crostini_tasks.js b/ui/file_manager/file_manager/test/crostini_tasks.js
index cbb0c52..68f3ca7e 100644
--- a/ui/file_manager/file_manager/test/crostini_tasks.js
+++ b/ui/file_manager/file_manager/test/crostini_tasks.js
@@ -115,13 +115,13 @@
   // the internal linux package install handler
   let oldGetFileTasks = chrome.fileManagerPrivate.getFileTasks;
   chrome.fileManagerPrivate.getFileTasks = (entries, callback) => {
-    setTimeout(callback, 0, [{
-                 taskId: test.FILE_MANAGER_EXTENSION_ID +
-                     '|file|install-linux-package',
-                 title: 'Install with Linux (Beta)',
-                 verb: 'open_with',
-                 isDefault: true,
-               }]);
+    setTimeout(
+        callback, 0, [{
+          taskId: `${test.FILE_MANAGER_EXTENSION_ID}|app|install-linux-package`,
+          title: 'Install with Linux (Beta)',
+          verb: 'open_with',
+          isDefault: true,
+        }]);
   };
 
   // Save old fmp.getLinuxPackageInfo and replace with version that saves the
diff --git a/ui/file_manager/integration_tests/file_manager/quick_view.js b/ui/file_manager/integration_tests/file_manager/quick_view.js
index 59c0508a..5d41ef4 100644
--- a/ui/file_manager/integration_tests/file_manager/quick_view.js
+++ b/ui/file_manager/integration_tests/file_manager/quick_view.js
@@ -291,6 +291,36 @@
 };
 
 /**
+ * Tests opening Quick View on a DocumentsProvider root.
+ */
+testcase.openQuickViewDocumentsProvider = async function() {
+  const DOCUMENTS_PROVIDER_VOLUME_QUERY =
+      '[has-children="true"] [volume-type-icon="documents_provider"]';
+
+  // Open Files app.
+  const appId = await openNewWindow(RootPath.DOWNLOADS);
+
+  // Add files to the DocumentsProvider volume.
+  await addEntries(['documents_provider'], BASIC_LOCAL_ENTRY_SET);
+
+  // Wait for the DocumentsProvider volume to mount.
+  await remoteCall.waitForElement(appId, DOCUMENTS_PROVIDER_VOLUME_QUERY);
+
+  // Click to open the DocumentsProvider volume.
+  chrome.test.assertTrue(
+      !!await remoteCall.callRemoteTestUtil(
+          'fakeMouseClick', appId, [DOCUMENTS_PROVIDER_VOLUME_QUERY]),
+      'fakeMouseClick failed');
+
+  // Check: the DocumentsProvider files should appear in the file list.
+  const files = TestEntryInfo.getExpectedRows(BASIC_LOCAL_ENTRY_SET);
+  await remoteCall.waitForFiles(appId, files, {ignoreLastModifiedTime: true});
+
+  // Open a DocumentsProvider file in Quick View.
+  await openQuickView(appId, ENTRIES.hello.nameText);
+};
+
+/**
  * Tests opening Quick View and scrolling its <webview> which contains a tall
  * text document.
  */
diff --git a/ui/gl/android/android_surface_control_compat.cc b/ui/gl/android/android_surface_control_compat.cc
index 6bfaba1..f54594a 100644
--- a/ui/gl/android/android_surface_control_compat.cc
+++ b/ui/gl/android/android_surface_control_compat.cc
@@ -237,7 +237,7 @@
 
   delete ack_ctx;
 }
-};
+}  // namespace
 
 // static
 bool SurfaceControl::IsSupported() {
diff --git a/ui/gl/android/android_surface_control_compat.h b/ui/gl/android/android_surface_control_compat.h
index bec240d..003818c 100644
--- a/ui/gl/android/android_surface_control_compat.h
+++ b/ui/gl/android/android_surface_control_compat.h
@@ -108,6 +108,6 @@
     ASurfaceTransaction* transaction_;
   };
 };
-};  // namespace gl
+}  // namespace gl
 
 #endif  // UI_GL_ANDROID_ANDROID_SURFACE_CONTROL_COMPAT_H_
diff --git a/ui/message_center/public/cpp/notification_types.h b/ui/message_center/public/cpp/notification_types.h
index 1ab3876b..f5497e4 100644
--- a/ui/message_center/public/cpp/notification_types.h
+++ b/ui/message_center/public/cpp/notification_types.h
@@ -25,6 +25,8 @@
   MIN_PRIORITY = -2,
   LOW_PRIORITY = -1,
   DEFAULT_PRIORITY = 0,
+  // Priorities > |DEFAULT_PRIORITY| have the capability to wake the display up
+  // if it was off.
   HIGH_PRIORITY = 1,
   MAX_PRIORITY = 2,
 
diff --git a/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.cc b/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.cc
index 9126a67..73188f4a4 100644
--- a/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.cc
+++ b/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.cc
@@ -25,6 +25,14 @@
   wc_ptr_info_ = wc_ptr.PassInterface();
 }
 
+void WaylandConnectionProxy::ResetGbmDevice() {
+#if defined(WAYLAND_GBM)
+  gbm_device_.reset();
+#else
+  NOTREACHED();
+#endif
+}
+
 void WaylandConnectionProxy::CreateZwpLinuxDmabuf(
     base::File file,
     gfx::Size size,
diff --git a/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.h b/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.h
index 7c3d072..2f3072cb 100644
--- a/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.h
+++ b/ui/ozone/platform/wayland/gpu/wayland_connection_proxy.h
@@ -44,6 +44,7 @@
 
   // WaylandConnectionProxy overrides:
   void SetWaylandConnection(ozone::mojom::WaylandConnectionPtr wc_ptr) override;
+  void ResetGbmDevice() override;
 
   // Methods, which must be used when GPU is hosted on a different process
   // aka gpu process.
diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
index 38b69e7..6bdd791 100644
--- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc
+++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
@@ -169,6 +169,7 @@
 
   void InitializeGPU(const InitParams& args) override {
     proxy_.reset(new WaylandConnectionProxy(connection_.get()));
+    surface_factory_.reset(new WaylandSurfaceFactory(proxy_.get()));
 #if defined(WAYLAND_GBM)
     const base::FilePath drm_node_path = path_finder_.GetDrmRenderNodePath();
     if (drm_node_path.empty()) {
@@ -185,7 +186,6 @@
       }
     }
 #endif
-    surface_factory_.reset(new WaylandSurfaceFactory(proxy_.get()));
   }
 
   const PlatformProperties& GetPlatformProperties() override {
diff --git a/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc b/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc
index 189fe806..98af9ff 100644
--- a/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc
+++ b/ui/ozone/platform/wayland/wayland_buffer_manager_unittest.cc
@@ -98,7 +98,7 @@
        kExistingBufferId},
   };
 
-  WaylandBufferManager* manager = connection_->buffer_manager_for_tests();
+  WaylandBufferManager* manager = connection_->buffer_manager();
   ASSERT_TRUE(manager);
 
   auto temp_file = MakeTempFile();
@@ -119,7 +119,7 @@
 }
 
 TEST_P(WaylandBufferManagerTest, CreateAndDestroyBuffer) {
-  WaylandBufferManager* manager = connection_->buffer_manager_for_tests();
+  WaylandBufferManager* manager = connection_->buffer_manager();
   ASSERT_TRUE(manager);
 
   const uint32_t kBufferId1 = 1;
diff --git a/ui/ozone/platform/wayland/wayland_connection.cc b/ui/ozone/platform/wayland/wayland_connection.cc
index 9cf54b61..f25e996 100644
--- a/ui/ozone/platform/wayland/wayland_connection.cc
+++ b/ui/ozone/platform/wayland/wayland_connection.cc
@@ -195,6 +195,8 @@
     uint32_t planes_count,
     uint32_t buffer_id) {
   DCHECK(base::MessageLoopCurrentForUI::IsSet());
+
+  DCHECK(buffer_manager_);
   if (!buffer_manager_->CreateBuffer(std::move(file), width, height, strides,
                                      offsets, format, modifiers, planes_count,
                                      buffer_id)) {
@@ -204,6 +206,8 @@
 
 void WaylandConnection::DestroyZwpLinuxDmabuf(uint32_t buffer_id) {
   DCHECK(base::MessageLoopCurrentForUI::IsSet());
+
+  DCHECK(buffer_manager_);
   if (!buffer_manager_->DestroyBuffer(buffer_id)) {
     TerminateGpuProcess(buffer_manager_->error_message());
   }
@@ -215,6 +219,8 @@
     const gfx::Rect& damage_region,
     ScheduleBufferSwapCallback callback) {
   DCHECK(base::MessageLoopCurrentForUI::IsSet());
+
+  CHECK(buffer_manager_);
   if (!buffer_manager_->ScheduleBufferSwap(widget, buffer_id, damage_region,
                                            std::move(callback))) {
     TerminateGpuProcess(buffer_manager_->error_message());
diff --git a/ui/ozone/platform/wayland/wayland_connection.h b/ui/ozone/platform/wayland/wayland_connection.h
index 59948b7..c5ded05 100644
--- a/ui/ozone/platform/wayland/wayland_connection.h
+++ b/ui/ozone/platform/wayland/wayland_connection.h
@@ -82,9 +82,6 @@
   zwp_text_input_manager_v1* text_input_manager_v1() {
     return text_input_manager_v1_.get();
   }
-  WaylandBufferManager* buffer_manager_for_tests() {
-    return buffer_manager_.get();
-  }
 
   WaylandWindow* GetWindow(gfx::AcceleratedWidget widget);
   WaylandWindow* GetWindowWithLargestBounds();
@@ -115,6 +112,8 @@
     return wayland_cursor_position_.get();
   }
 
+  WaylandBufferManager* buffer_manager() const { return buffer_manager_.get(); }
+
   // Clipboard implementation.
   PlatformClipboard* GetPlatformClipboard();
   void DataSourceCancelled();
diff --git a/ui/ozone/platform/wayland/wayland_connection_connector.cc b/ui/ozone/platform/wayland/wayland_connection_connector.cc
index 9f949ab..5cd3b922 100644
--- a/ui/ozone/platform/wayland/wayland_connection_connector.cc
+++ b/ui/ozone/platform/wayland/wayland_connection_connector.cc
@@ -83,6 +83,13 @@
   auto request = mojo::MakeRequest(&wcp_ptr);
   BindInterfaceInGpuProcess(std::move(request), binder_);
   wcp_ptr->SetWaylandConnection(std::move(wc_ptr));
+
+#if defined(WAYLAND_GBM)
+  if (!connection_->buffer_manager()) {
+    LOG(WARNING) << "zwp_linux_dmabuf is not available.";
+    wcp_ptr->ResetGbmDevice();
+  }
+#endif
 }
 
 void WaylandConnectionConnector::OnTerminateGpuProcess(std::string message) {
diff --git a/ui/ozone/platform/wayland/xdg_popup_wrapper_v6.h b/ui/ozone/platform/wayland/xdg_popup_wrapper_v6.h
index d58c0db6..b3df086 100644
--- a/ui/ozone/platform/wayland/xdg_popup_wrapper_v6.h
+++ b/ui/ozone/platform/wayland/xdg_popup_wrapper_v6.h
@@ -41,7 +41,6 @@
 
  private:
   WaylandWindow* wayland_window_ = nullptr;
-  ;
   std::unique_ptr<XDGSurfaceWrapper> zxdg_surface_v6_;
   wl::Object<zxdg_popup_v6> xdg_popup_;
 
diff --git a/ui/ozone/public/interfaces/wayland/wayland_connection.mojom b/ui/ozone/public/interfaces/wayland/wayland_connection.mojom
index a3993ccb..b1300733 100644
--- a/ui/ozone/public/interfaces/wayland/wayland_connection.mojom
+++ b/ui/ozone/public/interfaces/wayland/wayland_connection.mojom
@@ -35,8 +35,14 @@
           gfx.mojom.PresentationFeedback feedback);
 };
 
-// Used by the browser process to provide the GPU process with a mojo ptr to a
-// WaylandConnection, which lives on the browser process.
+
 interface WaylandConnectionClient {
+  // Used by the browser process to provide the GPU process with a mojo ptr to a
+  // WaylandConnection, which lives on the browser process.
   SetWaylandConnection(WaylandConnection wc_ptr);
+
+  // The browser process may request the client to reset gbm device instance to
+  // avoid using zwp_linux_dmabuf protocol, which means using wl_egl_surface in
+  // a single process mode, and software rendering in a multiple process mode.
+  ResetGbmDevice();
 };
diff --git a/ui/resources/default_100_percent/common/default_favicon.png b/ui/resources/default_100_percent/common/default_favicon.png
index 15ef66e..06e79ea0 100644
--- a/ui/resources/default_100_percent/common/default_favicon.png
+++ b/ui/resources/default_100_percent/common/default_favicon.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/default_favicon_32.png b/ui/resources/default_100_percent/common/default_favicon_32.png
index 97edf24..ff5be38 100644
--- a/ui/resources/default_100_percent/common/default_favicon_32.png
+++ b/ui/resources/default_100_percent/common/default_favicon_32.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/default_favicon_64.png b/ui/resources/default_100_percent/common/default_favicon_64.png
index fffae3c4..a682f08d 100644
--- a/ui/resources/default_100_percent/common/default_favicon_64.png
+++ b/ui/resources/default_100_percent/common/default_favicon_64.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/default_favicon_dark.png b/ui/resources/default_100_percent/common/default_favicon_dark.png
new file mode 100644
index 0000000..74db66e53
--- /dev/null
+++ b/ui/resources/default_100_percent/common/default_favicon_dark.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/default_favicon_dark_32.png b/ui/resources/default_100_percent/common/default_favicon_dark_32.png
new file mode 100644
index 0000000..755b6d1e
--- /dev/null
+++ b/ui/resources/default_100_percent/common/default_favicon_dark_32.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/default_favicon_dark_64.png b/ui/resources/default_100_percent/common/default_favicon_dark_64.png
new file mode 100644
index 0000000..c21f87d
--- /dev/null
+++ b/ui/resources/default_100_percent/common/default_favicon_dark_64.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/default_favicon.png b/ui/resources/default_200_percent/common/default_favicon.png
index 35eb3916..ff5be38 100644
--- a/ui/resources/default_200_percent/common/default_favicon.png
+++ b/ui/resources/default_200_percent/common/default_favicon.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/default_favicon_32.png b/ui/resources/default_200_percent/common/default_favicon_32.png
index fffae3c4..a682f08d 100644
--- a/ui/resources/default_200_percent/common/default_favicon_32.png
+++ b/ui/resources/default_200_percent/common/default_favicon_32.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/default_favicon_64.png b/ui/resources/default_200_percent/common/default_favicon_64.png
index 9572b29..6eb4a59 100644
--- a/ui/resources/default_200_percent/common/default_favicon_64.png
+++ b/ui/resources/default_200_percent/common/default_favicon_64.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/default_favicon_dark.png b/ui/resources/default_200_percent/common/default_favicon_dark.png
new file mode 100644
index 0000000..755b6d1e
--- /dev/null
+++ b/ui/resources/default_200_percent/common/default_favicon_dark.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/default_favicon_dark_32.png b/ui/resources/default_200_percent/common/default_favicon_dark_32.png
new file mode 100644
index 0000000..c21f87d
--- /dev/null
+++ b/ui/resources/default_200_percent/common/default_favicon_dark_32.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/default_favicon_dark_64.png b/ui/resources/default_200_percent/common/default_favicon_dark_64.png
new file mode 100644
index 0000000..79a9acb7
--- /dev/null
+++ b/ui/resources/default_200_percent/common/default_favicon_dark_64.png
Binary files differ
diff --git a/ui/resources/default_300_percent/common/default_favicon.png b/ui/resources/default_300_percent/common/default_favicon.png
index 2ced08f1..6533419f 100644
--- a/ui/resources/default_300_percent/common/default_favicon.png
+++ b/ui/resources/default_300_percent/common/default_favicon.png
Binary files differ
diff --git a/ui/resources/default_300_percent/common/default_favicon_32.png b/ui/resources/default_300_percent/common/default_favicon_32.png
index 45b6611..8852379e9 100644
--- a/ui/resources/default_300_percent/common/default_favicon_32.png
+++ b/ui/resources/default_300_percent/common/default_favicon_32.png
Binary files differ
diff --git a/ui/resources/default_300_percent/common/default_favicon_64.png b/ui/resources/default_300_percent/common/default_favicon_64.png
index 2b28de54..3f4b2dd 100644
--- a/ui/resources/default_300_percent/common/default_favicon_64.png
+++ b/ui/resources/default_300_percent/common/default_favicon_64.png
Binary files differ
diff --git a/ui/resources/default_300_percent/common/default_favicon_dark.png b/ui/resources/default_300_percent/common/default_favicon_dark.png
new file mode 100644
index 0000000..3cd526d2
--- /dev/null
+++ b/ui/resources/default_300_percent/common/default_favicon_dark.png
Binary files differ
diff --git a/ui/resources/default_300_percent/common/default_favicon_dark_32.png b/ui/resources/default_300_percent/common/default_favicon_dark_32.png
new file mode 100644
index 0000000..d353b35b
--- /dev/null
+++ b/ui/resources/default_300_percent/common/default_favicon_dark_32.png
Binary files differ
diff --git a/ui/resources/default_300_percent/common/default_favicon_dark_64.png b/ui/resources/default_300_percent/common/default_favicon_dark_64.png
new file mode 100644
index 0000000..ab551eef
--- /dev/null
+++ b/ui/resources/default_300_percent/common/default_favicon_dark_64.png
Binary files differ
diff --git a/ui/resources/ui_resources.grd b/ui/resources/ui_resources.grd
index 2cd4db2..37a1b5bb 100644
--- a/ui/resources/ui_resources.grd
+++ b/ui/resources/ui_resources.grd
@@ -90,8 +90,11 @@
       <structure type="chrome_scaled_image" name="IDR_DISABLE_H" file="disable_hover.png" />
       <structure type="chrome_scaled_image" name="IDR_DISABLE_P" file="disable_pressed.png" />
       <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON" file="common/default_favicon.png" />
+      <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK" file="common/default_favicon_dark.png" />
       <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_32" file="common/default_favicon_32.png" />
+      <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK_32" file="common/default_favicon_dark_32.png" />
       <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_64" file="common/default_favicon_64.png" />
+      <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK_64" file="common/default_favicon_dark_64.png" />
       <structure type="chrome_scaled_image" name="IDR_EASY_UNLOCK_HARDLOCKED" file="common/easy_unlock_hardlocked.png" />
       <structure type="chrome_scaled_image" name="IDR_EASY_UNLOCK_HARDLOCKED_HOVER" file="common/easy_unlock_hardlocked_hover.png" />
       <structure type="chrome_scaled_image" name="IDR_EASY_UNLOCK_HARDLOCKED_PRESSED" file="common/easy_unlock_hardlocked_pressed.png" />
diff --git a/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html b/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html
index c9509f90..ac05318a 100644
--- a/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html
+++ b/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.html
@@ -104,6 +104,8 @@
       }
 
       #cameraControls > div {
+        height: 24px;
+        line-height: normal;
         margin: 0 12px;
         width: 24px;
       }