diff --git a/DEPS b/DEPS
index 8ae9185b..391b0e4 100644
--- a/DEPS
+++ b/DEPS
@@ -98,7 +98,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': 'b8d86800487df4021860f08407c323ed82243c79',
+  'pdfium_revision': '56b08b1f2bb8a4eb9330963bff3a626603499730',
   # 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.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
index a453369..26fb1e9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -203,6 +203,7 @@
     public static final String DOWNLOADS_FOREGROUND = "DownloadsForeground";
     // When enabled, fullscreen WebContents will be moved to a new Activity. Coming soon...
     public static final String FULLSCREEN_ACTIVITY = "FullscreenActivity";
+    public static final String GRANT_NOTIFICATIONS_TO_DSE = "GrantNotificationsToDSE";
     // Whether we show an important sites dialog in the "Clear Browsing Data" flow.
     public static final String IMPORTANT_SITES_IN_CBD = "ImportantSitesInCBD";
     public static final String LANGUAGES_PREFERENCE = "LanguagesPreference";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
index ce2e077..a05c547 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
@@ -277,4 +277,5 @@
     private static native boolean nativeArePermissionsControlledByDSE(
             String origin, boolean isIncognito);
     private static native boolean nativeGetAdBlockingActivated(String origin);
+    static native void nativeResetNotificationsSettingsForTest();
 }
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index 4acba6e..a1acb87 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -1729,6 +1729,7 @@
   "javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasicTest.java",
   "javatests/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerNativeTest.java",
   "javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/website/PermissionInfoTest.java",
   "javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java",
   "javatests/src/org/chromium/chrome/browser/preferences/website/WebsiteAddressTest.java",
   "javatests/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcherTest.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
index f08577c3..11b1b4c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
@@ -94,8 +94,11 @@
 
         // X-Geo shouldn't be sent when location is disallowed for the origin.
         checkHeaderWithPermission(ContentSetting.ALLOW, now, false);
-        checkHeaderWithPermission(ContentSetting.DEFAULT, now, true);
         checkHeaderWithPermission(ContentSetting.BLOCK, now, true);
+
+        // The default permission for the DSE is to allow access, so the header
+        // should be sent in this case.
+        checkHeaderWithPermission(ContentSetting.DEFAULT, now, false);
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/PermissionInfoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/PermissionInfoTest.java
new file mode 100644
index 0000000..6375738
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/PermissionInfoTest.java
@@ -0,0 +1,146 @@
+// 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.
+
+package org.chromium.chrome.browser.preferences.website;
+
+import android.support.test.filters.SmallTest;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.Feature;
+import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.browser.ChromeFeatureList;
+import org.chromium.chrome.browser.ChromeSwitches;
+import org.chromium.chrome.test.ChromeActivityTestRule;
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
+import org.chromium.chrome.test.util.browser.Features.EnableFeatures;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+
+/** Tests for the PermissionInfoTest. */
+@RunWith(ChromeJUnit4ClassRunner.class)
+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
+        ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
+public class PermissionInfoTest {
+    private static final String DSE_ORIGIN = "https://www.google.com";
+    private static final String OTHER_ORIGIN = "https://www.other.com";
+
+    @Rule
+    public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
+            new ChromeActivityTestRule<>(ChromeActivity.class);
+
+    @Before
+    public void setUp() throws Exception {
+        mActivityTestRule.startMainActivityOnBlankPage();
+    }
+
+    private void setGeolocation(
+            String origin, String embedder, ContentSetting setting, boolean incognito) {
+        GeolocationInfo info = new GeolocationInfo(origin, embedder, incognito);
+        ThreadUtils.runOnUiThreadBlocking(() -> info.setContentSetting(setting));
+    }
+
+    private ContentSetting getGeolocation(String origin, String embedder, boolean incognito)
+            throws ExecutionException {
+        return ThreadUtils.runOnUiThreadBlocking(() -> {
+            GeolocationInfo info = new GeolocationInfo(origin, embedder, incognito);
+            return info.getContentSetting();
+        });
+    }
+
+    private void setNotifications(
+            String origin, String embedder, ContentSetting setting, boolean incognito) {
+        NotificationInfo info = new NotificationInfo(origin, embedder, incognito);
+        ThreadUtils.runOnUiThreadBlocking(() -> info.setContentSetting(setting));
+    }
+
+    private ContentSetting getNotifications(String origin, String embedder, boolean incognito)
+            throws ExecutionException {
+        return ThreadUtils.runOnUiThreadBlocking(new Callable<ContentSetting>() {
+            @Override
+            public ContentSetting call() {
+                NotificationInfo info = new NotificationInfo(origin, embedder, incognito);
+                return info.getContentSetting();
+            }
+        });
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
+    public void testResetDSEGeolocation() throws Throwable {
+        // Resetting the DSE geolocation permission should change it to ALLOW.
+        boolean incognito = false;
+        setGeolocation(DSE_ORIGIN, null, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(ContentSetting.BLOCK, getGeolocation(DSE_ORIGIN, null, incognito));
+        setGeolocation(DSE_ORIGIN, null, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(ContentSetting.ALLOW, getGeolocation(DSE_ORIGIN, null, incognito));
+
+        // Resetting an embedded DSE origin should not have the same behavior.
+        incognito = false;
+        setGeolocation(DSE_ORIGIN, OTHER_ORIGIN, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(
+                ContentSetting.BLOCK, getGeolocation(DSE_ORIGIN, OTHER_ORIGIN, incognito));
+        setGeolocation(DSE_ORIGIN, OTHER_ORIGIN, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(
+                ContentSetting.ASK, getGeolocation(DSE_ORIGIN, OTHER_ORIGIN, incognito));
+
+        // Resetting in incognito should not have the same behavior.
+        incognito = true;
+        setGeolocation(DSE_ORIGIN, null, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(ContentSetting.BLOCK, getGeolocation(DSE_ORIGIN, null, incognito));
+        setGeolocation(DSE_ORIGIN, null, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(ContentSetting.ASK, getGeolocation(DSE_ORIGIN, null, incognito));
+
+        // Resetting a different top level origin should not have the same behavior
+        incognito = false;
+        setGeolocation(OTHER_ORIGIN, null, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(ContentSetting.BLOCK, getGeolocation(OTHER_ORIGIN, null, incognito));
+        setGeolocation(OTHER_ORIGIN, null, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(ContentSetting.ASK, getGeolocation(OTHER_ORIGIN, null, incognito));
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
+    @EnableFeatures(ChromeFeatureList.GRANT_NOTIFICATIONS_TO_DSE)
+    public void testResetDSENotifications() throws Throwable {
+        // On Android O+ we need to clear notification channels so they don't interfere with the
+        // test.
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> WebsitePreferenceBridge.nativeResetNotificationsSettingsForTest());
+
+        // Resetting the DSE notifications permission should change it to ALLOW.
+        boolean incognito = false;
+        setNotifications(DSE_ORIGIN, null, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(ContentSetting.BLOCK, getNotifications(DSE_ORIGIN, null, incognito));
+        setNotifications(DSE_ORIGIN, null, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(ContentSetting.ALLOW, getNotifications(DSE_ORIGIN, null, incognito));
+
+        // Resetting in incognito should not have the same behavior.
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> WebsitePreferenceBridge.nativeResetNotificationsSettingsForTest());
+        incognito = true;
+        setNotifications(DSE_ORIGIN, null, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(ContentSetting.BLOCK, getNotifications(DSE_ORIGIN, null, incognito));
+        setNotifications(DSE_ORIGIN, null, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(ContentSetting.ASK, getNotifications(DSE_ORIGIN, null, incognito));
+
+        // // Resetting a different top level origin should not have the same behavior
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> WebsitePreferenceBridge.nativeResetNotificationsSettingsForTest());
+        incognito = false;
+        setNotifications(OTHER_ORIGIN, null, ContentSetting.BLOCK, incognito);
+        Assert.assertEquals(ContentSetting.BLOCK, getNotifications(OTHER_ORIGIN, null, incognito));
+        setNotifications(OTHER_ORIGIN, null, ContentSetting.DEFAULT, incognito);
+        Assert.assertEquals(ContentSetting.ASK, getNotifications(OTHER_ORIGIN, null, incognito));
+    }
+}
diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc
index f1316ea..eda997c 100644
--- a/chrome/browser/android/preferences/website_preference_bridge.cc
+++ b/chrome/browser/android/preferences/website_preference_bridge.cc
@@ -79,6 +79,26 @@
       GetActiveUserProfile(is_incognito));
 }
 
+// Reset the give permission for the DSE if the permission and origin are
+// controlled by the DSE.
+bool MaybeResetDSEPermission(ContentSettingsType type,
+                             const GURL& origin,
+                             const GURL& embedder,
+                             bool is_incognito,
+                             ContentSetting setting) {
+  SearchPermissionsService* search_helper =
+      SearchPermissionsService::Factory::GetForBrowserContext(
+          GetActiveUserProfile(is_incognito));
+  bool same_embedder = embedder.is_empty() || embedder == origin;
+  if (same_embedder && search_helper &&
+      search_helper->ArePermissionsControlledByDSE(
+          url::Origin::Create(origin)) &&
+      setting == CONTENT_SETTING_DEFAULT) {
+    return search_helper->ResetDSEPermission(type);
+  }
+  return false;
+}
+
 ScopedJavaLocalRef<jstring>
 JNI_WebsitePreferenceBridge_ConvertOriginToJavaString(
     JNIEnv* env,
@@ -225,6 +245,11 @@
         origin_url, content_type);
   }
 
+  if (MaybeResetDSEPermission(content_type, origin_url, embedder_url,
+                              is_incognito, setting)) {
+    return;
+  }
+
   PermissionUtil::ScopedRevocationReporter scoped_revocation_reporter(
       profile, origin_url, embedder_url, content_type,
       PermissionSourceUI::SITE_SETTINGS);
@@ -370,6 +395,11 @@
         url, CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
   }
 
+  if (MaybeResetDSEPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, url, url,
+                              is_incognito, setting)) {
+    return;
+  }
+
   switch (setting) {
     case CONTENT_SETTING_DEFAULT:
       DesktopNotificationProfileUtil::ClearSetting(profile, url);
@@ -817,3 +847,12 @@
   return !!GetHostContentSettingsMap(false)->GetWebsiteSetting(
       url, GURL(), CONTENT_SETTINGS_TYPE_ADS_DATA, std::string(), nullptr);
 }
+
+// On Android O+ notification channels are not stored in the Chrome profile and
+// so are persisted across tests. This function resets them.
+static void JNI_WebsitePreferenceBridge_ResetNotificationsSettingsForTest(
+    JNIEnv* env,
+    const JavaParamRef<jclass>& clazz) {
+  GetHostContentSettingsMap(/*is_incognito=*/false)
+      ->ClearSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
+}
diff --git a/chrome/browser/android/search_permissions/search_permissions_service.cc b/chrome/browser/android/search_permissions/search_permissions_service.cc
index 7d7c12c7..29463f4 100644
--- a/chrome/browser/android/search_permissions/search_permissions_service.cc
+++ b/chrome/browser/android/search_permissions/search_permissions_service.cc
@@ -170,6 +170,27 @@
   return true;
 }
 
+bool SearchPermissionsService::ResetDSEPermission(ContentSettingsType type) {
+  GURL dse_origin = delegate_->GetDSEOrigin().GetURL();
+  if (type == CONTENT_SETTINGS_TYPE_GEOLOCATION) {
+    SetContentSetting(dse_origin, type, CONTENT_SETTING_ALLOW);
+    return true;
+  }
+
+  if (type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS &&
+      base::FeatureList::IsEnabled(features::kGrantNotificationsToDSE)) {
+    SetContentSetting(dse_origin, type, CONTENT_SETTING_ALLOW);
+    return true;
+  }
+
+  return false;
+}
+
+void SearchPermissionsService::ResetDSEPermissions() {
+  ResetDSEPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION);
+  ResetDSEPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
+}
+
 void SearchPermissionsService::Shutdown() {
   delegate_.reset();
 }
diff --git a/chrome/browser/android/search_permissions/search_permissions_service.h b/chrome/browser/android/search_permissions/search_permissions_service.h
index 3db96f8..785fd58d 100644
--- a/chrome/browser/android/search_permissions/search_permissions_service.h
+++ b/chrome/browser/android/search_permissions/search_permissions_service.h
@@ -78,10 +78,18 @@
   // configured for the DSE for that given origin.
   bool ArePermissionsControlledByDSE(const url::Origin& requesting_origin);
 
+  // Resets the DSE permission for a single ContentSettingsType. Returns true
+  // if that type is controlled by the DSE and was thus reset, false otherwise.
+  bool ResetDSEPermission(ContentSettingsType type);
+
+  // Reset all supported DSE permissions.
+  void ResetDSEPermissions();
+
   // KeyedService:
   void Shutdown() override;
 
  private:
+  friend class ChromeBrowsingDataRemoverDelegateTest;
   friend class SearchPermissionsServiceTest;
   FRIEND_TEST_ALL_PREFIXES(GeolocationPermissionContextTests,
                            SearchGeolocationInIncognito);
diff --git a/chrome/browser/android/search_permissions/search_permissions_service_unittest.cc b/chrome/browser/android/search_permissions/search_permissions_service_unittest.cc
index d9b5937..da1e219 100644
--- a/chrome/browser/android/search_permissions/search_permissions_service_unittest.cc
+++ b/chrome/browser/android/search_permissions/search_permissions_service_unittest.cc
@@ -501,3 +501,57 @@
       CONTENT_SETTING_ALLOW,
       GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
 }
+
+TEST_F(SearchPermissionsServiceTest, ResetDSEPermission) {
+  test_delegate()->ChangeDSEOrigin(kGoogleAusURL);
+  SetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_GEOLOCATION,
+                    CONTENT_SETTING_BLOCK);
+  SetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
+                    CONTENT_SETTING_BLOCK);
+  SetContentSetting(kGoogleURL, CONTENT_SETTINGS_TYPE_GEOLOCATION,
+                    CONTENT_SETTING_BLOCK);
+
+  EXPECT_TRUE(
+      GetService()->ResetDSEPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION));
+  EXPECT_EQ(
+      CONTENT_SETTING_ALLOW,
+      GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_GEOLOCATION));
+  EXPECT_EQ(
+      CONTENT_SETTING_BLOCK,
+      GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
+  EXPECT_EQ(CONTENT_SETTING_BLOCK,
+            GetContentSetting(kGoogleURL, CONTENT_SETTINGS_TYPE_GEOLOCATION));
+
+  EXPECT_TRUE(
+      GetService()->ResetDSEPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
+  EXPECT_EQ(
+      CONTENT_SETTING_ALLOW,
+      GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_GEOLOCATION));
+  EXPECT_EQ(
+      CONTENT_SETTING_ALLOW,
+      GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
+  EXPECT_EQ(CONTENT_SETTING_BLOCK,
+            GetContentSetting(kGoogleURL, CONTENT_SETTINGS_TYPE_GEOLOCATION));
+
+  EXPECT_FALSE(GetService()->ResetDSEPermission(CONTENT_SETTINGS_TYPE_MIDI));
+}
+
+TEST_F(SearchPermissionsServiceTest, ResetDSEPermissions) {
+  test_delegate()->ChangeDSEOrigin(kGoogleAusURL);
+  SetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_GEOLOCATION,
+                    CONTENT_SETTING_BLOCK);
+  SetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
+                    CONTENT_SETTING_BLOCK);
+  SetContentSetting(kGoogleURL, CONTENT_SETTINGS_TYPE_GEOLOCATION,
+                    CONTENT_SETTING_BLOCK);
+
+  GetService()->ResetDSEPermissions();
+  EXPECT_EQ(
+      CONTENT_SETTING_ALLOW,
+      GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_GEOLOCATION));
+  EXPECT_EQ(
+      CONTENT_SETTING_ALLOW,
+      GetContentSetting(kGoogleAusURL, CONTENT_SETTINGS_TYPE_NOTIFICATIONS));
+  EXPECT_EQ(CONTENT_SETTING_BLOCK,
+            GetContentSetting(kGoogleURL, CONTENT_SETTINGS_TYPE_GEOLOCATION));
+}
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index 61b01f7f..77443dea 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -89,6 +89,7 @@
 #include "url/url_util.h"
 
 #if defined(OS_ANDROID)
+#include "chrome/browser/android/search_permissions/search_permissions_service.h"
 #include "chrome/browser/android/webapps/webapp_registry.h"
 #include "chrome/browser/media/android/cdm/media_drm_license_manager.h"
 #include "chrome/browser/offline_pages/offline_page_model_factory.h"
@@ -772,6 +773,11 @@
     content::HostZoomMap* zoom_map =
         content::HostZoomMap::GetDefaultForBrowserContext(profile_);
     zoom_map->ClearZoomLevels(delete_begin_, delete_end_);
+#else
+    // Reset the Default Search Engine permissions to their default.
+    SearchPermissionsService* search_permissions_service =
+        SearchPermissionsService::Factory::GetForBrowserContext(profile_);
+    search_permissions_service->ResetDSEPermissions();
 #endif
   }
 
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
index 18d6b49..57ca2c00 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -88,6 +88,7 @@
 #include "ui/gfx/favicon_size.h"
 
 #if defined(OS_ANDROID)
+#include "chrome/browser/android/search_permissions/search_permissions_service.h"
 #include "chrome/browser/android/webapps/webapp_registry.h"
 #else
 #include "content/public/browser/host_zoom_map.h"
@@ -148,6 +149,9 @@
 // For Autofill.
 const char kWebOrigin[] = "https://www.example.com/";
 
+// Default search engine URL.
+const char kDSETestUrl[] = "https://search.com";
+
 const GURL kOrigin1(kTestOrigin1);
 const GURL kOrigin2(kTestOrigin2);
 const GURL kOrigin3(kTestOrigin3);
@@ -156,6 +160,8 @@
 const GURL kOriginExt(kTestOriginExt);
 const GURL kOriginDevTools(kTestOriginDevTools);
 
+const GURL kDSEOrigin(kDSETestUrl);
+
 // Shorthands for origin types.
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 const int kExtension = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION;
@@ -181,6 +187,26 @@
     // Mocks out a JNI call.
   }
 };
+
+// TestSearchEngineDelegate
+class TestSearchEngineDelegate
+    : public SearchPermissionsService::SearchEngineDelegate {
+ public:
+  base::string16 GetDSEName() override { return base::string16(); }
+
+  url::Origin GetDSEOrigin() override {
+    return url::Origin::Create(kDSEOrigin);
+  }
+
+  void SetDSEChangedCallback(const base::Closure& callback) override {
+    dse_changed_callback_ = callback;
+  }
+
+  void UpdateDSEOrigin() { dse_changed_callback_.Run(); }
+
+ private:
+  base::Closure dse_changed_callback_;
+};
 #endif
 
 #if defined(OS_CHROMEOS)
@@ -995,6 +1021,14 @@
         profile_->GetBrowsingDataRemoverDelegate())
         ->OverrideWebappRegistryForTesting(
             base::WrapUnique<WebappRegistry>(new TestWebappRegistry()));
+
+    SearchPermissionsService* service =
+        SearchPermissionsService::Factory::GetForBrowserContext(profile_.get());
+    std::unique_ptr<TestSearchEngineDelegate> delegate =
+        base::MakeUnique<TestSearchEngineDelegate>();
+    TestSearchEngineDelegate* delegate_ptr = delegate.get();
+    service->SetSearchEngineDelegateForTest(std::move(delegate));
+    delegate_ptr->UpdateDSEOrigin();
 #endif
   }
 
@@ -1720,6 +1754,9 @@
   map->SetContentSettingDefaultScope(kOrigin1, kOrigin1,
                                      CONTENT_SETTINGS_TYPE_GEOLOCATION,
                                      std::string(), CONTENT_SETTING_ALLOW);
+  map->SetContentSettingDefaultScope(kDSEOrigin, kDSEOrigin,
+                                     CONTENT_SETTINGS_TYPE_GEOLOCATION,
+                                     std::string(), CONTENT_SETTING_BLOCK);
   map->SetContentSettingDefaultScope(kOrigin2, kOrigin2,
                                      CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
                                      std::string(), CONTENT_SETTING_ALLOW);
@@ -1735,23 +1772,64 @@
       base::Time(), base::Time::Max(),
       ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CONTENT_SETTINGS, false);
 
-  // Everything except the default settings should be deleted now.
+  // Everything except the default settings should be deleted. On Android the
+  // default search engine setting should also not be deleted.
+  bool expect_geolocation_dse_origin = false;
+  bool expect_notifications_dse_origin = false;
+
+#if defined(OS_ANDROID)
+  expect_geolocation_dse_origin = true;
+  expect_notifications_dse_origin =
+      base::FeatureList::IsEnabled(features::kGrantNotificationsToDSE);
+#endif
+
   ContentSettingsForOneType host_settings;
   map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string(),
                              &host_settings);
-  ASSERT_EQ(1u, host_settings.size());
-  EXPECT_EQ(ContentSettingsPattern::Wildcard(),
-            host_settings[0].primary_pattern)
-      << host_settings[0].primary_pattern.ToString();
-  EXPECT_EQ(CONTENT_SETTING_ASK, host_settings[0].GetContentSetting());
+
+  if (expect_geolocation_dse_origin) {
+    ASSERT_EQ(2u, host_settings.size());
+    EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kDSEOrigin),
+              host_settings[0].primary_pattern)
+        << host_settings[0].primary_pattern.ToString();
+    EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kDSEOrigin),
+              host_settings[0].secondary_pattern)
+        << host_settings[0].secondary_pattern.ToString();
+    EXPECT_EQ(CONTENT_SETTING_ALLOW, host_settings[0].GetContentSetting());
+
+    EXPECT_EQ(ContentSettingsPattern::Wildcard(),
+              host_settings[1].primary_pattern)
+        << host_settings[1].primary_pattern.ToString();
+    EXPECT_EQ(CONTENT_SETTING_ASK, host_settings[1].GetContentSetting());
+  } else {
+    ASSERT_EQ(1u, host_settings.size());
+    EXPECT_EQ(ContentSettingsPattern::Wildcard(),
+              host_settings[0].primary_pattern)
+        << host_settings[0].primary_pattern.ToString();
+    EXPECT_EQ(CONTENT_SETTING_ASK, host_settings[0].GetContentSetting());
+  }
 
   map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string(),
                              &host_settings);
-  ASSERT_EQ(1u, host_settings.size());
-  EXPECT_EQ(ContentSettingsPattern::Wildcard(),
-            host_settings[0].primary_pattern)
-      << host_settings[0].primary_pattern.ToString();
-  EXPECT_EQ(CONTENT_SETTING_ASK, host_settings[0].GetContentSetting());
+
+  if (expect_notifications_dse_origin) {
+    ASSERT_EQ(2u, host_settings.size());
+    EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kDSEOrigin),
+              host_settings[0].primary_pattern)
+        << host_settings[0].primary_pattern.ToString();
+    EXPECT_EQ(CONTENT_SETTING_ALLOW, host_settings[0].GetContentSetting());
+
+    EXPECT_EQ(ContentSettingsPattern::Wildcard(),
+              host_settings[1].primary_pattern)
+        << host_settings[1].primary_pattern.ToString();
+    EXPECT_EQ(CONTENT_SETTING_ASK, host_settings[1].GetContentSetting());
+  } else {
+    ASSERT_EQ(1u, host_settings.size());
+    EXPECT_EQ(ContentSettingsPattern::Wildcard(),
+              host_settings[0].primary_pattern)
+        << host_settings[0].primary_pattern.ToString();
+    EXPECT_EQ(CONTENT_SETTING_ASK, host_settings[0].GetContentSetting());
+  }
 
   map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_COOKIES, std::string(),
                              &host_settings);
diff --git a/chromeos/dbus/easy_unlock_client.cc b/chromeos/dbus/easy_unlock_client.cc
index 136988b..616ad15 100644
--- a/chromeos/dbus/easy_unlock_client.cc
+++ b/chromeos/dbus/easy_unlock_client.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <utility>
 #include <vector>
 
 #include "base/bind.h"
@@ -48,20 +49,20 @@
   ~EasyUnlockClientImpl() override = default;
 
   // EasyUnlockClient override.
-  void GenerateEcP256KeyPair(const KeyPairCallback& callback) override {
+  void GenerateEcP256KeyPair(KeyPairCallback callback) override {
     dbus::MethodCall method_call(
         easy_unlock::kEasyUnlockServiceInterface,
         easy_unlock::kGenerateEcP256KeyPairMethod);
     proxy_->CallMethod(
         &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
         base::BindOnce(&EasyUnlockClientImpl::OnKeyPair,
-                       weak_ptr_factory_.GetWeakPtr(), callback));
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
   // EasyUnlockClient override.
   void WrapPublicKey(const std::string& key_algorithm,
                      const std::string& public_key,
-                     const DataCallback& callback) override {
+                     DataCallback callback) override {
     dbus::MethodCall method_call(
         easy_unlock::kEasyUnlockServiceInterface,
         easy_unlock::kWrapPublicKeyMethod);
@@ -71,13 +72,13 @@
     proxy_->CallMethod(
         &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
         base::BindOnce(&EasyUnlockClientImpl::OnData,
-                       weak_ptr_factory_.GetWeakPtr(), callback));
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
   // EasyUnlockClient override.
   void PerformECDHKeyAgreement(const std::string& private_key,
                                const std::string& public_key,
-                               const DataCallback& callback) override {
+                               DataCallback callback) override {
     dbus::MethodCall method_call(
         easy_unlock::kEasyUnlockServiceInterface,
         easy_unlock::kPerformECDHKeyAgreementMethod);
@@ -89,13 +90,13 @@
     proxy_->CallMethod(
         &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
         base::BindOnce(&EasyUnlockClientImpl::OnData,
-                       weak_ptr_factory_.GetWeakPtr(), callback));
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
   // EasyUnlockClient override.
   void CreateSecureMessage(const std::string& payload,
                            const CreateSecureMessageOptions& options,
-                           const DataCallback& callback) override {
+                           DataCallback callback) override {
     dbus::MethodCall method_call(
         easy_unlock::kEasyUnlockServiceInterface,
         easy_unlock::kCreateSecureMessageMethod);
@@ -113,13 +114,13 @@
     proxy_->CallMethod(
         &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
         base::BindOnce(&EasyUnlockClientImpl::OnData,
-                       weak_ptr_factory_.GetWeakPtr(), callback));
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
   // EasyUnlockClient override.
   void UnwrapSecureMessage(const std::string& message,
                            const UnwrapSecureMessageOptions& options,
-                           const DataCallback& callback) override {
+                           DataCallback callback) override {
     dbus::MethodCall method_call(
         easy_unlock::kEasyUnlockServiceInterface,
         easy_unlock::kUnwrapSecureMessageMethod);
@@ -134,7 +135,7 @@
     proxy_->CallMethod(
         &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
         base::BindOnce(&EasyUnlockClientImpl::OnData,
-                       weak_ptr_factory_.GetWeakPtr(), callback));
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
  protected:
@@ -146,19 +147,19 @@
   }
 
  private:
-  void OnData(const DataCallback& callback, dbus::Response* response) {
+  void OnData(DataCallback callback, dbus::Response* response) {
     if (!response) {
-      callback.Run("");
+      std::move(callback).Run(std::string());
       return;
     }
 
     dbus::MessageReader reader(response);
-    callback.Run(PopResponseData(&reader));
+    std::move(callback).Run(PopResponseData(&reader));
   }
 
-  void OnKeyPair(const KeyPairCallback& callback, dbus::Response* response) {
+  void OnKeyPair(KeyPairCallback callback, dbus::Response* response) {
     if (!response) {
-      callback.Run("", "");
+      std::move(callback).Run(std::string(), std::string());
       return;
     }
 
@@ -167,11 +168,11 @@
     std::string public_key = PopResponseData(&reader);
 
     if (public_key.empty() || private_key.empty()) {
-      callback.Run("", "");
+      std::move(callback).Run(std::string(), std::string());
       return;
     }
 
-    callback.Run(private_key, public_key);
+    std::move(callback).Run(private_key, public_key);
   }
 
   dbus::ObjectProxy* proxy_;
diff --git a/chromeos/dbus/easy_unlock_client.h b/chromeos/dbus/easy_unlock_client.h
index 9f233a3..be0d1bf 100644
--- a/chromeos/dbus/easy_unlock_client.h
+++ b/chromeos/dbus/easy_unlock_client.h
@@ -26,14 +26,17 @@
 // OpenSSL (http://crbug.com/338888).
 class CHROMEOS_EXPORT EasyUnlockClient : public DBusClient {
  public:
-  ~EasyUnlockClient() override;
-
-  typedef base::Callback<void(const std::string& data)> DataCallback;
-
   // Callback for |GenerateEcP256KeyPair|. Carries the generated keys.
-  typedef base::Callback<void(const std::string& private_key,
-                              const std::string& public_key)>
-      KeyPairCallback;
+  // On error, arguments are empty strings.
+  using KeyPairCallback =
+      base::OnceCallback<void(const std::string& private_key,
+                              const std::string& public_key)>;
+
+  // Callback for D-Bus calls returning byte arrays as strings.
+  // On error, |data| is empty.
+  using DataCallback = base::OnceCallback<void(const std::string& data)>;
+
+  ~EasyUnlockClient() override;
 
   // Parameters used to create a secure message.
   struct CreateSecureMessageOptions {
@@ -96,7 +99,7 @@
 
   // Generates ECDSA key pair using P256 curve.
   // The created keys should only be used with this client.
-  virtual void GenerateEcP256KeyPair(const KeyPairCallback& callback) = 0;
+  virtual void GenerateEcP256KeyPair(KeyPairCallback callback) = 0;
 
   // Converts public key bytes to format used by Easy Unlock.
   // |key_algorithm|: The asymmetric encryption algorithm with which the key is
@@ -105,7 +108,7 @@
   // |callback|: The callback carrying the wrapped key.
   virtual void WrapPublicKey(const std::string& key_algorithm,
                              const std::string& public_key,
-                             const DataCallback& callback) = 0;
+                             DataCallback callback) = 0;
 
   // Given a private and a public key, creates a symetric secret key using
   // EC Diffe-Hellman key exchange. The provided keys come from different
@@ -114,7 +117,7 @@
   // private and public key come generates the same secret key.
   virtual void PerformECDHKeyAgreement(const std::string& private_key,
                                        const std::string& public_key,
-                                       const DataCallback& callback) = 0;
+                                       DataCallback callback) = 0;
 
   // Creates signed and, if specified, encrypted message in format used by Easy
   // Unlock.
@@ -124,7 +127,7 @@
   //     be empty.
   virtual void CreateSecureMessage(const std::string& payload,
                                    const CreateSecureMessageOptions& options,
-                                   const DataCallback& callback) = 0;
+                                   DataCallback callback) = 0;
 
   // Authenticates and, if specified, decrypts a secure message.
   // |message|: The message to unwrap. It is in the same format as the message
@@ -135,7 +138,7 @@
   //     will be called with an empty string.
   virtual void UnwrapSecureMessage(const std::string& message,
                                    const UnwrapSecureMessageOptions& options,
-                                   const DataCallback& callback) = 0;
+                                   DataCallback callback) = 0;
 
   // Factory function, creates a new instance and returns ownership.
   // For normal usage, access the singleton via DBusThreadManager::Get().
diff --git a/chromeos/dbus/fake_easy_unlock_client.cc b/chromeos/dbus/fake_easy_unlock_client.cc
index dc3a3ec..58516b99 100644
--- a/chromeos/dbus/fake_easy_unlock_client.cc
+++ b/chromeos/dbus/fake_easy_unlock_client.cc
@@ -5,6 +5,7 @@
 #include "chromeos/dbus/fake_easy_unlock_client.h"
 
 #include <memory>
+#include <utility>
 
 #include "base/json/json_string_value_serializer.h"
 #include "base/strings/stringprintf.h"
@@ -60,38 +61,34 @@
 
 void FakeEasyUnlockClient::Init(dbus::Bus* bus) {}
 
-void FakeEasyUnlockClient::GenerateEcP256KeyPair(
-    const KeyPairCallback& callback) {
+void FakeEasyUnlockClient::GenerateEcP256KeyPair(KeyPairCallback callback) {
   ++generated_keys_count_;
 
-  callback.Run(
-      base::StringPrintf("{\"%s\": %d}",
-                         kEc256PrivateKeyKey,
+  std::move(callback).Run(
+      base::StringPrintf("{\"%s\": %d}", kEc256PrivateKeyKey,
                          generated_keys_count_),
-      base::StringPrintf("{\"%s\": %d}",
-                         kEc256PublicKeyKey,
+      base::StringPrintf("{\"%s\": %d}", kEc256PublicKeyKey,
                          generated_keys_count_));
 }
 
 void FakeEasyUnlockClient::WrapPublicKey(const std::string& key_algorithm,
                                          const std::string& public_key,
-                                         const DataCallback& callback) {
-  callback.Run(base::StringPrintf(
+                                         DataCallback callback) {
+  std::move(callback).Run(base::StringPrintf(
       "{\"wrapped_key\": {\"algorithm\":\"%s\", \"key\":\"%s\"}}",
-      key_algorithm.c_str(),
-      public_key.c_str()));
+      key_algorithm.c_str(), public_key.c_str()));
 }
 
 void FakeEasyUnlockClient::PerformECDHKeyAgreement(
     const std::string& private_key,
     const std::string& public_key,
-    const DataCallback& callback) {
+    DataCallback callback) {
   int private_key_index =
       ExtractKeyPairIndexFromKey(private_key, kEc256PrivateKeyKey);
   int public_key_index =
       ExtractKeyPairIndexFromKey(public_key, kEc256PublicKeyKey);
   if (private_key_index < 0 || public_key_index < 0) {
-    callback.Run("");
+    std::move(callback).Run(std::string());
     return;
   }
 
@@ -100,57 +97,49 @@
   // and (key_pair[2].private_key, key_pair[1].public_key) should produce the
   // same shared key. To achieve this, identify the created key by sum and
   // product of the used key pairs.
-  callback.Run(base::StringPrintf(
-      "{\"secret_key\": [%d, %d]}",
-      private_key_index + public_key_index,
+  std::move(callback).Run(base::StringPrintf(
+      "{\"secret_key\": [%d, %d]}", private_key_index + public_key_index,
       private_key_index * public_key_index));
 }
 
 void FakeEasyUnlockClient::CreateSecureMessage(
     const std::string& payload,
     const CreateSecureMessageOptions& options,
-    const DataCallback& callback) {
-  callback.Run(base::StringPrintf(
+    DataCallback callback) {
+  std::move(callback).Run(base::StringPrintf(
       "{\"securemessage\": {"
-          "\"payload\": \"%s\","
-          "\"key\": \"%s\","
-          "\"associated_data\": \"%s\","
-          "\"public_metadata\": \"%s\","
-          "\"verification_key_id\": \"%s\","
-          "\"decryption_key_id\": \"%s\","
-          "\"encryption_type\": \"%s\","
-          "\"signature_type\": \"%s\""
+      "\"payload\": \"%s\","
+      "\"key\": \"%s\","
+      "\"associated_data\": \"%s\","
+      "\"public_metadata\": \"%s\","
+      "\"verification_key_id\": \"%s\","
+      "\"decryption_key_id\": \"%s\","
+      "\"encryption_type\": \"%s\","
+      "\"signature_type\": \"%s\""
       "}}",
-      payload.c_str(),
-      options.key.c_str(),
-      options.associated_data.c_str(),
-      options.public_metadata.c_str(),
-      options.verification_key_id.c_str(),
-      options.decryption_key_id.c_str(),
-      options.encryption_type.c_str(),
+      payload.c_str(), options.key.c_str(), options.associated_data.c_str(),
+      options.public_metadata.c_str(), options.verification_key_id.c_str(),
+      options.decryption_key_id.c_str(), options.encryption_type.c_str(),
       options.signature_type.c_str()));
 }
 
 void FakeEasyUnlockClient::UnwrapSecureMessage(
     const std::string& message,
     const UnwrapSecureMessageOptions& options,
-    const DataCallback& callback) {
+    DataCallback callback) {
   // TODO(tbarzic): Verify that |message| is in the format returned by
   // |CreateSecureMessage| and extract payload, metadata and
   // verification_key_id from there.
-  callback.Run(base::StringPrintf(
+  std::move(callback).Run(base::StringPrintf(
       "{\"unwrapped_securemessage\": {"
-          "\"message\": \"%s\","
-          "\"key\": \"%s\","
-          "\"associated_data\": \"%s\","
-          "\"encryption_type\": \"%s\","
-          "\"signature_type\": \"%s\""
+      "\"message\": \"%s\","
+      "\"key\": \"%s\","
+      "\"associated_data\": \"%s\","
+      "\"encryption_type\": \"%s\","
+      "\"signature_type\": \"%s\""
       "}}",
-      message.c_str(),
-      options.key.c_str(),
-      options.associated_data.c_str(),
-      options.encryption_type.c_str(),
-      options.signature_type.c_str()));
+      message.c_str(), options.key.c_str(), options.associated_data.c_str(),
+      options.encryption_type.c_str(), options.signature_type.c_str()));
 }
 
 }  // namespace chromeos
diff --git a/chromeos/dbus/fake_easy_unlock_client.h b/chromeos/dbus/fake_easy_unlock_client.h
index e94cc547..8b9ad6e 100644
--- a/chromeos/dbus/fake_easy_unlock_client.h
+++ b/chromeos/dbus/fake_easy_unlock_client.h
@@ -25,19 +25,19 @@
 
   // EasyUnlockClient overrides
   void Init(dbus::Bus* bus) override;
-  void GenerateEcP256KeyPair(const KeyPairCallback& callback) override;
+  void GenerateEcP256KeyPair(KeyPairCallback callback) override;
   void WrapPublicKey(const std::string& key_algorithm,
                      const std::string& public_key,
-                     const DataCallback& callback) override;
+                     DataCallback callback) override;
   void PerformECDHKeyAgreement(const std::string& private_key,
                                const std::string& public_key,
-                               const DataCallback& callback) override;
+                               DataCallback callback) override;
   void CreateSecureMessage(const std::string& payload,
                            const CreateSecureMessageOptions& options,
-                           const DataCallback& callback) override;
+                           DataCallback callback) override;
   void UnwrapSecureMessage(const std::string& message,
                            const UnwrapSecureMessageOptions& options,
-                           const DataCallback& callback) override;
+                           DataCallback callback) override;
 
  private:
   int generated_keys_count_;
diff --git a/chromeos/dbus/fake_easy_unlock_client_unittest.cc b/chromeos/dbus/fake_easy_unlock_client_unittest.cc
index 2be4024d..40259b8 100644
--- a/chromeos/dbus/fake_easy_unlock_client_unittest.cc
+++ b/chromeos/dbus/fake_easy_unlock_client_unittest.cc
@@ -34,14 +34,14 @@
   std::string private_key_1;
   std::string public_key_1;
   client.GenerateEcP256KeyPair(
-      base::Bind(&RecordKeyPair, &private_key_1, &public_key_1));
+      base::BindOnce(&RecordKeyPair, &private_key_1, &public_key_1));
   ASSERT_EQ("{\"ec_p256_private_key\": 1}", private_key_1);
   ASSERT_EQ("{\"ec_p256_public_key\": 1}", public_key_1);
 
   std::string private_key_2;
   std::string public_key_2;
   client.GenerateEcP256KeyPair(
-      base::Bind(&RecordKeyPair, &private_key_2, &public_key_2));
+      base::BindOnce(&RecordKeyPair, &private_key_2, &public_key_2));
   ASSERT_EQ("{\"ec_p256_private_key\": 2}", private_key_2);
   ASSERT_EQ("{\"ec_p256_public_key\": 2}", public_key_2);
 
@@ -116,17 +116,15 @@
   // Generate shared key for key pairs 1 and 2, using private key from the
   // second key pair and public key from the first key pair.
   std::string shared_key_1;
-  client.PerformECDHKeyAgreement(private_key_2,
-                                 public_key_1,
-                                 base::Bind(&RecordData, &shared_key_1));
+  client.PerformECDHKeyAgreement(private_key_2, public_key_1,
+                                 base::BindOnce(&RecordData, &shared_key_1));
   EXPECT_FALSE(shared_key_1.empty());
 
   // Generate shared key for key pairs 1 and 2, using private key from the
   // first key pair and public key from the second key pair.
   std::string shared_key_2;
-  client.PerformECDHKeyAgreement(private_key_1,
-                                 public_key_2,
-                                 base::Bind(&RecordData, &shared_key_2));
+  client.PerformECDHKeyAgreement(private_key_1, public_key_2,
+                                 base::BindOnce(&RecordData, &shared_key_2));
   EXPECT_FALSE(shared_key_2.empty());
 
   // The generated keys should be equal. They were generated using keys from
@@ -136,9 +134,8 @@
 
   // Generate a key using key pairs 1 and 3.
   std::string shared_key_3;
-  client.PerformECDHKeyAgreement(private_key_1,
-                                 public_key_3,
-                                 base::Bind(&RecordData, &shared_key_3));
+  client.PerformECDHKeyAgreement(private_key_1, public_key_3,
+                                 base::BindOnce(&RecordData, &shared_key_3));
   EXPECT_FALSE(shared_key_3.empty());
 
   // The new key should be different from the previously generated ones, since
@@ -154,9 +151,8 @@
   const std::string public_key = "{\"ec_p256_public_key\": 345}";
 
   std::string shared_key;
-  client.PerformECDHKeyAgreement(public_key,
-                                 private_key,
-                                 base::Bind(&RecordData, &shared_key));
+  client.PerformECDHKeyAgreement(public_key, private_key,
+                                 base::BindOnce(&RecordData, &shared_key));
   EXPECT_TRUE(shared_key.empty());
 }
 
@@ -167,9 +163,8 @@
   const std::string public_key = "{\"ec_p256_public_key_invalid\": 345}";
 
   std::string shared_key;
-  client.PerformECDHKeyAgreement(private_key,
-                                 public_key,
-                                 base::Bind(&RecordData, &shared_key));
+  client.PerformECDHKeyAgreement(private_key, public_key,
+                                 base::BindOnce(&RecordData, &shared_key));
   EXPECT_TRUE(shared_key.empty());
 }
 
@@ -180,9 +175,8 @@
   const std::string public_key = "{\"ec_p256_public_key\": \"345__\"}";
 
   std::string shared_key;
-  client.PerformECDHKeyAgreement(private_key,
-                                 public_key,
-                                 base::Bind(&RecordData, &shared_key));
+  client.PerformECDHKeyAgreement(private_key, public_key,
+                                 base::BindOnce(&RecordData, &shared_key));
   EXPECT_TRUE(shared_key.empty());
 }
 
@@ -193,9 +187,8 @@
   const std::string public_key = "{\"ec_p256_public_key\": 345}";
 
   std::string shared_key;
-  client.PerformECDHKeyAgreement(private_key,
-                                 public_key,
-                                 base::Bind(&RecordData, &shared_key));
+  client.PerformECDHKeyAgreement(private_key, public_key,
+                                 base::BindOnce(&RecordData, &shared_key));
   EXPECT_TRUE(shared_key.empty());
 }
 
@@ -213,10 +206,8 @@
   options.encryption_type = "ENCRYPTION_TYPE";
   options.signature_type = "SIGNATURE_TYPE";
 
-  client.CreateSecureMessage(
-      "PAYLOAD",
-      options,
-      base::Bind(&RecordData, &message));
+  client.CreateSecureMessage("PAYLOAD", options,
+                             base::BindOnce(&RecordData, &message));
 
   const std::string expected_message(
       "{\"securemessage\": {"
@@ -243,10 +234,8 @@
   options.encryption_type = "ENCRYPTION_TYPE";
   options.signature_type = "SIGNATURE_TYPE";
 
-  client.UnwrapSecureMessage(
-      "MESSAGE",
-      options,
-      base::Bind(&RecordData, &message));
+  client.UnwrapSecureMessage("MESSAGE", options,
+                             base::BindOnce(&RecordData, &message));
 
   const std::string expected_message(
       "{\"unwrapped_securemessage\": {"
@@ -260,4 +249,3 @@
 }
 
 }  // namespace
-
diff --git a/third_party/WebKit/LayoutTests/ASANExpectations b/third_party/WebKit/LayoutTests/ASANExpectations
index 2b661661..9de156b 100644
--- a/third_party/WebKit/LayoutTests/ASANExpectations
+++ b/third_party/WebKit/LayoutTests/ASANExpectations
@@ -49,21 +49,17 @@
 crbug.com/438499 [ Linux ] http/tests/websocket/workers/worker-simple.html [ Timeout ]
 crbug.com/438499 [ Linux ] http/tests/workers/text-encoding.html [ Timeout ]
 crbug.com/438499 [ Linux ] http/tests/devtools/profiler/heap-snapshot-loader.js [ Timeout ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-loader.js [ Timeout ]
 crbug.com/438499 [ Linux ] http/tests/devtools/profiler/heap-snapshot-containment-show-all.js [ Timeout ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-containment-show-all.js [ Timeout ]
 crbug.com/438499 [ Linux ] virtual/threaded/animations/unanimated-style.html [ Timeout ]
 
 # Flakily timeout on Linux ASAN bots.
 crbug.com/243871 [ Linux ] virtual/threaded/fast/scroll-behavior/ [ Skip ]
 crbug.com/700795 [ Linux ] http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Skip ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Skip ]
 
 crbug.com/464065 [ Linux ] media/track/css-cue-for-video-in-shadow.html [ Timeout ]
 crbug.com/464065 [ Linux ] media/track/css-cue-for-video-in-shadow-2.html [ Timeout ]
 
 crbug.com/572723 [ Linux ] http/tests/devtools/sources/debugger/debugger-completions-on-call-frame.js [ Timeout Pass ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/sources/debugger/debugger-completions-on-call-frame.js [ Timeout Pass ]
 
 # Intentionally failed allocations, via partitionAllocGenericFlags()
 crbug.com/577889 [ Linux ] fast/js/typed-array-allocation-failure.html [ Crash ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
index 9e837d25..0a77ebd5 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -8064,11 +8064,6 @@
 crbug.com/591099 virtual/layout_ng_paint/fast/inline/inline-box-adjust-position-crash.html [ Pass ]
 crbug.com/714962 virtual/layout_ng_paint/fast/inline/drawStyledEmptyInlinesWithWS.html [ Failure ]
 crbug.com/591099 virtual/mojo-blobs/ [ Skip ]
-crbug.com/591099 virtual/mojo-loading/ [ Skip ]
-crbug.com/591099 virtual/mojo-loading/http/tests/feature-policy/fullscreen-disabled.php [ Pass ]
-crbug.com/591099 virtual/mojo-loading/http/tests/feature-policy/payment-disabled.php [ Pass ]
-crbug.com/591099 virtual/mojo-loading/http/tests/feature-policy/payment-enabledforall.php [ Pass ]
-crbug.com/591099 virtual/mojo-loading/http/tests/workers/shared-worker-performance-timeline.html [ Pass ]
 crbug.com/591099 virtual/mojo-localstorage/ [ Skip ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/anchor-empty-focus.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/autoscroll-in-overflow-hidden-html.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-browser-side-navigation b/third_party/WebKit/LayoutTests/FlagExpectations/enable-browser-side-navigation
index ae914f1..c7c0f72 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-browser-side-navigation
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-browser-side-navigation
@@ -3,7 +3,6 @@
 
 # These tests are flaky.
 Bug(none) http/tests/security/popup-allowed-by-sandbox-can-navigate.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/security/popup-allowed-by-sandbox-can-navigate.html [ Failure ]
 
 # Not disclosing |source_location| and/or |blocked url| between cross-origin
 # renderers when a CSP policy is violated regresses the quality of console
@@ -12,10 +11,6 @@
 Bug(718942) http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-with-redirect.html [ Failure ]
 Bug(718942) http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html [ Failure ]
 Bug(718942) http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html [ Failure ]
-Bug(718942) virtual/mojo-loading/http/tests/misc/onload-detach-during-csp-frame-src-none.html [ Failure ]
-Bug(718942) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-with-redirect.html [ Failure ]
-Bug(718942) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html [ Failure ]
-Bug(718942) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html [ Failure ]
 
 # Console error message source location is present with PlzNavigate. It means
 # that URLs are potentially disclosed across cross-origin renderers.
@@ -31,14 +26,6 @@
 Bug(726178) http/tests/security/mixedContent/nonwebby-scheme-in-iframe-allowed.https.html [ Failure ]
 Bug(726178) http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html [ Failure ]
 Bug(726178) http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/insecure-frame-in-data-iframe-in-main-frame-blocked.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/insecure-iframe-in-iframe.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/insecure-iframe-in-main-frame-allowed.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/insecure-iframe-in-main-frame-blocked.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/nonwebby-scheme-in-iframe-allowed.https.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html [ Failure ]
-Bug(726178) virtual/mojo-loading/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html [ Failure ]
 
 # ------------------------------------------------------------
 # These tests are correct with PlzNavigate but not without it
@@ -46,8 +33,6 @@
 # Without PlzNavigate, the line number of the console message is missing when
 # there is a redirect.
 Bug(none) http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked.html [ Failure ]
 # The line number in CSP violation event should be hidden when it comes from a
 # cross-origin iframe.
 Bug(none) http/tests/security/contentSecurityPolicy/frame-src-child-frame-navigates-to-blocked-origin.html [ Failure ]
-Bug(none) virtual/mojo-loading/http/tests/security/contentSecurityPolicy/frame-src-child-frame-navigates-to-blocked-origin.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService b/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
index 53ac85b..edd992d 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
@@ -1,11 +1,10 @@
 # These tests currently fail when run with --enable-network-service
 # See https://crbug.com/729849
 
-# Skip the mojo-blobs and mojo-loading virtual test suites because these flags
+# Skip the mojo-blobs virtual test suite because these flags
 # are implied by the Network Service flag. Failures there are therefore
 # duplicates of failures below.
 Bug(none) virtual/mojo-blobs [ Skip ]
-Bug(none) virtual/mojo-loading [ Skip ]
 
 Bug(none) external/wpt/clear-site-data/storage.https.html [ Failure ]
 Bug(none) external/wpt/XMLHttpRequest/overridemimetype-blob.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
index 5f6e2fc..ea641a7 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
@@ -9,7 +9,6 @@
 Bug(none) crypto/ [ Skip ]
 Bug(none) css-parser/ [ Skip ]
 Bug(none) css1/ [ Skip ]
-Bug(none) virtual/mojo-loading/css1/ [ Skip ]
 Bug(none) css2.1/ [ Skip ]
 Bug(none) css3/ [ Skip ]
 Bug(none) css3/blending [ Pass ]
@@ -80,7 +79,6 @@
 Bug(none) virtual/linux-subpixel/ [ Skip ]
 Bug(none) virtual/mac-antialiasedtext/ [ Skip ]
 Bug(none) virtual/media-gpu-accelerated/ [ Skip ]
-Bug(none) virtual/mojo-loading/ [ Skip ]
 Bug(none) virtual/mojo-localstorage/ [ Skip ]
 Bug(none) virtual/mouseevent_fractional/ [ Skip ]
 
@@ -771,99 +769,52 @@
 Bug(none) fast/sub-pixel/should-not-repaint-subpixel-composited-layer.html [ Failure ]
 Bug(none) fast/sub-pixel/transformed-iframe-copy-on-scroll.html [ Failure ]
 Bug(none) fast/table/023.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/023.html [ Failure ]
 Bug(none) fast/table/027-vertical.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/027-vertical.html [ Failure ]
 Bug(none) fast/table/040-vertical.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/040-vertical.html [ Failure ]
 Bug(none) fast/table/040.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/040.html [ Failure ]
 Bug(none) fast/table/border-collapsing/004.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/border-collapsing/004.html [ Failure ]
 Bug(none) fast/table/empty-cells.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/empty-cells.html [ Failure ]
 Bug(none) fast/table/frame-and-rules.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/frame-and-rules.html [ Failure ]
 Bug(none) fast/table/overflowHidden.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/overflowHidden.html [ Failure ]
 Bug(none) fast/table/prepend-in-anonymous-table.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/prepend-in-anonymous-table.html [ Failure ]
 Bug(none) fast/table/table-display-types-vertical.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/table-display-types-vertical.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-cell-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-cell-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-cell.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-cell.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-column-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-column-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-column-group-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-column-group-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-column-group.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-column-group.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-column.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-column.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-row-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-row-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-row-group-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-row-group-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-row-group.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-row-group.html [ Failure ]
 Bug(none) fast/table/backgr_border-table-row.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table-row.html [ Failure ]
 Bug(none) fast/table/backgr_border-table.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_border-table.html [ Failure ]
 Bug(none) fast/table/backgr_layers-hide.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_layers-hide.html [ Failure ]
 Bug(none) fast/table/backgr_layers-show-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_layers-show-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_layers-show.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_layers-show.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-cell-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-cell-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-cell.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-cell.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-column-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-column-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-column-group-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-column-group-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-column-group.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-column-group.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-column.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-column.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-row-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-row-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-row-group-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-row-group-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-row-group.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-row-group.html [ Failure ]
 Bug(none) fast/table/backgr_position-table-row.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table-row.html [ Failure ]
 Bug(none) fast/table/backgr_position-table.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_position-table.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-cell-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-cell-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-cell.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-cell.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-column-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-column-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-column-group-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-column-group-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-column-group.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-column-group.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-column.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-column.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-row-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-row-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-row-group-collapsed-border.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-row-group-collapsed-border.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-row-group.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-row-group.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table-row.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table-row.html [ Failure ]
 Bug(none) fast/table/backgr_simple-table.html [ Failure ]
-Bug(none) virtual/mojo-loading/fast/table/backgr_simple-table.html [ Failure ]
 Bug(none) fast/text/capitalize-boundaries.html [ Failure ]
 Bug(none) fast/text/selection/emphasis.html [ Failure ]
 Bug(none) fast/text/font-stretch-variant.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/root-layer-scrolls b/third_party/WebKit/LayoutTests/FlagExpectations/root-layer-scrolls
index a2bec00f..87edc2f 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/root-layer-scrolls
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/root-layer-scrolls
@@ -50,15 +50,6 @@
 crbug.com/417782 [ Linux ] virtual/android/fullscreen/video-controls-timeline.html [ Failure ]
 crbug.com/417782 [ Linux ] virtual/android/fullscreen/video-scrolled-iframe.html [ Failure ]
 crbug.com/417782 [ Linux ] virtual/gpu/fast/canvas/OffscreenCanvas-2d-imageSmoothing.html [ Timeout ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/device-mode/default-background-color.html [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/layers/layer-compositing-reasons.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/layers/layer-tree-model.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/layer-tree.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint-with-layout-invalidations-on-deleted-node.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint-with-layout-invalidations.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint-with-style-recalc-invalidations.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint.js [ Failure ]
-crbug.com/417782 virtual/mojo-loading/http/tests/misc/acid3.html [ Failure ]
 crbug.com/417782 virtual/mouseevent_fractional/fast/events/pointerevents/pointer-event-mouse-coords-in-zoom-and-scroll.html [ Failure ]
 crbug.com/417782 virtual/mouseevent_fractional/fast/events/pointerevents/pointer-event-pen-coords-in-zoom-and-scroll.html [ Failure ]
 crbug.com/417782 virtual/mouseevent_fractional/fast/events/scale-and-scroll-iframe-window.html [ Failure ]
@@ -79,7 +70,6 @@
 
 # Tests known to be flaky
 crbug.com/786117 [ Linux ] plugins/mouse-events-fixedpos.html [ Pass Crash ]
-crbug.com/417782 virtual/mojo-loading/http/tests/devtools/tracing/scroll-invalidations.html [ Crash Failure ]
 
 # Virtual test suites to skip.
 crbug.com/417782 virtual/spv175 [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process b/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
index 0e74d2a..9827401f 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
@@ -10,26 +10,21 @@
 
 # https://crbug.com/765779: unique name trouble with PlzNavigate
 crbug.com/765779 http/tests/loading/bad-server-subframe.html [ Failure ]
-crbug.com/765779 virtual/mojo-loading/http/tests/loading/bad-server-subframe.html [ Failure ]
 
 # https://crbug.com/393285: Text-autosizing doesn't support OOPIFs.
 # https://crbug.com/667551: Pixel dumps don't support OOPIFs.
 # Both of the bugs above need to be fixed, before enabling the tests below.
 crbug.com/393285 http/tests/text-autosizing/narrow-iframe.html [ Failure ]
 crbug.com/393285 http/tests/text-autosizing/wide-iframe.html [ Failure ]
-crbug.com/393285 virtual/mojo-loading/http/tests/text-autosizing/narrow-iframe.html [ Failure ]
-crbug.com/393285 virtual/mojo-loading/http/tests/text-autosizing/wide-iframe.html [ Failure ]
 
 # https://crbug.com/697111: assert failures in test added in r451938.
 crbug.com/697111 svg/dom/getScreenCTM-ancestor-transform.html [ Failure ]
 
 # https://crbug.com/669083: console messages mismatch (origin-only VS full-URI)
 crbug.com/669083 http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
-crbug.com/669083 virtual/mojo-loading/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
 
 # https://crbug.com/661725 - Propagating user gesture via postMessage doesn't work for OOPIFs
 crbug.com/661725 http/tests/security/frameNavigation/xss-ALLOWED-top-navigation-after-postMessage.html [ Failure Timeout ]
-crbug.com/661725 virtual/mojo-loading/http/tests/security/frameNavigation/xss-ALLOWED-top-navigation-after-postMessage.html [ Failure Timeout ]
 
 # https://crbug.com/582245 - no exception, b/c BindingSecurity::shouldAllowAccessTo exits early when |!target|.
 crbug.com/582245 external/wpt/x-frame-options/deny.sub.html [ Failure ]
@@ -37,84 +32,59 @@
 crbug.com/582245 external/wpt/x-frame-options/sameorigin.sub.html [ Failure ]
 crbug.com/582245 http/tests/security/xss-DENIED-getSVGDocument-iframe.html [ Failure ]
 crbug.com/582245 http/tests/security/xss-DENIED-getSVGDocument-object.html [ Failure ]
-crbug.com/582245 virtual/mojo-loading/http/tests/security/xss-DENIED-getSVGDocument-iframe.html [ Failure ]
-crbug.com/582245 virtual/mojo-loading/http/tests/security/xss-DENIED-getSVGDocument-object.html [ Failure ]
 crbug.com/582245 http/tests/security/xssAuditor/block-does-not-leak-location.html [ Failure ]
 crbug.com/582245 http/tests/security/xssAuditor/block-does-not-leak-referrer.html [ Failure ]
-crbug.com/582245 virtual/mojo-loading/http/tests/security/xssAuditor/block-does-not-leak-location.html [ Failure ]
-crbug.com/582245 virtual/mojo-loading/http/tests/security/xssAuditor/block-does-not-leak-referrer.html [ Failure ]
 crbug.com/582245 http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html [ Failure ]
-crbug.com/582245 virtual/mojo-loading/http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html [ Failure ]
 
 # https://crbug.com/582176 - InspectorTest.changeExecutionContext doesn't like OOPIFs.
 crbug.com/582176 http/tests/devtools/console-cd-completions.js [ Failure ]
 crbug.com/582176 http/tests/devtools/console-cd.js [ Failure ]
-crbug.com/582176 virtual/mojo-loading/http/tests/devtools/console-cd-completions.js [ Failure ]
-crbug.com/582176 virtual/mojo-loading/http/tests/devtools/console-cd.js [ Failure ]
 
 # https://crbug.com/608015 - node.contentDocument is undefined.
 crbug.com/608015 http/tests/inspector-protocol/access-inspected-object.js [ Failure Timeout ]
-crbug.com/608015 virtual/mojo-loading/http/tests/inspector-protocol/access-inspected-object.js [ Failure Timeout ]
 
 # https://crbug.com/771003 - Dump history from all processes in layout tests
 crbug.com/771003 http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
-crbug.com/771003 virtual/mojo-loading/http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
 
 # https://crbug.com/585188 - testRunner.addOriginAccessWhitelistEntry is not replicated to OOPIFs.
 crbug.com/585188 http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
-crbug.com/585188 virtual/mojo-loading/http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
 crbug.com/585188 virtual/outofblink-cors/http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
 crbug.com/585188 http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
-crbug.com/585188 virtual/mojo-loading/http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
 crbug.com/585188 virtual/outofblink-cors/http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
 
 # https://crbug.com/601584 - No OOPIF support for UserGestureIndicator triggers
 #                            cross-origin-iframe.html layout test failure
 crbug.com/601584 http/tests/bluetooth/https/requestDevice/cross-origin-iframe.html [ Failure ]
-crbug.com/601584 virtual/mojo-loading/http/tests/bluetooth/https/requestDevice/cross-origin-iframe.html [ Failure ]
 
 # https://crbug.com/606594 - UaF of delegate_ in WebFrameTestClient::willSendRequest
 # https://crbug.com/786510 - test tries to access cross-origin document body
 crbug.com/606594 http/tests/local/serviceworker/fetch-request-body-file.html [ Skip ]
-crbug.com/606594 virtual/mojo-loading/http/tests/local/serviceworker/fetch-request-body-file.html [ Skip ]
 
 # https://crbug.com/607991 - MockWebClipboardImpl not replicated across OOPIFs.
 crbug.com/607991 http/tests/misc/copy-resolves-urls.html [ Failure ]
-crbug.com/607991 virtual/mojo-loading/http/tests/misc/copy-resolves-urls.html [ Failure ]
 
 # https://crbug.com/608780 - window.performance doesn't work with OOPIFs
 crbug.com/608780 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect.html [ Failure ]
 crbug.com/608780 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect_with_timing_allow_origin.html [ Failure ]
 crbug.com/608780 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html [ Failure ]
 crbug.com/608780 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html [ Failure ]
-crbug.com/608780 virtual/mojo-loading/http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect.html [ Failure ]
-crbug.com/608780 virtual/mojo-loading/http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect_with_timing_allow_origin.html [ Failure ]
-crbug.com/608780 virtual/mojo-loading/http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html [ Failure ]
-crbug.com/608780 virtual/mojo-loading/http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html [ Failure ]
 
 # https://crbug.com/611232 - CSP checks from remote parent frame do not properly report violations
 crbug.com/611232 http/tests/security/contentSecurityPolicy/frame-src-child-frame-navigates-to-blocked-origin.html [ Timeout ]
-crbug.com/611232 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/frame-src-child-frame-navigates-to-blocked-origin.html [ Timeout ]
 
 # https://crbug.com/616626 - allow_universal_access_from_file_urls doesn't work with --site-per-process.
 # https://crbug.com/665058 - EventSender drag-and-drop simulation doesn't support OOPIFs.
 crbug.com/665058 http/tests/local/drag-over-remote-content.html [ Crash ]
-crbug.com/665058 virtual/mojo-loading/http/tests/local/drag-over-remote-content.html [ Crash ]
 
 # https://crbug.com/619662 - Expected console output differences.
 crbug.com/619662 http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
 crbug.com/619662 virtual/stable/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
-crbug.com/619662 virtual/mojo-loading/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
 
 # https://crbug.com/623268 - Can't inspect OOPIFs from main page's DevTools window.
 crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-blockable.js [ Timeout ]
 crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-none.js [ Timeout ]
 crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js [ Timeout ]
-crbug.com/623268 virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-blockable.js [ Timeout ]
-crbug.com/623268 virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-none.js [ Timeout ]
-crbug.com/623268 virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js [ Timeout ]
 crbug.com/623268 http/tests/devtools/console-cross-origin-iframe-logging.js [ Timeout ]
-crbug.com/623268 virtual/mojo-loading/http/tests/devtools/console-cross-origin-iframe-logging.js [ Timeout ]
 
 # https://crbug.com/645641 - test_runner.cc(1863) Check failed:
 # layout_test_runtime_flags_.have_top_loading_frame()
@@ -122,28 +92,20 @@
 
 # http/ flaky tests w/ --site-per-process
 crbug.com/678481 http/tests/devtools/appcache/appcache-iframe-manifests.js [ Timeout Pass ]
-crbug.com/678481 virtual/mojo-loading/http/tests/devtools/appcache/appcache-iframe-manifests.js [ Timeout Pass ]
 crbug.com/678482 http/tests/devtools/debugger/fetch-breakpoints.js [ Timeout Pass ]
-crbug.com/678482 virtual/mojo-loading/http/tests/devtools/debugger/fetch-breakpoints.js [ Timeout Pass ]
 crbug.com/678484 http/tests/devtools/startup/reattach-after-editing-styles.html [ Timeout Pass ]
-crbug.com/678484 virtual/mojo-loading/http/tests/devtools/startup/reattach-after-editing-styles.html [ Timeout Pass ]
 crbug.com/678485 http/tests/devtools/startup/shadow-dom-rules-restart.html [ Timeout ]
-crbug.com/678485 virtual/mojo-loading/http/tests/devtools/startup/shadow-dom-rules-restart.html [ Timeout ]
 crbug.com/678491 http/tests/misc/webtiming-no-origin.html [ Crash Pass ]
-crbug.com/678491 virtual/mojo-loading/http/tests/misc/webtiming-no-origin.html [ Crash Pass ]
 
 # Slow tests. These are listed in SlowTests listed here also because
 # expectations are unfortunately not inherited automatically (e.g. see
 # https://crbug.com/594216)
 crbug.com/451577 http/tests/devtools/network/network-datareceived.js [ Timeout Pass ]
-crbug.com/451577 virtual/mojo-loading/http/tests/devtools/network/network-datareceived.js [ Timeout Pass ]
 crbug.com/24182 http/tests/perf/large-inlined-script.html [ Timeout Pass ]
-crbug.com/24182 virtual/mojo-loading/http/tests/perf/large-inlined-script.html [ Timeout Pass ]
 
 # https://crbug.com/650348: Remove input event forwarding path from RenderFrameProxies
 # This test needs to be modified to not rely on EventSender passing mouse events directly to an OOPIF.
 crbug.com/650348 http/tests/webaudio/autoplay-crossorigin.html [ Timeout ]
-crbug.com/650348 virtual/mojo-loading/http/tests/webaudio/autoplay-crossorigin.html [ Timeout ]
 
 # https://crbug.com/745881: Image diff in test due to font rendering issues.
 crbug.com/745881 [ Win ] fast/text/ellipsis-in-relative-inline.html [ Failure ]
@@ -156,10 +118,6 @@
 crbug.com/788390 http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-header.html [ Timeout ]
 crbug.com/788390 http/tests/media/autoplay/document-user-activation-feature-policy-alternating.html [ Timeout ]
 crbug.com/788390 http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html [ Timeout ]
-crbug.com/788390 virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-disabled.html [ Timeout ]
-crbug.com/788390 virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-header.html [ Timeout ]
-crbug.com/788390 virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-feature-policy-alternating.html [ Timeout ]
-crbug.com/788390 virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html [ Timeout ]
 
 # The tests below are inherently incompatible with isolating same-site, cross-origin
 # frames into separate processes (which is how Site Isolation bots treat
diff --git a/third_party/WebKit/LayoutTests/LeakExpectations b/third_party/WebKit/LayoutTests/LeakExpectations
index 91fd258..df163903 100644
--- a/third_party/WebKit/LayoutTests/LeakExpectations
+++ b/third_party/WebKit/LayoutTests/LeakExpectations
@@ -23,19 +23,14 @@
 # Untriaged but known leaks of PausableObject (http).
 # -----------------------------------------------------------------
 crbug.com/506754 http/tests/serviceworker/chromium/resolve-after-window-close.html [ Leak ]
-crbug.com/506754 virtual/mojo-loading/http/tests/serviceworker/chromium/resolve-after-window-close.html [ Leak ]
 crbug.com/506754 virtual/service-worker-script-streaming/http/tests/serviceworker/chromium/resolve-after-window-close.html [ Leak ]
 crbug.com/506754 http/tests/serviceworker/chromium/window-close-during-registration.html [ Leak ]
-crbug.com/506754 virtual/mojo-loading/http/tests/serviceworker/chromium/window-close-during-registration.html [ Leak ]
 crbug.com/506754 virtual/service-worker-script-streaming/http/tests/serviceworker/chromium/window-close-during-registration.html [ Leak ]
 
 crbug.com/664874 http/tests/xmlhttprequest/workers/xmlhttprequest-allowed-with-disabled-web-security.html [ Leak ]
-crbug.com/664874 virtual/mojo-loading/http/tests/xmlhttprequest/workers/xmlhttprequest-allowed-with-disabled-web-security.html [ Leak ]
 
 crbug.com/672740 http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker-allowed.html [ Leak Pass ]
-crbug.com/672740 virtual/mojo-loading/http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker-allowed.html [ Leak Pass ]
 crbug.com/672740 http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker.html [ Leak Pass ]
-crbug.com/672740 virtual/mojo-loading/http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker.html [ Leak Pass ]
 
 crbug.com/755625 external/wpt/beacon/beacon-error.window.html [ Leak ]
 
@@ -52,7 +47,6 @@
 # Not revert suspected CL as jam@ request, expected to be fixed soon.
 # -----------------------------------------------------------------
 crbug.com/765721 [ Linux ] http/tests/navigation/navigation-interrupted-by-fragment.html [ Pass Leak ]
-crbug.com/765721 [ Linux ] virtual/mojo-loading/http/tests/navigation/navigation-interrupted-by-fragment.html  [ Pass Leak ]
 crbug.com/765721 [ Linux ] virtual/stable/http/tests/navigation/navigation-interrupted-by-fragment.html [ Pass Leak ]
 
 ###########################################################################
diff --git a/third_party/WebKit/LayoutTests/MSANExpectations b/third_party/WebKit/LayoutTests/MSANExpectations
index 516f3c54a..7d6e609 100644
--- a/third_party/WebKit/LayoutTests/MSANExpectations
+++ b/third_party/WebKit/LayoutTests/MSANExpectations
@@ -16,7 +16,6 @@
 crbug.com/422982 [ Linux ] virtual/threaded [ Skip ]
 
 crbug.com/700795 [ Linux ] http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Skip ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Skip ]
 
 crbug.com/454267 [ Linux ] virtual/gpu/fast/canvas/canvas-arc-360-winding.html [ Crash ]
 crbug.com/454267 [ Linux ] virtual/gpu/fast/canvas/canvas-ellipse-360-winding.html [ Crash ]
@@ -40,12 +39,7 @@
 crbug.com/462190 [ Linux ] inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [ Timeout ]
 
 crbug.com/667560 [ Linux ] http/tests/devtools/startup/console/console-format-startup.html [ Timeout Pass ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/startup/console/console-format-startup.html [ Timeout Pass ]
 crbug.com/751906 [ Linux ] http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ]
-crbug.com/751906 [ Linux ] virtual/mojo-loading/http/tests/devtools/console/console-correct-suggestions.js [ Timeout Pass ]
-
-crbug.com/671556 [ Linux ] virtual/mojo-loading/http/tests/security/xssAuditor/report-script-tag-replace-state.html [ Timeout Pass ]
-crbug.com/671556 [ Linux ] virtual/mojo-loading/http/tests/security/xssAuditor/report-script-tag.html [ Timeout Pass ]
 
 crbug.com/736370 [ Linux ] external/wpt/editing/run/removeformat.html [ Timeout ]
 crbug.com/736554 [ Linux ] external/wpt/IndexedDB/nested-cloning-large-multiple.html [ Timeout ]
@@ -67,9 +61,7 @@
 crbug.com/729136 [ Linux ] http/tests/devtools/forced-layout-in-microtask.js [ Timeout ]
 crbug.com/729136 [ Linux ] http/tests/devtools/tracing/timeline-xhr-response-type-blob-event.js [ Timeout ]
 crbug.com/729136 [ Linux ] http/tests/devtools/components/file-path-scoring.js [ Timeout ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/components/file-path-scoring.js [ Timeout ]
 crbug.com/729136 [ Linux ] http/tests/devtools/elements/styles-4/styles-should-not-force-sync-style-recalc.js [ Timeout ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/elements/styles-4/styles-should-not-force-sync-style-recalc.js [ Timeout ]
 crbug.com/729136 [ Linux ] webaudio/mixing.html [ Timeout ]
 
 crbug.com/739365 [ Linux ] virtual/layout_ng/fast/block/float/assert-when-moving-float.html [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/NeverFixTests b/third_party/WebKit/LayoutTests/NeverFixTests
index 886685e..025e1cf 100644
--- a/third_party/WebKit/LayoutTests/NeverFixTests
+++ b/third_party/WebKit/LayoutTests/NeverFixTests
@@ -14,7 +14,6 @@
 
 # Perf tests are really slow in debug builds and there are few benefits in running them.
 [ Debug ] http/tests/perf [ WontFix ]
-[ Debug ] virtual/mojo-loading/http/tests/perf [ WontFix ]
 
 # This test verifies that a mismatch reftest will fail if both results are the
 # same.  Because the whole point is that this test should fail when run, it's
@@ -111,12 +110,6 @@
 [ Android ] http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html [ WontFix ]
 [ Android ] http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html [ WontFix ]
 [ Android ] http/tests/media/media-source/mediasource-config-change-mp4-v-framesize.html [ WontFix ]
-[ Android ] virtual/mojo-loading/http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate.html [ WontFix ]
-[ Android ] virtual/mojo-loading/http/tests/media/media-source/mediasource-config-change-mp4-av-framesize.html [ WontFix ]
-[ Android ] virtual/mojo-loading/http/tests/media/media-source/mediasource-config-change-mp4-av-video-bitrate.html [ WontFix ]
-[ Android ] virtual/mojo-loading/http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html [ WontFix ]
-[ Android ] virtual/mojo-loading/http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html [ WontFix ]
-[ Android ] virtual/mojo-loading/http/tests/media/media-source/mediasource-config-change-mp4-v-framesize.html [ WontFix ]
 
 # Only run fake-Android tests on Linux
 [ Mac Win ] virtual/android [ WontFix ]
@@ -244,7 +237,6 @@
 # We could fix this test for us and upstream it if the test shell user agent
 # would let us differentiate test_shell and WebKit DumpTreeNode.
 crbug.com/7482 [ Win Mac ] http/tests/misc/timer-vs-loading.html [ WontFix ]
-crbug.com/7482 [ Win Mac ] virtual/mojo-loading/http/tests/misc/timer-vs-loading.html [ WontFix ]
 
 # On Linux bold emoji are already supported.
 crbug.com/551843 [ Linux ] fast/text/fallback-traits-fixup.html [ WontFix ]
@@ -268,9 +260,7 @@
 crbug.com/606302 [ Win7 Debug ] transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html [ WontFix ]
 crbug.com/606302 [ Win7 Debug ] transforms/3d/point-mapping/3d-point-mapping-deep.html [ WontFix ]
 crbug.com/702176 [ Win7 Debug ] fast/table/border-collapsing/001-vertical.html [ WontFix ]
-crbug.com/702176 [ Win7 Debug ] virtual/mojo-loading/fast/table/border-collapsing/001-vertical.html [ WontFix ]
 crbug.com/702176 [ Win7 Debug ] fast/table/border-collapsing/001.html [ WontFix ]
-crbug.com/702176 [ Win7 Debug ] virtual/mojo-loading/fast/table/border-collapsing/001.html [ WontFix ]
 
 # Rendering issue only seen in Layout Tests on Android.
 # R and B color channels switched on decoded images.
@@ -282,7 +272,6 @@
 
 # wasm tests. Currently under virtual/enable_wasm or virtual/enable_wasm_streaming
 crbug.com/642912 http/tests/wasm/ [ WontFix ]
-crbug.com/642912 virtual/mojo-loading/http/tests/wasm/ [ WontFix ]
 
 # These tests require audio codecs which are generally not available;
 # these tests can still be run manually with --skiped=ignore.
@@ -1845,11 +1834,9 @@
 # These directories have manual tests that don't have to run with
 # run-webkit-tests; see https://crbug.com/359838.
 http/tests/ManualTests/ [ WontFix ]
-virtual/mojo-loading/http/tests/ManualTests/ [ WontFix ]
 
 # These test produce invisible different pixels on Win7 Debug.
 [ Win7 Debug ] fast/table/backgr_border-table-column-group-collapsed-border.html [ WontFix ]
-[ Win7 Debug ] virtual/mojo-loading/fast/table/backgr_border-table-column-group-collapsed-border.html [ WontFix ]
 
 # Fails in debug mode, because in debug mode we recompute visual rects after
 # changes to subpixel offsets of composited layers to detect under-invalidation
diff --git a/third_party/WebKit/LayoutTests/SlowTests b/third_party/WebKit/LayoutTests/SlowTests
index 2ddd271..4a4dec19 100644
--- a/third_party/WebKit/LayoutTests/SlowTests
+++ b/third_party/WebKit/LayoutTests/SlowTests
@@ -28,27 +28,16 @@
 crbug.com/24182 fast/frames/frame-limit.html [ Slow ]
 crbug.com/24182 fast/overflow/lots-of-sibling-inline-boxes.html [ Slow ] # Particularly slow in Debug: >12x slower!
 crbug.com/24182 http/tests/accessibility/slow-document-load.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/accessibility/slow-document-load.html [ Slow ]
 crbug.com/24182 http/tests/cache/subresource-expiration-1.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/cache/subresource-expiration-1.html [ Slow ]
 crbug.com/24182 http/tests/cache/subresource-expiration-2.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/cache/subresource-expiration-2.html [ Slow ]
 crbug.com/24182 [ Release Win7 ] http/tests/media/media-source/mediasource-addsourcebuffer.html [ Slow ]
-crbug.com/24182 [ Release Win7 ] virtual/mojo-loading/http/tests/media/media-source/mediasource-addsourcebuffer.html [ Slow ]
 crbug.com/24182 http/tests/misc/acid3.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/misc/acid3.html [ Slow ]
 crbug.com/24182 http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm [ Slow ]
 crbug.com/24182 http/tests/misc/uncacheable-script-repeated.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/misc/uncacheable-script-repeated.html [ Slow ]
 crbug.com/24182 http/tests/navigation/slowmetaredirect-basic.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/navigation/slowmetaredirect-basic.html [ Slow ]
 crbug.com/24182 http/tests/navigation/slowtimerredirect-basic.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/navigation/slowtimerredirect-basic.html [ Slow ]
 crbug.com/24182 http/tests/storage/callbacks-are-called-in-correct-context.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/storage/callbacks-are-called-in-correct-context.html [ Slow ]
 crbug.com/24182 http/tests/notifications/close-dispatch-asynchronous.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/notifications/close-dispatch-asynchronous.html [ Slow ]
 crbug.com/24182 images/png-suite/test.html [ Slow ]
 crbug.com/24182 jquery/attributes.html [ Slow ]
 crbug.com/24182 jquery/core.html [ Slow ]
@@ -82,7 +71,6 @@
 crbug.com/24182 virtual/gpu/fast/canvas/canvas-strokeRect-gradient-shadow.html [ Slow ]
 crbug.com/24182 fast/dom/timer-throttling-background-page-near-alignment-interval.html [ Slow ]
 crbug.com/24182 http/tests/perf/large-inlined-script.html [ Slow ]
-crbug.com/24182 virtual/mojo-loading/http/tests/perf/large-inlined-script.html [ Slow ]
 crbug.com/24182 fast/css/should-not-insert-stylesheet-into-detached-document.html [ Slow ]
 crbug.com/24182 fast/dom/shadow/svg-style-in-shadow-tree-crash.html [ Slow ]
 crbug.com/24182 fast/encoding/char-encoding.html [ Slow ]
@@ -102,61 +90,39 @@
 
 # Most DevTools tests are slow in Debug.
 webkit.org/b/90488 [ Debug ] http/tests/devtools/ [ Slow ]
-webkit.org/b/90488 [ Debug ] virtual/mojo-loading/http/tests/devtools/ [ Slow ]
 webkit.org/b/90488 [ Debug ] inspector-protocol/ [ Slow ]
 
 # DevTools console, debugger and profiler tests are slow in Release as well.
 crbug.com/451577 http/tests/devtools/console [ Slow ]
-crbug.com/451577 virtual/mojo-loading/http/tests/devtools/console [ Slow ]
 crbug.com/450493 http/tests/devtools/sources/ [ Slow ]
-crbug.com/450493 virtual/mojo-loading/http/tests/devtools/sources/ [ Slow ]
 crbug.com/450493 http/tests/devtools/startup/sources/ [ Slow ]
 crbug.com/450493 http/tests/devtools/csp/ [ Slow ]
-crbug.com/450493 virtual/mojo-loading/http/tests/devtools/csp/ [ Slow ]
 crbug.com/450493 http/tests/devtools/profiler/ [ Slow ]
-crbug.com/450493 virtual/mojo-loading/http/tests/devtools/profiler/ [ Slow ]
 crbug.com/420008 http/tests/devtools/tracing/ [ Slow ]
-crbug.com/420008 virtual/mojo-loading/http/tests/devtools/tracing/ [ Slow ]
 crbug.com/420008 virtual/threaded/http/tests/devtools/tracing/ [ Slow ]
 
 # Misc DevTools tests that are slow
 crbug.com/246190 [ Release ] http/tests/devtools/indexeddb/ [ Slow ]
-crbug.com/246190 [ Release ] virtual/mojo-loading/http/tests/devtools/indexeddb/ [ Slow ]
 crbug.com/451577 [ Mac ] http/tests/devtools/extensions/extensions-sidebar.html [ Slow ]
 crbug.com/451577 [ Mac ] http/tests/devtools/extensions/extensions-events.html [ Slow ]
 crbug.com/667560 http/tests/devtools/startup/console/console-format-startup.html [ Slow ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/startup/console/console-format-startup.html [ Slow ]
 crbug.com/679833 http/tests/devtools/network/network-datareceived.js [ Slow ]
-crbug.com/679833 virtual/mojo-loading/http/tests/devtools/network/network-datareceived.js [ Slow ]
 webkit.org/b/90488 [ Release ] http/tests/devtools/compiler-source-mapping-debug.js [ Slow ]
-webkit.org/b/90488 [ Release ] virtual/mojo-loading/http/tests/devtools/compiler-source-mapping-debug.js [ Slow ]
 crbug.com/243492 http/tests/devtools/startup/injected-script-discard.html [ Slow ]
-crbug.com/243492 virtual/mojo-loading/http/tests/devtools/startup/injected-script-discard.html [ Slow ]
 crbug.com/327078 http/tests/devtools/network/long-script-content.js [ Slow ]
-crbug.com/327078 virtual/mojo-loading/http/tests/devtools/network/long-script-content.js [ Slow ]
 crbug.com/420008 [ Release ] http/tests/devtools/editor/text-editor-word-jumps.js [ Slow ]
-crbug.com/667560 [ Release ] virtual/mojo-loading/http/tests/devtools/editor/text-editor-word-jumps.js [ Slow ]
 crbug.com/420008 [ Release ] http/tests/devtools/console-xhr-logging.js [ Slow ]
-crbug.com/420008 [ Release ] virtual/mojo-loading/http/tests/devtools/console-xhr-logging.js [ Slow ]
 crbug.com/596486 [ Linux ] http/tests/devtools/elements/insert-node.js [ Slow ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/elements/insert-node.js [ Slow ]
 webkit.org/b/84735 [ Win ] http/tests/devtools/change-iframe-src.js [ Slow ]
-webkit.org/b/84735 [ Win ] virtual/mojo-loading/http/tests/devtools/change-iframe-src.js [ Slow ]
 crbug.com/504565 [ Mac ] http/tests/devtools/search/sources-search-scope.js [ Slow ]
-crbug.com/504565 [ Mac ] virtual/mojo-loading/http/tests/devtools/search/sources-search-scope.js [ Slow ]
 crbug.com/451577 http/tests/devtools/resource-tree/resource-tree-crafted-frame-add.js [ Slow ]
-crbug.com/451577 virtual/mojo-loading/http/tests/devtools/resource-tree/resource-tree-crafted-frame-add.js [ Slow ]
 crbug.com/451577 http/tests/devtools/resource-tree/resource-tree-frame-in-crafted-frame.js [ Slow ]
-crbug.com/451577 virtual/mojo-loading/http/tests/devtools/resource-tree/resource-tree-frame-in-crafted-frame.js [ Slow ]
 crbug.com/510337 http/tests/devtools/elements/styles-1/edit-value-url-with-color.js [ Slow ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/styles-1/edit-value-url-with-color.js [ Slow ]
 crbug.com/451577 [ Mac ] http/tests/devtools/extensions/extensions-reload.html [ Slow ]
 crbug.com/451577 [ Mac ] http/tests/devtools/extensions/extensions-resources.html [ Slow ]
 crbug.com/451577 [ Win10 ] http/tests/devtools/extensions/extensions-sidebar.html [ Slow ]
 crbug.com/451577 [ Mac ] http/tests/devtools/layers/layer-canvas-log.js [ Slow ]
-crbug.com/667560 [ Mac ] virtual/mojo-loading/http/tests/devtools/layers/layer-canvas-log.js [ Slow ]
 crbug.com/451577 [ Mac ] http/tests/devtools/network/network-domain-filter.js [ Slow ]
-crbug.com/667560 [ Mac ] virtual/mojo-loading/http/tests/devtools/network/network-domain-filter.js [ Slow ]
 
 # Random slow tests
 crbug.com/763197 [ Linux Mac ] virtual/gpu-rasterization/images/color-profile-border-radius.html [ Slow ]
@@ -166,11 +132,9 @@
 crbug.com/510337 cssom/cssvalue-comparison.html [ Slow ]
 
 crbug.com/680917 http/tests/devtools/audits2/ [ Slow ]
-crbug.com/680917 virtual/mojo-loading/http/tests/devtools/audits2/ [ Slow ]
 
 # This test is intentionally SLOW as we're waiting for a connection timeout.
 crbug.com/73609 http/tests/media/video-play-stall.html [ Slow ]
-crbug.com/73609 virtual/mojo-loading/http/tests/media/video-play-stall.html [ Slow ]
 
 # This has been Slow in Debug since added in r164270.
 crbug.com/330389 [ Debug ] css-parser/color3_hsl.html [ Slow ]
@@ -203,21 +167,16 @@
 # FIXME: These tests might still be buggy and time out. They were marked as Slow on 9/20/2013.
 # Double-check the data after they've been running another week or so.
 webkit.org/b/58193 [ Win7 ] http/tests/local/fileapi/send-sliced-dragged-file.html [ Slow ]
-webkit.org/b/58193 [ Win7 ] virtual/mojo-loading/http/tests/local/fileapi/send-sliced-dragged-file.html [ Slow ]
 crbug.com/9798 [ Win Release ] http/tests/navigation/no-referrer-reset.html [ Slow ]
-crbug.com/9798 [ Win Release ] virtual/mojo-loading/http/tests/navigation/no-referrer-reset.html [ Slow ]
 crbug.com/9798 [ Win ] http/tests/cookies/multiple-cookies.html [ Slow ]
-crbug.com/9798 [ Win ] virtual/mojo-loading/http/tests/cookies/multiple-cookies.html [ Slow ]
 crbug.com/237270 [ Win7 ] fast/css/custom-font-xheight.html [ Slow ]
 crbug.com/241576 [ Win ] http/tests/appcache/404-manifest.html [ Slow ]
-crbug.com/241576 [ Win ] virtual/mojo-loading/http/tests/appcache/404-manifest.html [ Slow ]
 crbug.com/241869 [ Debug ] css3/flexbox/multiline-justify-content.html [ Slow ]
 crbug.com/245154 editing/selection/modify_move/move-by-character-brute-force.html [ Slow ]
 crbug.com/246749 http/tests/devtools/extensions/extensions-panel.html [ Slow ]
 
 # This test takes 5+ seconds as intended because it tests connection throttling.
 crbug.com/459377 http/tests/websocket/multiple-connections-throttled.html [ Slow ]
-crbug.com/459377 virtual/mojo-loading/http/tests/websocket/multiple-connections-throttled.html [ Slow ]
 
 # These tests are slow to measure bounding box of every single Unicode character.
 crbug.com/492664 external/wpt/css/css-writing-modes/text-orientation-script-001a.html [ Slow ]
@@ -237,36 +196,25 @@
 crbug.com/492664 external/wpt/css/css-writing-modes/text-orientation-script-001o.html [ Slow ]
 
 crbug.com/336481 http/tests/devtools/jump-to-previous-editing-location.js [ Slow ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/jump-to-previous-editing-location.js [ Slow ]
 crbug.com/346259 http/tests/websocket/no-crash-on-cookie-flood.html [ Slow ]
-crbug.com/346259 virtual/mojo-loading/http/tests/websocket/no-crash-on-cookie-flood.html [ Slow ]
 
 crbug.com/522646 http/tests/media/encrypted-media/encrypted-media-encrypted-event-different-origin.html [ Slow ]
-crbug.com/522646 virtual/mojo-loading/http/tests/media/encrypted-media/encrypted-media-encrypted-event-different-origin.html [ Slow ]
 crbug.com/411164 [ Win ] http/tests/security/powerfulFeatureRestrictions/serviceworker-on-insecure-origin.html [ Slow ]
-crbug.com/411164 [ Win ] virtual/mojo-loading/http/tests/security/powerfulFeatureRestrictions/serviceworker-on-insecure-origin.html [ Slow ]
 crbug.com/510337 http/tests/devtools/console/console-format.js [ Slow ]
 crbug.com/357427 http/tests/workers/terminate-during-sync-operation-file.html [ Slow ]
-crbug.com/357427 virtual/mojo-loading/http/tests/workers/terminate-during-sync-operation-file.html [ Slow ]
 crbug.com/357427 http/tests/workers/terminate-during-sync-operation-filesystem.html [ Slow ]
-crbug.com/357427 virtual/mojo-loading/http/tests/workers/terminate-during-sync-operation-filesystem.html [ Slow ]
 crbug.com/402379 [ Debug ] storage/indexeddb/cursor-continue-validity.html [ Slow ]
 crbug.com/402379 [ Debug ] storage/indexeddb/mozilla/indexes.html [ Slow ]
 crbug.com/504706 [ Linux ] http/tests/devtools/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.js [ Slow ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.js [ Slow ]
 crbug.com/504706 [ Linux ] http/tests/devtools/profiler/heap-snapshot-containment-sorting.js [ Slow ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-containment-sorting.js [ Slow ]
 crbug.com/440452 virtual/display_list_2d_canvas/fast/canvas/canvas-partial-invalidation-zoomed.html [ Slow ]
 crbug.com/480769 http/tests/devtools/service-workers/service-workers-redundant.js [ Slow ]
-crbug.com/480769 virtual/mojo-loading/http/tests/devtools/service-workers/service-workers-redundant.js [ Slow ]
 crbug.com/480769 virtual/pwa-full-code-cache/http/tests/devtools/service-workers/service-workers-redundant.js [ Slow ]
 crbug.com/480769 http/tests/devtools/service-workers/service-worker-agents.js [ Slow ]
-crbug.com/480769 virtual/mojo-loading/http/tests/devtools/service-workers/service-worker-agents.js [ Slow ]
 crbug.com/480769 virtual/pwa-full-code-cache/http/tests/devtools/service-workers/service-worker-agents.js [ Slow ]
 crbug.com/504703 inspector-protocol/debugger/debugger-step-into-dedicated-worker.js [ Slow ]
 crbug.com/535478 [ Win ] virtual/threaded/http/tests/devtools/tracing/decode-resize.html [ Slow ]
 crbug.com/548765 http/tests/devtools/console-fetch-logging.js [ Slow ]
-crbug.com/548765 virtual/mojo-loading/http/tests/devtools/console-fetch-logging.js [ Slow ]
 
 crbug.com/419993 [ Debug ] fast/css/giant-stylesheet-crash.html [ Slow ]
 
@@ -279,18 +227,14 @@
 crbug.com/372424 fast/dom/DOMImplementation/createDocument-with-used-doctype.html [ Slow ]
 
 crbug.com/372424 http/tests/serviceworker/chromium/registration-stress.html [ Slow ]
-crbug.com/372424 virtual/mojo-loading/http/tests/serviceworker/chromium/registration-stress.html [ Slow ]
 crbug.com/448670 http/tests/serviceworker/chromium/register-different-script-many-times.html [ Slow ]
-crbug.com/448670 virtual/mojo-loading/http/tests/serviceworker/chromium/register-different-script-many-times.html [ Slow ]
 crbug.com/516319 [ Win ] http/tests/fetch/ [ Slow ]
-crbug.com/516319 [ Win ] virtual/mojo-loading/http/tests/fetch/ [ Slow ]
 
 # Most crypto/subtle tests are slow some or most of the time.
 crbug.com/459009 crypto/subtle/ [ Slow ]
 
 
 crbug.com/528419 http/tests/devtools/elements/styles-2/pseudo-elements.html [ Slow ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/styles-2/pseudo-elements.html [ Slow ]
 
 crbug.com/529345 [ Win10 ] paint/masks/fieldset-mask.html [ Slow ]
 crbug.com/552556 [ Win Linux ] virtual/threaded/fast/scroll-behavior/overflow-scroll-root-frame-animates.html [ Slow ]
@@ -351,7 +295,6 @@
 
 # Slow on Win Debug in part due to incremental linking.
 crbug.com/647192 [ Win Debug ] fast/css3-text/css3-word-break/word-break-all-ascii.html [ Slow ]
-crbug.com/647192 [ Win Debug ] virtual/mojo-loading/webexposed/global-interface-listing.html [ Slow ]
 crbug.com/647192 [ Win Debug ] virtual/stable/webexposed/global-interface-listing.html [ Slow ]
 crbug.com/647192 [ Win Debug ] webexposed/global-interface-listing.html [ Slow ]
 
@@ -464,9 +407,7 @@
 
 # These tests were previously marked Slow in ASANExpectations.
 crbug.com/451577 [ Linux ] http/tests/devtools/elements/user-properties.js [ Slow ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/elements/user-properties.js [ Slow ]
 crbug.com/451577 [ Linux ] http/tests/devtools/layers/layer-canvas-log.js [ Slow ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/layers/layer-canvas-log.js [ Slow ]
 
 # These imported tests exercise tens of thousands of code points and generate large results.
 crbug.com/736056 external/wpt/encoding/legacy-mb-japanese [ Slow ]
@@ -511,12 +452,6 @@
 crbug.com/748418 http/tests/streams/chromium/simple-queue-full-node-shift.html [ Slow ]
 crbug.com/748418 http/tests/streams/chromium/simple-queue-many-foreach.html [ Slow ]
 crbug.com/748418 http/tests/streams/chromium/simple-queue-push-shift-peek.html [ Slow ]
-crbug.com/748418 virtual/mojo-loading/http/tests/streams/chromium/deep-recursion-getwriter.html [ Slow ]
-crbug.com/748418 virtual/mojo-loading/http/tests/streams/chromium/simple-queue-empty-node-push.html [ Slow ]
-crbug.com/748418 virtual/mojo-loading/http/tests/streams/chromium/simple-queue-full-node-reject.html [ Slow ]
-crbug.com/748418 virtual/mojo-loading/http/tests/streams/chromium/simple-queue-full-node-shift.html [ Slow ]
-crbug.com/748418 virtual/mojo-loading/http/tests/streams/chromium/simple-queue-many-foreach.html [ Slow ]
-crbug.com/748418 virtual/mojo-loading/http/tests/streams/chromium/simple-queue-push-shift-peek.html [ Slow ]
 
 crbug.com/626703 [ Debug ] external/wpt/html/nemantics/tabular-data/processing-model-1/span-limits.html [ Slow ]
 
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 4b4fc68..89cce0d 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -19,9 +19,6 @@
 # These tests started failing when browser-side navigation was turned on.
 crbug.com/762529 http/tests/devtools/network/network-datareceived.js [ Failure ]
 crbug.com/759632 http/tests/devtools/network/network-datasaver-warning.js [ Failure ]
-crbug.com/762529 virtual/mojo-loading/http/tests/devtools/network/network-datareceived.js [ Failure ]
-crbug.com/759632 virtual/mojo-loading/http/tests/devtools/network/network-datasaver-warning.js [ Failure ]
-crbug.com/576261 [ Win ] virtual/mojo-loading/http/tests/devtools/resource-parameters.html [ Failure ]
 # ====== Browserside navigation until here ======
 
 # ====== Paint team owned tests from here ======
@@ -726,33 +723,23 @@
 
 # ====== DevTools test migration failures from here ======
 
-### virtual/mojo-loading/http/tests/devtools
 crbug.com/667560 http/tests/devtools/console/console-search.js [ Skip ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/console/console-search.js [ Skip ]
 
 crbug.com/667560 http/tests/devtools/elements/styles-3/styles-change-node-while-editing.js [ Pass Failure ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/styles-3/styles-change-node-while-editing.js [ Pass Failure ]
 crbug.com/778515 http/tests/devtools/elements/styles-3/styles-add-new-rule.js [ Pass Failure ]
-crbug.com/778515 virtual/mojo-loading/http/tests/devtools/elements/styles-3/styles-add-new-rule-tab.js [ Pass Failure ]
 
 crbug.com/785571 http/tests/devtools/console/console-context-selector.js [ Pass Failure ]
-crbug.com/785571 virtual/mojo-loading/http/tests/devtools/console/console-context-selector.js [ Pass Failure ]
 
 # ====== DevTools test migration failures until here ======
 
 crbug.com/789225 http/tests/devtools/console/console-focus.js [ Pass Failure ]
-crbug.com/789225 virtual/mojo-loading/http/tests/devtools/console/console-focus.js [ Pass Failure ]
 
 crbug.com/667560 [ Win ] http/tests/devtools/console-cross-origin-iframe-logging.js [ Pass Timeout ]
-crbug.com/667560 [ Win ] virtual/mojo-loading/http/tests/devtools/console-cross-origin-iframe-logging.js [ Pass Timeout ]
 
 crbug.com/778391 http/tests/devtools/elements/styles-3/styles-add-new-rule-tab.js [ Pass Failure ]
 crbug.com/778391 http/tests/devtools/elements/styles-3/styles-disable-inherited.js [ Pass Failure ]
-crbug.com/778391 virtual/mojo-loading/http/tests/devtools/elements/styles-3/styles-add-new-rule.js [ Pass Failure ]
-crbug.com/778391 virtual/mojo-loading/http/tests/devtools/elements/styles-3/styles-disable-inherited.js [ Pass Failure ]
 
 crbug.com/773353 [ Mac ] http/tests/devtools/coverage/coverage-view.js [ Pass Failure ]
-crbug.com/773353 [ Mac ] virtual/mojo-loading/http/tests/devtools/coverage/coverage-view.js [ Pass Failure ]
 
 crbug.com/767269 [ Win ] inspector-protocol/layout-fonts/cjk-ideograph-fallback-by-lang.js [ Pass Failure ]
 
@@ -894,10 +881,8 @@
 crbug.com/267206 [ Mac ] virtual/rootlayerscrolls/fast/scrolling/scrollbar-tickmarks-hittest.html [ Timeout ]
 
 crbug.com/280342 [ Linux Win ] http/tests/media/progress-events-generated-correctly.html [ Failure Pass ]
-crbug.com/280342 [ Linux Win ] virtual/mojo-loading/http/tests/media/progress-events-generated-correctly.html [ Failure Pass ]
 
 crbug.com/520739 [ Mac ] http/tests/websocket/close-code-and-reason.html [ Failure Pass Timeout ]
-crbug.com/520739 [ Mac ] virtual/mojo-loading/http/tests/websocket/close-code-and-reason.html [ Failure Pass Timeout ]
 crbug.com/520737 [ Mac ] external/wpt/css/css-writing-modes/writing-mode-vertical-rl-001.xht [ Failure Pass Timeout ]
 crbug.com/520736 [ Win7 ] media/W3C/video/networkState/networkState_during_progress.html [ Failure Pass ]
 
@@ -908,7 +893,6 @@
 crbug.com/652536 fast/events/mouse-cursor-change-after-image-load.html [ Failure Pass Crash ]
 crbug.com/652536 virtual/mouseevent_fractional/fast/events/mouse-cursor-change-after-image-load.html [ Failure Pass Crash ]
 crbug.com/520188 [ Win ] http/tests/local/fileapi/file-last-modified-after-delete.html [ Failure Pass ]
-crbug.com/520188 [ Win ] virtual/mojo-loading/http/tests/local/fileapi/file-last-modified-after-delete.html [ Failure Pass ]
 crbug.com/520611 [ Debug ] fast/filesystem/workers/file-writer-events-shared-worker.html [ Failure Pass ]
 crbug.com/520194 http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html [ Failure Pass ]
 
@@ -917,10 +901,8 @@
 crbug.com/761798 [ Mac ] inspector-protocol/emulation/device-emulation-desktop.js [ Failure ]
 
 crbug.com/761881 [ Win7 Debug ] http/tests/devtools/sources/debugger-breakpoints/event-listener-breakpoints.js [ Pass Crash ]
-crbug.com/761881 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/sources/debugger-breakpoints/event-listener-breakpoints.js [ Pass Crash ]
 
 crbug.com/771233 [ Win10 ] http/tests/devtools/audits2/ [ Skip ]
-crbug.com/771233 [ Win10 ] virtual/mojo-loading/http/tests/devtools/audits2/ [ Skip ]
 
 crbug.com/410974 fast/scroll-behavior/scroll-customization/scrollstate-basic.html [ Pass Failure ]
 crbug.com/410974 fast/scroll-behavior/scroll-customization/scrollstate-consume-deltas.html [ Pass Failure ]
@@ -951,7 +933,6 @@
 crbug.com/410974 virtual/threaded/fast/scroll-behavior/scroll-customization/touch-scroll-customization.html [ Pass Failure ]
 
 crbug.com/518883 crbug.com/390452 http/tests/security/isolatedWorld/media-query-wrapper-leaks.html [ Failure Pass Timeout ]
-crbug.com/518883 crbug.com/390452 virtual/mojo-loading/http/tests/security/isolatedWorld/media-query-wrapper-leaks.html [ Failure Pass Timeout ]
 crbug.com/518987 http/tests/xmlhttprequest/navigation-abort-detaches-frame.html [ Pass Timeout ]
 crbug.com/518989 [ Mac ] external/wpt/css/css-writing-modes/writing-mode-vertical-rl-002.xht [ Failure Pass Timeout ]
 
@@ -1010,21 +991,15 @@
 # crbug.com/778784 Is tracking recent flakiness in decode-resize.html. Once that is fixed, the following
 # failures should be uncommented:
 # crbug.com/498539 [ Win ] http/tests/devtools/tracing/decode-resize.html [ Failure Timeout ]
-# crbug.com/667560 [ Win ] virtual/mojo-loading/http/tests/devtools/tracing/decode-resize.html [ Failure Timeout ]
 crbug.com/778784 http/tests/devtools/tracing/decode-resize.html [ Failure Timeout Pass ]
-crbug.com/778784 virtual/mojo-loading/http/tests/devtools/tracing/decode-resize.html [ Failure Timeout Pass ]
 crbug.com/778784 virtual/threaded/http/tests/devtools/tracing/decode-resize.html [ Failure Timeout Pass ]
 
 crbug.com/498539 http/tests/devtools/tracing/timeline-misc/timeline-bound-function.js [ Pass Failure ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/tracing/timeline-misc/timeline-bound-function.js [ Pass Failure ]
 crbug.com/498539 virtual/threaded/http/tests/devtools/tracing/timeline-misc/timeline-bound-function.js [ Pass Failure ]
 crbug.com/498539 [ Mac ] http/tests/devtools/sources/debugger/live-edit-no-reveal.js [ Crash Pass Timeout Failure ]
-crbug.com/667560 [ Mac ] virtual/mojo-loading/http/tests/devtools/sources/debugger/live-edit-no-reveal.js [ Crash Pass Timeout Failure ]
 crbug.com/790892 http/tests/devtools/sources/debugger-pause/debugger-eval-on-call-frame-inside-iframe.js [ Failure Pass ]
-crbug.com/790892 virtual/mojo-loading/http/tests/devtools/sources/debugger-pause/debugger-eval-on-call-frame-inside-iframe.js [ Failure Pass ]
 
 crbug.com/498539 [ Win7 ] http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Crash Pass ]
-crbug.com/667560 [ Win7 ] virtual/mojo-loading/http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Crash Pass ]
 
 crbug.com/487281 [ Mac ] fast/forms/select/menulist-narrow-width.html [ Failure ]
 
@@ -1033,13 +1008,10 @@
 crbug.com/731731 inspector-protocol/layers/paint-profiler-load-empty.js [ Failure Pass ]
 
 crbug.com/734744 http/tests/devtools/indexeddb/resources-panel.js [ Pass Failure Timeout ]
-crbug.com/734744 virtual/mojo-loading/http/tests/devtools/indexeddb/resources-panel.js [ Pass Failure Timeout ]
 
 crbug.com/734793 http/tests/devtools/indexeddb/database-names.js [ Pass Failure Timeout ]
-crbug.com/734793 virtual/mojo-loading/http/tests/devtools/indexeddb/database-names.js [ Pass Failure Timeout ]
 
 crbug.com/735259 http/tests/devtools/indexeddb/upgrade-events.js [ Pass Failure ]
-crbug.com/735259 virtual/mojo-loading/http/tests/devtools/indexeddb/upgrade-events.js [ Pass Failure ]
 
 # Will be re-enabled and rebaselined once we remove the '--enable-file-cookies' flag.
 crbug.com/470482 fast/cookies/local-file-can-set-cookies.html [ Skip ]
@@ -1048,12 +1020,9 @@
 crbug.com/264138 dom/legacy_dom_conformance/xhtml/level3/core/nodecomparedocumentposition38.xhtml [ Failure ]
 
 crbug.com/410145 [ Win ] fast/table/column-in-inline.html [ Failure ]
-crbug.com/410145 [ Win ] virtual/mojo-loading/fast/table/column-in-inline.html [ Failure ]
 crbug.com/411164 [ Win ] http/tests/security/powerfulFeatureRestrictions/serviceworker-on-insecure-origin.html [ Pass ]
-crbug.com/411164 [ Win ] virtual/mojo-loading/http/tests/security/powerfulFeatureRestrictions/serviceworker-on-insecure-origin.html [ Pass ]
 
 crbug.com/699347 http/tests/security/setDomainRelaxationForbiddenForURLScheme.html [ Crash ]
-crbug.com/699347 virtual/mojo-loading/http/tests/security/setDomainRelaxationForbiddenForURLScheme.html [ Crash ]
 
 crbug.com/788042 animations/animation-ready-reject-script-forbidden.html [ Timeout ]
 crbug.com/788042 virtual/threaded/animations/animation-ready-reject-script-forbidden.html [ Timeout ]
@@ -1097,7 +1066,6 @@
 crbug.com/552494 virtual/rootlayerscrolls/scrollbars/overflow-scrollbar-combinations.html [ Pass Failure ]
 
 crbug.com/659456 http/tests/devtools/persistence/automapping-sourcemap.js [ Pass Failure ]
-crbug.com/659456 virtual/mojo-loading/http/tests/devtools/persistence/automapping-sourcemap.js [ Pass Failure ]
 
 crbug.com/652964 [ Linux Win ] fast/text/hyphens/hyphen-min-preferred-width-mock.html [ Skip ]
 crbug.com/652964 [ Linux Win ] fast/text/hyphens/hyphens-align.html [ Skip ]
@@ -1305,9 +1273,7 @@
 crbug.com/637255 [ Win10 ] media/video-transformed.html [ Pass Failure ]
 
 crbug.com/760367 http/tests/devtools/console/console-tainted-globals.js [ NeedsManualRebaseline Timeout ]
-crbug.com/760367 virtual/mojo-loading/http/tests/devtools/console/console-tainted-globals.js [ NeedsManualRebaseline Timeout ]
 crbug.com/760367 http/tests/devtools/runtime/runtime-callFunctionOn.js [ NeedsManualRebaseline Timeout ]
-crbug.com/760367 virtual/mojo-loading/http/tests/devtools/runtime/runtime-callFunctionOn.js [ NeedsManualRebaseline Timeout ]
 
 # These tests pass but images do not match because tests are stricter than the spec.
 crbug.com/492664 external/wpt/css/css-writing-modes/text-combine-upright-value-all-001.html [ Failure ]
@@ -1413,20 +1379,17 @@
 crbug.com/267206 [ Mac ] virtual/scroll_customization/fast/scrolling/scrollbar-tickmarks-hittest.html [ Timeout ]
 
 crbug.com/524160 [ Debug ] http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-default-buffers.html [ Timeout ]
-crbug.com/524160 [ Debug ] virtual/mojo-loading/http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-default-buffers.html [ Timeout ]
 
 # Run the tests with the default MSE buffer sizes in the main test suite and the tests for 1MB buffers set via command line in a virtual test suite
 # with the --mse-audio-buffer-size-limit=1048576 and --mse-video-buffer-size-limit=1048576 command-line parameters.
 crbug.com/630342 virtual/mse-1mb-buffers/http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-default-buffers.html [ Skip ]
 crbug.com/630342 http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-1mb-buffers.html [ Skip ]
-crbug.com/630342 virtual/mojo-loading/http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-1mb-buffers.html [ Skip ]
 
 # On these platforms (all but Android) media tests don't currently use gpu-accelerated (proprietary) codecs, so no
 # benefit to running them again with gpu acceleration enabled.
 crbug.com/555703 [ Linux Mac Win ] virtual/media-gpu-accelerated [ Skip ]
 
 crbug.com/613887 http/tests/preload/meta-viewport-link-headers.html [ Failure Pass ]
-crbug.com/613887 virtual/mojo-loading/http/tests/preload/meta-viewport-link-headers.html [ Failure Pass ]
 
 crbug.com/306222 fast/hidpi/image-srcset-relative-svg-canvas.html [ Skip ]
 crbug.com/306222 fast/hidpi/image-srcset-relative-svg-canvas-2x.html [ Skip ]
@@ -1453,21 +1416,12 @@
 crbug.com/528062 [ Win ] http/tests/security/contentSecurityPolicy/cached-frame-csp.html [ Failure ]
 crbug.com/528062 [ Win ] http/tests/security/xssAuditor/cached-frame.html [ Failure ]
 crbug.com/528062 [ Win ] http/tests/security/xssAuditor/chunked-big-script.html [ Failure ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/css/missing-repaint-after-slow-style-sheet.pl [ Failure ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/local/blob/send-data-blob.html [ Failure Timeout ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/local/blob/send-hybrid-blob.html [ Failure Timeout ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/security/XFrameOptions/x-frame-options-cached.html [ Failure ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/security/contentSecurityPolicy/cached-frame-csp.html [ Failure ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/security/xssAuditor/cached-frame.html [ Failure ]
-crbug.com/528062 [ Win ] virtual/mojo-loading/http/tests/security/xssAuditor/chunked-big-script.html [ Failure ]
 
 # Part of a larger issue referenced in the bug. This specific issue will be fixed shortly.
 crbug.com/408159 accessibility/is-ignored-change-sends-notification.html [ Timeout ]
 
 crbug.com/504706 [ Linux ] http/tests/devtools/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.js [ Pass ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.js [ Pass ]
 crbug.com/504706 [ Linux ] http/tests/devtools/profiler/heap-snapshot-containment-sorting.js [ Pass ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-containment-sorting.js [ Pass ]
 
 # When drawing subpixel smoothed glyphs, CoreGraphics will fake bold the glyphs.
 # In this configuration, the pixel smoothed glyphs will be created from subpixel smoothed glyphs.
@@ -1491,15 +1445,11 @@
 crbug.com/665577 [ Linux Win ] virtual/threaded/fast/scroll-behavior/smooth-scroll/track-scroll.html [ Pass Failure ]
 
 crbug.com/599670 [ Win Linux ] http/tests/devtools/resource-parameters-ipv6.html [ Timeout Failure Pass ]
-crbug.com/599670 [ Win Linux ] virtual/mojo-loading/http/tests/devtools/resource-parameters-ipv6.html [ Timeout Failure Pass ]
 crbug.com/472330 fast/borders/border-image-outset-split-inline-vertical-lr.html [ Failure ]
 crbug.com/472330 fast/writing-mode/box-shadow-vertical-lr.html [ Failure ]
 crbug.com/472330 fast/writing-mode/box-shadow-vertical-rl.html [ Failure ]
 
 crbug.com/700795 http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Timeout Pass ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Timeout Pass ]
-
-crbug.com/769357 [ Win7 Debug ] virtual/mojo-loading/http/tests/misc/webtiming-slow-load.php [ Failure Pass ]
 
 # These are the failing tests because Chrome hasn't implemented according to the spec.
 crbug.com/645988 external/wpt/uievents/order-of-events/focus-events/focus-manual.html [ Failure ]
@@ -1673,13 +1623,11 @@
 crbug.com/483653 accessibility/scroll-containers.html [ Skip ]
 
 crbug.com/491764 http/tests/devtools/service-workers/user-agent-override.js [ Pass Timeout ]
-crbug.com/491764 virtual/mojo-loading/http/tests/devtools/service-workers/user-agent-override.js [ Pass Timeout ]
 
 # Fails with leak detector.
 crbug.com/622915 [ Linux ] ietestcenter/css3/grid/grid-column-003.htm [ Skip ]
 crbug.com/733494 [ Linux ] media/autoplay/document-user-activation.html [ Skip ]
 crbug.com/733495 [ Linux ] http/tests/devtools/elements/styles-4/styles-history.js [ Skip ]
-crbug.com/667560 [ Linux ] virtual/mojo-loading/http/tests/devtools/elements/styles-4/styles-history.js [ Skip ]
 crbug.com/769885 [ Linux ] virtual/android/fullscreen/full-screen-frameset.html [ Skip ]
 
 
@@ -1698,7 +1646,6 @@
 crbug.com/501659 fast/xsl/xslt-missing-namespace-in-xslt.xml [ Failure ]
 
 crbug.com/501659 http/tests/security/xss-DENIED-xml-external-entity.xhtml [ Failure ]
-crbug.com/501659 virtual/mojo-loading/http/tests/security/xss-DENIED-xml-external-entity.xhtml [ Failure ]
 crbug.com/501659 fast/css/stylesheet-candidate-nodes-crash.xhtml [ Failure ]
 
 # Mac10.10-specific failures that still need triaging.
@@ -1778,14 +1725,10 @@
 crbug.com/747758 [ Mac Win ] virtual/rootlayerscrolls/fast/scrolling/scrollbar-prevent-default.html [ Failure ]
 
 crbug.com/567419 http/tests/devtools/elements/styles-2/metrics-box-sizing.js [ Skip ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/styles-2/metrics-box-sizing.js [ Skip ]
 
 crbug.com/538717 [ Win Mac Linux ] http/tests/permissions/chromium/test-request-multiple-window.html [ Failure Pass Timeout ]
 crbug.com/538717 [ Win Mac Linux ] http/tests/permissions/chromium/test-request-multiple-worker.html [ Failure Pass Timeout ]
 crbug.com/538717 [ Win Mac Linux ] http/tests/permissions/chromium/test-request-multiple-sharedworker.html [ Failure Pass Timeout ]
-crbug.com/538717 [ Win Mac Linux ] virtual/mojo-loading/http/tests/permissions/chromium/test-request-multiple-window.html [ Failure Pass Timeout ]
-crbug.com/538717 [ Win Mac Linux ] virtual/mojo-loading/http/tests/permissions/chromium/test-request-multiple-worker.html [ Failure Pass Timeout ]
-crbug.com/538717 [ Win Mac Linux ] virtual/mojo-loading/http/tests/permissions/chromium/test-request-multiple-sharedworker.html [ Failure Pass Timeout ]
 crbug.com/538717 [ Win ] http/tests/permissions/chromium/test-request-worker.html [ Pass Timeout ]
 
 crbug.com/543369 [ Win Mac Linux ] fast/forms/select-popup/popup-menu-appearance-tall.html [ Failure Pass ]
@@ -1793,14 +1736,11 @@
 crbug.com/546215 [ Android ] fast/inline-block/overflow-clip.html [ Failure ]
 
 crbug.com/548765 http/tests/devtools/console-fetch-logging.js [ Failure Pass ]
-crbug.com/548765 virtual/mojo-loading/http/tests/devtools/console-fetch-logging.js [ Failure Pass ]
 
 crbug.com/564109 [ Win ] external/wpt/css/css-fonts/font-display/font-display.html [ Failure Pass Timeout ]
 crbug.com/564109 [ Win ]  http/tests/webfont/font-display-intervention.html [ Pass Failure Timeout ]
-crbug.com/564109 [ Win ]  virtual/mojo-loading/http/tests/webfont/font-display-intervention.html [ Pass Failure Timeout ]
 
 crbug.com/399951 http/tests/mime/javascript-mimetype-usecounters.html [ Pass Failure ]
-crbug.com/399951 virtual/mojo-loading/http/tests/mime/javascript-mimetype-usecounters.html [ Pass Failure ]
 
 crbug.com/594672 fast/events/iframe-object-onload.html [ Failure Pass ]
 crbug.com/594672 fast/events/scale-and-scroll-iframe-body.html [ Failure Pass ]
@@ -1831,7 +1771,6 @@
 crbug.com/605059 [ Retina ] fast/text/international/rtl-negative-letter-spacing.html [ Failure ]
 
 crbug.com/610464 [ Linux Win7 Debug ] http/tests/devtools/components/throttler.js [ Failure Pass ]
-crbug.com/667560 [ Linux Win7 Debug ] virtual/mojo-loading/http/tests/devtools/components/throttler.js [ Failure Pass ]
 crbug.com/654477 [ Win ] compositing/video/video-controls-layer-creation.html [ Pass Failure ]
 crbug.com/654477 fast/hidpi/video-controls-in-hidpi.html [ Failure ]
 crbug.com/654477 fast/layers/video-layer.html [ Failure ]
@@ -1849,13 +1788,10 @@
 crbug.com/654477 media/video-empty-source.html [ Failure ]
 crbug.com/654477 media/video-no-audio.html [ Failure ]
 crbug.com/654477 [ Mac10.10 Mac10.11 Retina ] http/tests/media/video-buffered-range-contains-currentTime.html [ Failure ]
-crbug.com/654477 [ Mac10.10 Mac10.11 Retina ] virtual/mojo-loading/http/tests/media/video-buffered-range-contains-currentTime.html [ Failure ]
 crbug.com/638621 [ Win7 ] http/tests/media/video-buffered-range-contains-currentTime.html [ Failure ]
-crbug.com/638621 [ Win7 ] virtual/mojo-loading/http/tests/media/video-buffered-range-contains-currentTime.html [ Failure ]
 
 
 crbug.com/637930 http/tests/media/video-buffered.html [ Pass Failure ]
-crbug.com/637930 virtual/mojo-loading/http/tests/media/video-buffered.html [ Pass Failure ]
 
 crbug.com/699096 media/controls-drag-timebar-rendering.html [ Failure ]
 
@@ -1876,7 +1812,6 @@
 
 crbug.com/636424 [ Win7 Debug ] editing/selection/modify_move/move-by-word-visually-crash-test-5.html [ Pass Timeout ]
 crbug.com/638618 http/tests/devtools/editor/text-editor-search-switch-editor.js [ Skip ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/editor/text-editor-search-switch-editor.js [ Skip ]
 
 # These tests have test harness errors and PASS lines that have a
 # non-deterministic order.
@@ -1884,7 +1819,6 @@
 
 # Skip the non-virtualized CORS-RFC1918 tests:
 crbug.com/763830 http/tests/security/cors-rfc1918/ [ Skip ]
-crbug.com/763830 virtual/mojo-loading/http/tests/security/cors-rfc1918/ [ Skip ]
 
 # This test has a failure console message with specific performance
 # numbers so a consistent baseline cannot be added. This test could be
@@ -1893,7 +1827,6 @@
 crbug.com/626703 external/wpt/resource-timing/resource_TAO_space.htm [ Pass Failure ]
 
 crbug.com/698077 http/tests/devtools/sources/debugger/debug-inlined-scripts.js [ NeedsManualRebaseline ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/sources/debugger/debug-inlined-scripts.js [ NeedsManualRebaseline ]
 
 # Working on getting the CSP tests going:
 crbug.com/694525 external/wpt/content-security-policy/object-src [ Skip ]
@@ -1935,12 +1868,6 @@
 crbug.com/711529 http/tests/permissions/test-query.html [ Timeout ]
 crbug.com/711529 http/tests/security/cross-origin-createImageBitmap-structured-clone.html [ Timeout ]
 crbug.com/711529 http/tests/workers/shared-worker-performance-timeline.html [ Timeout ]
-crbug.com/711529 virtual/mojo-loading/http/tests/notifications/serviceworker-notification-event.html [ Timeout ]
-crbug.com/711529 virtual/mojo-loading/http/tests/origin_trials/sample-api-workers.html [ Crash Timeout ]
-crbug.com/711529 virtual/mojo-loading/http/tests/permissions/test-api-surface.html [ Failure Timeout ]
-crbug.com/711529 virtual/mojo-loading/http/tests/permissions/test-query.html [ Timeout ]
-crbug.com/711529 virtual/mojo-loading/http/tests/security/cross-origin-createImageBitmap-structured-clone.html [ Timeout ]
-crbug.com/711529 virtual/mojo-loading/http/tests/workers/shared-worker-performance-timeline.html [ Timeout ]
 crbug.com/711529 virtual/mojo-notifications/http/tests/notifications/serviceworker-notification-event.html [ Timeout ]
 
 crbug.com/713587 external/wpt/css/css-ui/caret-color-006.html [ Skip ]
@@ -1985,31 +1912,22 @@
 
 crbug.com/723741 virtual/threaded/http/tests/devtools/tracing/idle-callback.html [ Failure Pass Timeout ]
 crbug.com/723826 http/tests/security/w3c/cross-origin-objects.html [ Failure Pass ]
-crbug.com/723826 virtual/mojo-loading/http/tests/security/w3c/cross-origin-objects.html [ Failure Pass ]
 
 
 # Untriaged failures after https://crrev.com/c/543695/.
 # These need to be updated but appear not to be related to that change.
 crbug.com/626703 http/tests/devtools/indexeddb/database-refresh-view.js [ Pass Failure ]
-crbug.com/626703 virtual/mojo-loading/http/tests/devtools/indexeddb/database-refresh-view.js [ Pass Failure ]
 crbug.com/626703 http/tests/devtools/application-panel/resources-panel-selection-on-reload.js [ Pass Failure ]
-crbug.com/626703 virtual/mojo-loading/http/tests/devtools/application-panel/resources-panel-selection-on-reload.js [ Pass Failure ]
 crbug.com/626703 http/tests/devtools/extensions/extensions-sidebar.html [ Pass Failure ]
-crbug.com/626703 virtual/mojo-loading/http/tests/devtools/extensions/extensions-sidebar.html [ Pass Failure ]
 crbug.com/626703 http/tests/devtools/network/network-columns-visible.js [ Pass Failure ]
-crbug.com/626703 virtual/mojo-loading/http/tests/devtools/network/network-columns-visible.js [ Pass Failure ]
 crbug.com/626703 http/tests/devtools/persistence/persistence-tabbed-editor-opens-filesystem-uisourcecode.js [ Pass Failure ]
-crbug.com/626703 virtual/mojo-loading/http/tests/devtools/persistence/persistence-tabbed-editor-opens-filesystem-uisourcecode.js [ Pass Failure ]
 crbug.com/751952 external/wpt/editing/run/forwarddelete.html [ Failure Pass Timeout ]
 crbug.com/751952 fast/text/international/complex-text-rectangle.html [ Timeout Pass ]
 crbug.com/751952 editing/selection/modify_extend/extend_by_character.html [ Pass Failure ]
 crbug.com/751952 fast/dom/Range/getClientRects.html [ Pass Failure ]
 crbug.com/751952 http/tests/devtools/console/console-format.js [ Pass Failure ]
-crbug.com/751952 virtual/mojo-loading/http/tests/devtools/console/console-format.js [ Pass Failure ]
 crbug.com/751952 http/tests/devtools/unit/datagrid-editable-longtext.js [ Pass Failure ]
 crbug.com/751952 http/tests/devtools/console/console-uncaught-promise.js [ Pass Failure ]
-crbug.com/751952 virtual/mojo-loading/http/tests/devtools/console/console-uncaught-promise.js [ Pass Failure ]
-crbug.com/751952 virtual/mojo-loading/http/tests/devtools/unit/datagrid-editable-longtext.js [ Pass Failure ]
 crbug.com/751952 virtual/origin-trials-runtimeflags-disabled/http/tests/origin_trials/webexposed/budget-api-origin-trial-interfaces.html [ Pass Failure ]
 
 # ====== New tests from wpt-importer added here ======
@@ -2566,13 +2484,11 @@
 crbug.com/675540 external/wpt/service-workers/service-worker/claim-with-redirect.https.html [ Skip ]
 
 crbug.com/435547 http/tests/cachestorage/serviceworker/ignore-search-with-credentials.html [ Skip ]
-crbug.com/435547 virtual/mojo-loading/http/tests/cachestorage/serviceworker/ignore-search-with-credentials.html [ Skip ]
 
 crbug.com/697971 [ Mac10.12 ] fast/text/selection/flexbox-selection-nested.html [ Skip ]
 crbug.com/697971 [ Mac10.12 ] fast/text/selection/flexbox-selection.html [ Skip ]
 crbug.com/678481 http/tests/devtools/appcache/appcache-manifest-with-non-existing-file.js [ Timeout Failure Pass ]
 crbug.com/678481 http/tests/devtools/appcache/appcache-iframe-manifests.js [ Timeout Failure Pass ]
-crbug.com/678481 virtual/mojo-loading/http/tests/devtools/appcache/appcache-iframe-manifests.js [ Timeout Failure Pass ]
 
 crbug.com/782858 virtual/display_list_2d_canvas/fast/canvas/canvas-filter-units-off-screen.html [ Skip ]
 crbug.com/782858 virtual/display_list_2d_canvas/fast/canvas/canvas-filter-units.html [ Skip ]
@@ -2614,9 +2530,7 @@
 crbug.com/701047 [ Mac10.12 ] editing/style/block-styles-007.html [ Failure ]
 
 crbug.com/660295 http/tests/devtools/elements/elements-panel-restore-selection-when-node-comes-later.js [ Pass Failure ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/elements-panel-restore-selection-when-node-comes-later.js [ Pass Failure ]
 crbug.com/735245 http/tests/devtools/application-panel/storage-view-reports-quota.js [ Pass Timeout Failure ]
-crbug.com/735245 virtual/mojo-loading/http/tests/devtools/application-panel/storage-view-reports-quota.js [ Pass Timeout Failure ]
 
 # [css-grid]
 crbug.com/659610 fast/css-grid-layout/grid-baseline.html [ Failure ]
@@ -2665,7 +2579,6 @@
 crbug.com/657646 [ Win ] fast/text/font-features/caps-native-synthesis.html [ Failure Pass ]
 
 crbug.com/664450 http/tests/devtools/console/console-on-animation-worklet.js [ Skip ]
-crbug.com/664450 virtual/mojo-loading/http/tests/devtools/console/console-on-animation-worklet.js [ Skip ]
 
 # Fail when run with --enable-wptserve due to data: URLs treated as cross-origin: (crbug.com/508730)
 crbug.com/508730 external/wpt/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html [ Failure ]
@@ -2710,7 +2623,6 @@
 crbug.com/619427 [ Mac Linux ] fast/overflow/overflow-height-float-not-removed-crash3.html [ Pass Failure ]
 
 crbug.com/667371 http/tests/devtools/elements/styles-1/color-aware-property-value-edit.js [ Pass Failure ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/styles-1/color-aware-property-value-edit.js [ Pass Failure ]
 
 # [css-ui] Imported tests from W3C suite.
 crbug.com/669473 external/wpt/css/css-ui/box-sizing-014.html [ Failure ]
@@ -2738,7 +2650,6 @@
 
 # Added 2016-12-12
 crbug.com/610835 http/tests/security/XFrameOptions/x-frame-options-deny-multiple-clients.html [ Failure Pass ]
-crbug.com/610835 virtual/mojo-loading/http/tests/security/XFrameOptions/x-frame-options-deny-multiple-clients.html [ Failure Pass ]
 
 # Added 2016-12-12
 crbug.com/673539 [ Linux Win ] css3/filters/effect-contrast-hw.html [ Pass Failure ]
@@ -2757,18 +2668,13 @@
 crbug.com/652536 fast/events/mouse-cursor.html [ Pass Failure ]
 crbug.com/652536 virtual/mouseevent_fractional/fast/events/mouse-cursor.html [ Pass Failure ]
 crbug.com/671478 fast/table/percent-height-replaced-content-in-cell.html [ Pass Failure ]
-crbug.com/671478 virtual/mojo-loading/fast/table/percent-height-replaced-content-in-cell.html [ Pass Failure ]
 crbug.com/663858 fast/text/selection/emphasis.html [ Pass Failure ]
 crbug.com/663858 fast/text/emphasis-vertical.html [ Pass Failure ]
 crbug.com/664816 http/tests/security/contentSecurityPolicy/require-sri-for/require-sri-for-script-reportonly-blocked.php [ Pass Failure ]
 crbug.com/664819 http/tests/security/isolatedWorld/bypass-main-world-csp-for-inline-style.html [ Pass Failure ]
-crbug.com/664819 virtual/mojo-loading/http/tests/security/isolatedWorld/bypass-main-world-csp-for-inline-style.html [ Pass Failure ]
 crbug.com/664819 http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr.html [ Pass Failure ]
-crbug.com/664819 virtual/mojo-loading/http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr.html [ Pass Failure ]
 crbug.com/664819 http/tests/security/isolatedWorld/bypass-main-world-csp-iframes.html [ Pass Failure ]
-crbug.com/664819 virtual/mojo-loading/http/tests/security/isolatedWorld/bypass-main-world-csp-iframes.html [ Pass Failure ]
 crbug.com/664819 http/tests/security/isolatedWorld/events.html [ Pass Failure ]
-crbug.com/664819 virtual/mojo-loading/http/tests/security/isolatedWorld/events.html [ Pass Failure ]
 
 crbug.com/787084 http/tests/security/contentSecurityPolicy/report-blocked-data-uri.php [ Skip ]
 
@@ -2965,8 +2871,6 @@
 crbug.com/709227 external/wpt/offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.nocontext.worker.html [ Crash ]
 crbug.com/786249 http/tests/inspector-protocol/network/response-interception-no-change-content-not-ready.js [ Crash ]
 crbug.com/786249 http/tests/inspector-protocol/network/response-interception-request-completes-network-closes.js [ Crash ]
-crbug.com/786249 virtual/mojo-loading/http/tests/inspector-protocol/network/response-interception-no-change-content-not-ready.js [ Crash ]
-crbug.com/786249 virtual/mojo-loading/http/tests/inspector-protocol/network/response-interception-request-completes-network-closes.js [ Crash ]
 
 # ====== Tests from enabling .any.js/.worker.js tests end here ========
 
@@ -2992,14 +2896,10 @@
 crbug.com/678346 [ Win7 Debug ] storage/indexeddb/structured-clone.html [ Pass Timeout ]
 
 crbug.com/678492 http/tests/misc/webtiming-ssl.php [ Failure Pass ]
-crbug.com/678492 virtual/mojo-loading/http/tests/misc/webtiming-ssl.php [ Failure Pass ]
 crbug.com/678493 http/tests/permissions/chromium/test-request-window.html [ Timeout Pass ]
-crbug.com/678493 virtual/mojo-loading/http/tests/permissions/chromium/test-request-window.html [ Timeout Pass ]
 crbug.com/678499 http/tests/security/contentSecurityPolicy/require-sri-for/require-sri-for-script-preload-allowed.php [ Failure Pass ]
-crbug.com/678499 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/require-sri-for/require-sri-for-script-preload-allowed.php [ Failure Pass ]
 
 crbug.com/747751 http/tests/devtools/application-panel/resources-panel-resource-preview.js [ Failure Pass ]
-crbug.com/747751 virtual/mojo-loading/http/tests/devtools/application-panel/resources-panel-resource-preview.js [ Failure Pass ]
 
 crbug.com/689781 external/wpt/media-source/mediasource-duration.html [ Failure Pass ]
 
@@ -3047,22 +2947,18 @@
 
 # Sheriff failures 2017-02-21
 crbug.com/73609 http/tests/media/video-play-stall.html [ Pass Timeout ]
-crbug.com/73609 virtual/mojo-loading/http/tests/media/video-play-stall.html [ Pass Timeout ]
 
 # Sheriff failures 2017-02-27
 crbug.com/696407 [ Linux ] external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html [ Failure Pass ]
 
 # Sheriff failures 2017-03-10
 crbug.com/741210 [ Mac ] inspector-protocol/emulation/device-emulation-restore.js [ Failure ]
-crbug.com/700374 [ Win ] virtual/mojo-loading/http/tests/devtools/workers-on-navigation.js [ Failure Pass ]
 crbug.com/700374 [ Win ] http/tests/devtools/workers-on-navigation.js [ Failure Pass ]
 
 # Sheriff failures 2017-03-21
 crbug.com/703518 http/tests/devtools/tracing/worker-js-frames.js [ Failure Pass ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/tracing/worker-js-frames.js [ Failure Pass ]
 crbug.com/703518 virtual/threaded/http/tests/devtools/tracing/worker-js-frames.js [ Failure Pass ]
 crbug.com/674720 http/tests/loading/preload-img-test.html [ Pass Failure ]
-crbug.com/674720 virtual/mojo-loading/http/tests/loading/preload-img-test.html [ Pass Failure ]
 
 # Sheriff failure 2017-05-05
 crbug.com/703533 [ Mac ] shapedetection/detection-security-test.html  [ Crash Pass Timeout ]
@@ -3070,8 +2966,6 @@
 # Sheriff failures 2017-05-11
 crbug.com/724027 http/tests/security/contentSecurityPolicy/directive-parsing-03.html [ Skip ]
 crbug.com/724027 http/tests/security/contentSecurityPolicy/source-list-parsing-04.html [ Skip ]
-crbug.com/724027 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/directive-parsing-03.html [ Skip ]
-crbug.com/724027 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/source-list-parsing-04.html [ Skip ]
 
 # Sheriff failures 2017-05-16
 crbug.com/722212 fast/events/pointerevents/mouse-pointer-event-properties.html [ Failure Timeout Pass ]
@@ -3114,10 +3008,6 @@
 crbug.com/737643 http/tests/feature-policy/payment-enabledforall.php [ Failure ]
 crbug.com/737643 virtual/feature-policy/http/tests/feature-policy/payment-disabled.php [ Failure ]
 crbug.com/737643 virtual/feature-policy/http/tests/feature-policy/payment-enabledforall.php [ Failure ]
-crbug.com/737643 virtual/mojo-loading/http/tests/feature-policy/fullscreen-disabled.php [ Failure ]
-crbug.com/737643 virtual/mojo-loading/http/tests/feature-policy/fullscreen-enabledforall.php [ Failure ]
-crbug.com/737643 virtual/mojo-loading/http/tests/feature-policy/payment-disabled.php [ Failure ]
-crbug.com/737643 virtual/mojo-loading/http/tests/feature-policy/payment-enabledforall.php [ Failure ]
 
 # Layout Tests on Swarming (Windows) - https://crbug.com/717347
 crbug.com/724392 [ Win ] fast/css/font-family-case-insensitive.html [ Failure Pass Timeout ]
@@ -3141,8 +3031,6 @@
 # More flaky tests on Mac
 crbug.com/731111 [ Mac ] http/tests/media/progress-events-generated-correctly.html [ Failure Pass Timeout ]
 crbug.com/731111 [ Mac ] http/tests/media/video-load-metadata-decode-error.html [ Failure Pass Timeout ]
-crbug.com/731111 [ Mac ] virtual/mojo-loading/http/tests/media/progress-events-generated-correctly.html [ Failure Pass Timeout ]
-crbug.com/731111 [ Mac ] virtual/mojo-loading/http/tests/media/video-load-metadata-decode-error.html [ Failure Pass Timeout ]
 
 # Sheriff failures 2017-06-09
 crbug.com/731518 [ Win Linux Mac ] webaudio/DynamicsCompressor/dynamicscompressor-clear-internal-state.html [ Failure Pass ]
@@ -3152,16 +3040,12 @@
 crbug.com/731535 [ Win ] fast/dom/Window/window-resize-contents.html [ Failure Pass Timeout ]
 
 crbug.com/732103 [ Mac ] http/tests/shapedetection/shapedetection-cross-origin.html [ Failure Pass Timeout ]
-crbug.com/732103 [ Mac ] virtual/mojo-loading/http/tests/shapedetection/shapedetection-cross-origin.html [ Failure Pass Timeout ]
 
 # Sheriff failures 2017-06-14
 crbug.com/733357 [ Win Mac ] http/tests/devtools/elements/styles-4/styles-history.js [ Failure Pass ]
-crbug.com/667560 [ Win Mac ] virtual/mojo-loading/http/tests/devtools/elements/styles-4/styles-history.js [ Failure Pass ]
 crbug.com/733448 http/tests/devtools/extensions/extensions-network.html [ Failure Pass ]
-crbug.com/733448 virtual/mojo-loading/http/tests/devtools/extensions/extensions-network.html [ Failure Pass ]
 
 crbug.com/737959 http/tests/misc/object-image-load-outlives-gc-without-crashing.html [ Failure Pass ]
-crbug.com/737959 virtual/mojo-loading/http/tests/misc/object-image-load-outlives-gc-without-crashing.html [ Failure Pass ]
 
 crbug.com/737959 http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html [ Failure Pass Crash ]
 
@@ -3184,7 +3068,6 @@
 # These tests are failing on Mac-10.12 when using an Intel GPU and Mac Retina
 crbug.com/736177 [ Mac10.12 Retina ] compositing/overflow/theme-affects-visual-overflow.html [ Failure Pass ]
 crbug.com/736177 [ Mac10.12 Retina ] css1/box_properties/acid_test.html [ Failure Pass ]
-crbug.com/736177 [ Mac10.12 Retina ] virtual/mojo-loading/css1/box_properties/acid_test.html [ Failure Pass ]
 crbug.com/736177 [ Mac10.12 Retina ] css2.1/t09-c5526c-display-00-e.html [ Failure Pass ]
 crbug.com/736177 [ Mac10.12 Retina ] css3/selectors3/html/css3-modsel-25.html [ Failure Pass ]
 crbug.com/736177 [ Mac10.12 Retina ] css3/selectors3/html/css3-modsel-70.html [ Failure Pass ]
@@ -3250,7 +3133,6 @@
 
 # Sheriff failures 2017-07-03
 crbug.com/708994 http/tests/security/cross-frame-mouse-source-capabilities.html [ Timeout Pass ]
-crbug.com/708994 virtual/mojo-loading/http/tests/security/cross-frame-mouse-source-capabilities.html [ Timeout Pass ]
 
 crbug.com/745887 [ Mac Win ] fast/frames/sandboxed-iframe-plugins.html [ Failure Pass ]
 
@@ -3262,18 +3144,6 @@
 # For Skia roll
 crbug.com/630695 fast/css/transformed-mask.html [ NeedsManualRebaseline ]
 
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/console/console-eval-scoped.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/console/console-functions.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/console/console-log-object-with-getter.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/elements/event-listener-sidebar-jquery1.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/elements/event-listener-sidebar-jquery2.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/elements/event-listener-sidebar.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/runtime/runtime-getProperties.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/sources/debugger-pause/debugger-pause-in-internal.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/function-generator-details.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/watch-expressions-preserve-expansion.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/sources/debugger/properties-special.js [ NeedsManualRebaseline ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/persistence/automapping-sourcemap-nameclash.js [ NeedsManualRebaseline ]
 crbug.com/v8/4958 http/tests/devtools/persistence/automapping-sourcemap-nameclash.js [ NeedsManualRebaseline ]
 crbug.com/v8/4958 inspector-protocol/debugger/domdebugger-getEventListeners.js [ NeedsManualRebaseline ]
 crbug.com/v8/4958 http/tests/devtools/console/console-eval-scoped.js [ NeedsManualRebaseline ]
@@ -3289,16 +3159,12 @@
 crbug.com/v8/4958 http/tests/devtools/sources/debugger/properties-special.js [ NeedsManualRebaseline ]
 
 crbug.com/v8/4958 http/tests/devtools/console/console-format-es6.js [ NeedsManualRebaseline Timeout ]
-crbug.com/v8/4958 virtual/mojo-loading/http/tests/devtools/console/console-format-es6.js [ NeedsManualRebaseline Timeout ]
 # http/tests/devtools/console/console-format-es6.js and its virtual counterpart needs attention, but is listed as NeedsManualRebaseline directly above for all platforms
 # crbug.com/749738 [ Win7 Debug ] http/tests/devtools/console/console-format-es6.js [ Timeout ]
-# crbug.com/749738 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/console/console-format-es6.js [ Timeout ]
 crbug.com/749738 [ Win7 Debug ] http/tests/devtools/editor/text-editor-word-jumps.js [ Timeout ]
-crbug.com/667560 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/editor/text-editor-word-jumps.js [ Timeout ]
 
 # Sheriff failures 2017-07-28
 crbug.com/749738 [ Win7 Debug ] http/tests/devtools/console/console-format-es6-2.js [ Timeout ]
-crbug.com/749738 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/console/console-format-es6-2.js [ Timeout ]
 
 # Sheriff failure 2017-08-07
 crbug.com/708499 [ Linux ] virtual/wheelscrolllatching/fast/compositor-wheel-scroll-latching/touchpad-scroll-impl-to-main.html [ Failure Pass ]
@@ -3438,11 +3304,8 @@
 
 # ContentSecurityPolicy modifies the SchemeRegistry before some initialization.
 crbug.com/686118 http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html [ Pass Crash ]
-crbug.com/686118 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html [ Pass Crash ]
 crbug.com/686118 http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Pass Crash ]
-crbug.com/686118 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Pass Crash ]
 crbug.com/686118 http/tests/security/contentSecurityPolicy/register-bypassing-scheme-script.https.html [ Pass Crash ]
-crbug.com/686118 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/register-bypassing-scheme-script.https.html [ Pass Crash ]
 
 # Tests currently failing on Windows when run on Swarming
 crbug.com/757165 [ Win ] compositing/culling/filter-occlusion-blur.html [ Skip ]
@@ -3508,9 +3371,6 @@
 crbug.com/757165 [ Win ] paint/invalidation/scroll/scrollbar-damage-and-full-viewport-repaint.html [ Skip ]
 crbug.com/757165 [ Win ] virtual/gpu/fast/canvas/canvas-filter-modified-save-restore.html [ Skip ]
 crbug.com/757165 [ Win ] virtual/gpu/fast/canvas/canvas-filter-modified.html [ Skip ]
-crbug.com/757165 [ Win ] virtual/mojo-loading/http/tests/devtools/console/console-filter-test.js [ Skip ]
-crbug.com/757165 [ Win ] virtual/mojo-loading/http/tests/devtools/console/console-links-in-errors-with-trace.js [ Skip ]
-crbug.com/757165 [ Win ] virtual/mojo-loading/http/tests/devtools/extensions/extensions-panel.html [ Skip ]
 crbug.com/757165 [ Win ] virtual/threaded/animations/svg/animated-filter-svg-element.html [ Skip ]
 crbug.com/757165 [ Win ] virtual/wheelscrolllatching/fast/compositor-wheel-scroll-latching/touchpad-scroll-impl-to-main.html [ Skip ]
 crbug.com/757165 [ Win ] virtual/gpu/fast/canvas/canvas-blending-clipping.html [ Skip ]
@@ -3559,53 +3419,36 @@
 
 # Tests occasionaly timing out (flaky) on WebKit Win7 dbg builder
 crbug.com/757955 [ Win7 Debug ] http/tests/devtools/sources/debugger-pause/pause-on-elements-panel.js [ Pass Timeout ]
-crbug.com/667560 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/sources/debugger-pause/pause-on-elements-panel.js [ Pass Timeout ]
 crbug.com/757955 [ Win7 ] media/color-profile-video-seek-filter.html [ Pass Timeout ]
 crbug.com/757955 [ Win7 Debug ] external/wpt/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html [ Pass Timeout ]
 crbug.com/757955 [ Win7 Debug ] storage/indexeddb/mozilla/cursors.html [ Pass Timeout ]
 crbug.com/757955 [ Win7 Debug ] storage/indexeddb/objectstore-cursor.html [ Pass Timeout ]
 crbug.com/757955 [ Win7 Debug ] http/tests/devtools/tracing/timeline-paint/layer-tree.js [ Pass Failure Timeout ]
-crbug.com/760546 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/layer-tree.js [ Pass Failure Timeout ]
 
 # This test has a fixed number of time which can depend on performance.
 
 crbug.com/669329 http/tests/devtools/tracing/timeline-js/timeline-runtime-stats.js [ Pass Failure Crash ]
 crbug.com/669329 virtual/threaded/http/tests/devtools/tracing/timeline-js/timeline-runtime-stats.js [ Pass Failure Crash ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/tracing/timeline-js/timeline-runtime-stats.js [ Pass Failure Crash ]
 
 # These can be rebaselined after their V8 changes are rolled into Blink.
 crbug.com/700624 http/tests/devtools/console/console-tests.js [ NeedsManualRebaseline ]
-crbug.com/700624 virtual/mojo-loading/http/tests/devtools/console/console-tests.js [ NeedsManualRebaseline ]
 crbug.com/727514 http/tests/devtools/tracing/console-timeline.js [ NeedsManualRebaseline ]
-crbug.com/727514 virtual/mojo-loading/http/tests/devtools/tracing/console-timeline.js [ NeedsManualRebaseline ]
 crbug.com/727514 virtual/threaded/http/tests/devtools/tracing/console-timeline.js [ NeedsManualRebaseline ]
 
 # Tests timing out on WebKit Linux Trusty MSAN
 crbug.com/760543 [ Linux Release ] http/tests/devtools/profiler/heap-snapshot-inspect-dom-wrapper.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/profiler/heap-snapshot-inspect-dom-wrapper.js [ Pass Timeout ]
 # Uncomment these lines after the NeedsManualRebaseline counterpart is rebaselined.
 # crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/console-timeline.js [ Pass Timeout ]
-# crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/console-timeline.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-layout/timeline-layout-with-invalidations.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-layout/timeline-layout-with-invalidations.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-paint/timeline-paint-with-layout-invalidations.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint-with-layout-invalidations.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-paint/timeline-paint-with-style-recalc-invalidations.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint-with-style-recalc-invalidations.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-style/timeline-style-recalc-all-invalidator-types.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-style/timeline-style-recalc-all-invalidator-types.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-style/timeline-style-recalc-with-invalidations.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-style/timeline-style-recalc-with-invalidations.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-style/timeline-style-recalc-with-invalidator-invalidations.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-style/timeline-style-recalc-with-invalidator-invalidations.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-misc/timeline-event-causes.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-misc/timeline-event-causes.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-paint/timeline-paint-with-layout-invalidations-on-deleted-node.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint-with-layout-invalidations-on-deleted-node.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-time/timeline-usertiming.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-time/timeline-usertiming.js [ Pass Timeout ]
 crbug.com/760543 [ Linux Release ] http/tests/devtools/tracing/timeline-paint/timeline-paint.js [ Pass Timeout ]
-crbug.com/760543 [ Linux Release ] virtual/mojo-loading/http/tests/devtools/tracing/timeline-paint/timeline-paint.js [ Pass Timeout ]
 
 crbug.com/769347 [ Mac ] fast/dom/inert/inert-node-is-uneditable.html [ Failure ]
 
@@ -3618,7 +3461,6 @@
 crbug.com/770232 [ Win10 ] fast/text/hyphenate-character.html [ Failure ]
 crbug.com/770232 [ Win10 ] fast/text/unicode-fallback-font.html [ Failure ]
 # Uncomment this line after the NeedsManualRebaseline counterpart is rebaselined.
-# crbug.com/770232 [ Mac ] virtual/mojo-loading/http/tests/devtools/tracing/console-timeline.js [ Pass Failure ]
 
 # Test flaky (crashing) on WebKit Android (Nexus4)
 crbug.com/762008 [ Android ] http/tests/appcache/abort-cache-onchecking-resource-404.html [ Pass Crash ]
@@ -3637,7 +3479,6 @@
 
 # Sheriff failures 2017-09-08
 crbug.com/763208 http/tests/devtools/sources/debugger-ui/source-frame-count.js [ Pass Failure ]
-crbug.com/763208 virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/source-frame-count.js [ Pass Failure ]
 
 crbug.com/763667 external/wpt/upgrade-insecure-requests/iframe-redirect-upgrade.https.html [ Timeout ]
 
@@ -3656,7 +3497,6 @@
 
 # Sheriff failures 2017-09-20
 # Timeouts flakily on chromium.webkit/WebKit Win7 and WebKit Win10
-crbug.com/767012 [ Win7 Win10 ] virtual/mojo-loading/http/tests/devtools/startup/console-log-before-frame-navigation.html [ Pass Timeout ]
 # Fails flakily on chromium.mac/Mac10.12 Tests and WebKit Mac10.12.
 crbug.com/767040 [ Mac10.12 ] external/wpt/clear-site-data/storage.https.html [ Pass Failure ]
 # Fails reliably on last 3 builds of this bot.
@@ -3665,10 +3505,8 @@
 # Sheriff failures 2017-09-21
 crbug.com/767469 http/tests/navigation/start-load-during-provisional-loader-detach.html [ Pass Failure ]
 crbug.com/767469 virtual/stable/http/tests/navigation/start-load-during-provisional-loader-detach.html [ Pass Failure ]
-crbug.com/767469 virtual/mojo-loading/http/tests/navigation/start-load-during-provisional-loader-detach.html [ Pass Failure ]
 
 # Sheriff failures 2017-09-22
-crbug.com/767892 [ Win Linux Mac ] virtual/mojo-loading/http/tests/devtools/startup/database-open.html [ Pass Timeout ]
 
 # Sheriff failures 2017-09-29
 
@@ -3694,7 +3532,6 @@
 crbug.com/773122 [ Win7 ] virtual/gpu/fast/canvas/canvas-lost-gpu-context.html [ Failure Pass ]
 
 # Sheriff failures 2017-10-11
-crbug.com/772411 [ Mac ] virtual/mojo-loading/http/tests/media/autoplay-crossorigin.html [ Timeout Failure Pass ]
 
 # Sheriff failures 2017-10-13
 crbug.com/774437 paint/invalidation/selection/selection-partial-invalidation-between-blocks.html [ Pass Failure ]
@@ -3707,17 +3544,12 @@
 
 # Sheriff failures 2017-10-23
 crbug.com/772411 http/tests/media/autoplay-crossorigin.html [ Timeout Failure Pass ]
-crbug.com/777466 virtual/mojo-loading/http/tests/devtools/console-xhr-logging.js [ Pass Failure ]
 crbug.com/777222 http/tests/devtools/change-iframe-src.js [ Pass Failure Timeout ]
 crbug.com/777222 http/tests/devtools/inspect-iframe-from-different-domain.js [ Pass Failure Timeout ]
 crbug.com/777222 http/tests/devtools/startup/console-log-before-frame-navigation.html [ Pass Failure Timeout ]
-crbug.com/777222 virtual/mojo-loading/http/tests/devtools/change-iframe-src.js [ Pass Failure Timeout ]
-crbug.com/777222 virtual/mojo-loading/http/tests/devtools/import-open-inspector.js [ Pass Failure Timeout ]
-crbug.com/777222 virtual/mojo-loading/http/tests/devtools/inspect-iframe-from-different-domain.js [ Pass Failure Timeout ]
 crbug.com/777259 fast/reflections/reflection-masks-outset.html [ Pass Failure ]
 
 crbug.com/778745 http/tests/inspector-protocol/cachestorage/read-cached-response.js [ Pass Failure ]
-crbug.com/778745 virtual/mojo-loading/http/tests/inspector-protocol/cachestorage/read-cached-response.js [ Pass Failure ]
 
 # Sheriff failures 2017-10-24
 crbug.com/773122 crbug.com/777813 [ Win ] fast/text/font-ascent-mac.html [ Failure Pass ]
@@ -3781,23 +3613,16 @@
 
 # Sheriff failures 2017-11-15
 crbug.com/785179 [ Win7 Debug ] http/tests/devtools/console/console-viewport-stick-to-bottom.js [ Skip ]
-crbug.com/785179 [ Mac10.11 ] virtual/mojo-loading/http/tests/devtools/console/console-viewport-stick-to-bottom.js [ Failure Pass ]
-crbug.com/785179 [ Win7 Debug ] virtual/mojo-loading/http/tests/devtools/console/console-viewport-stick-to-bottom.js [ Skip ]
 crbug.com/785662 [ Debug ] http/tests/devtools/sources/debugger-ui/reveal-not-skipped.js [ Failure Pass ]
-crbug.com/785662 [ Debug ] virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/reveal-not-skipped.js [ Failure Pass ]
 
 # Flaky DevTools
 crbug.com/667560 http/tests/devtools/elements/elements-panel-rewrite-href.js [ Failure Pass ]
-crbug.com/667560 virtual/mojo-loading/http/tests/devtools/elements/elements-panel-rewrite-href.js [ Failure Pass ]
 
 # Sheriff failures 2017-11-16
-crbug.com/785980 [ Win10 ] virtual/mojo-loading/http/tests/devtools/network/network-xhr-same-url-as-main-resource.js [ Failure Pass ]
 crbug.com/785980 [ Win7 Win10 ] http/tests/devtools/network/network-xhr-same-url-as-main-resource.js [ Failure Pass ]
 
 # Sheriff failures 2017-11-17
 crbug.com/786235 http/tests/misc/resource-timing-sizes-tags.html [ Failure Pass ]
-crbug.com/786235 virtual/mojo-loading/http/tests/misc/resource-timing-sizes-tags.html [ Failure Pass ]
-crbug.com/786348 [ Win7 ] virtual/mojo-loading/http/tests/devtools/console/console-link-to-snippet.js [ Failure Pass ]
 
 # Sheriff failures 2017-11-21
 crbug.com/786641 [ Win Linux ] virtual/gpu/fast/canvas/OffscreenCanvas-2d-imageSmoothing-in-worker.html [ Timeout Pass ]
@@ -3805,7 +3630,6 @@
 # Sheriff failures 2017-11-28
 crbug.com/789111 http/tests/devtools/service-workers/service-worker-v8-cache.js [ Pass Failure ]
 crbug.com/789139 [ Linux ] http/tests/devtools/sources/debugger/live-edit-no-reveal.js [ Pass Failure ]
-crbug.com/789139 [ Linux ] virtual/mojo-loading/http/tests/devtools/sources/debugger/live-edit-no-reveal.js [ Pass Failure ]
 crbug.com/785179 [ Mac10.11 ] http/tests/devtools/console/console-viewport-stick-to-bottom.js [ Pass Failure ]
 # Sheriff failures 2017-11-29
 crbug.com/789567 virtual/rootlayerscrolls/scrollbars/custom-scrollbar-inactive-pseudo.html [ Failure Pass ]
@@ -3827,11 +3651,3 @@
 crbug.com/788390 [ Linux ] http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html [ Failure Pass Timeout ]
 crbug.com/788390 [ Linux ] http/tests/media/autoplay/document-user-activation-feature-policy-same-origin.html [ Failure Pass Timeout ]
 crbug.com/788390 [ Linux ] http/tests/media/autoplay/document-user-activation-iframe-delegation.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-delegation.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-disabled.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-gesture.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-cross-origin-feature-policy-header.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-feature-policy-alternating.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-feature-policy-same-origin.html [ Failure Pass Timeout ]
-crbug.com/788390 [ Linux ] virtual/mojo-loading/http/tests/media/autoplay/document-user-activation-iframe-delegation.html [ Failure Pass Timeout ]
diff --git a/third_party/WebKit/LayoutTests/VirtualTestSuites b/third_party/WebKit/LayoutTests/VirtualTestSuites
index 1fd2684f..26c3985 100644
--- a/third_party/WebKit/LayoutTests/VirtualTestSuites
+++ b/third_party/WebKit/LayoutTests/VirtualTestSuites
@@ -318,26 +318,6 @@
              "--disable-smooth-scrolling"]
   },
   {
-    "prefix": "mojo-loading",
-    "base": "webexposed",
-    "args": ["--enable-blink-features=LoadingWithMojo"]
-  },
-  {
-    "prefix": "mojo-loading",
-    "base": "http/tests",
-    "args": ["--enable-blink-features=LoadingWithMojo"]
-  },
-  {
-    "prefix": "mojo-loading",
-    "base": "css1",
-    "args": ["--enable-blink-features=LoadingWithMojo"]
-  },
-  {
-    "prefix": "mojo-loading",
-    "base": "fast/table",
-    "args": ["--enable-blink-features=LoadingWithMojo"]
-  },
-  {
     "prefix": "mojo-notifications",
     "base": "http/tests/notifications",
     "args": ["--enable-blink-features=NotificationsWithMojo"]
diff --git a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/csp-tests.js b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/csp-tests.js
index c56a1289..b2ddb9e7 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/csp-tests.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/csp-tests.js
@@ -30,8 +30,7 @@
         'Content-Security-Policy, script-src \'self\' \'unsafe-inline\')';
     const kScriptURL =
         get_host_info().HTTPS_REMOTE_ORIGIN +
-        '/worklets/resources/import-empty-worklet-script.js' +
-        '?pipe=header(Access-Control-Allow-Origin, *)';
+        '/worklets/resources/import-empty-worklet-script-with-cors-header.js';
     return openWindowAndExpectResult(
         kWindowURL, kScriptURL, workletType, 'REJECTED');
   }, 'Importing a remote-origin worklet script should be blocked by the ' +
@@ -51,9 +50,9 @@
     const kWindowURL =
         'resources/addmodule-window.html?pipe=header(' +
         'Content-Security-Policy, script-src * \'unsafe-inline\')';
-    const kScriptURL = get_host_info().HTTPS_REMOTE_ORIGIN +
-                       '/worklets/resources/empty-worklet-script.js' +
-                       '?pipe=header(Access-Control-Allow-Origin, *)';
+    const kScriptURL =
+        get_host_info().HTTPS_REMOTE_ORIGIN +
+        '/worklets/resources/empty-worklet-script-with-cors-header.js';
     return openWindowAndExpectResult(
         kWindowURL, kScriptURL, workletType, 'RESOLVED');
   }, 'Importing a remote-origin worklet script should not be blocked ' +
@@ -65,9 +64,9 @@
         'Content-Security-Policy, script-src * \'unsafe-inline\')';
     // A worklet on HTTPS_REMOTE_ORIGIN will import a child script on
     // HTTPS_REMOTE_ORIGIN.
-    const kScriptURL = get_host_info().HTTPS_REMOTE_ORIGIN +
-                       '/worklets/resources/import-empty-worklet-script.js' +
-                       '?pipe=header(Access-Control-Allow-Origin, *)';
+    const kScriptURL =
+        get_host_info().HTTPS_REMOTE_ORIGIN +
+        '/worklets/resources/import-empty-worklet-script-with-cors-header.js';
     return openWindowAndExpectResult(
         kWindowURL, kScriptURL, workletType, 'RESOLVED');
   }, 'Importing a remote-origin script from a remote-origin worklet script '+
@@ -77,9 +76,9 @@
     const kWindowURL =
         'resources/addmodule-window.html?pipe=header(' +
         'Content-Security-Policy, worker-src \'self\' \'unsafe-inline\')';
-    const kScriptURL = get_host_info().HTTPS_REMOTE_ORIGIN +
-                       '/worklets/resources/empty-worklet-script.js' +
-                       '?pipe=header(Access-Control-Allow-Origin, *)';
+    const kScriptURL =
+        get_host_info().HTTPS_REMOTE_ORIGIN +
+        '/worklets/resources/empty-worklet-script-with-cors-header.js';
     return openWindowAndExpectResult(
         kWindowURL, kScriptURL, workletType, 'RESOLVED');
   }, 'Importing a remote-origin worklet script should not be blocked by ' +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/empty-worklet-script-with-cors-header.js b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/empty-worklet-script-with-cors-header.js
new file mode 100644
index 0000000..9513071c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/empty-worklet-script-with-cors-header.js
@@ -0,0 +1 @@
+// This file is served with "Access-Control-Allow-Origin" header.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/empty-worklet-script-with-cors-header.js.headers b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/empty-worklet-script-with-cors-header.js.headers
new file mode 100644
index 0000000..cb762eff
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/empty-worklet-script-with-cors-header.js.headers
@@ -0,0 +1 @@
+Access-Control-Allow-Origin: *
diff --git a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script-with-cors-header.js b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script-with-cors-header.js
new file mode 100644
index 0000000..bd04a189
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script-with-cors-header.js
@@ -0,0 +1,3 @@
+// This file and descendant files are served with "Access-Control-Allow-Origin"
+// header.
+import './empty-worklet-script-with-cors-header.js';
diff --git a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script-with-cors-header.js.headers b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script-with-cors-header.js.headers
new file mode 100644
index 0000000..cb762eff
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script-with-cors-header.js.headers
@@ -0,0 +1 @@
+Access-Control-Allow-Origin: *
diff --git a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script.js b/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script.js
deleted file mode 100644
index 339fbe9..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/worklets/resources/import-empty-worklet-script.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// This script can be imported as a remote-origin script, so the
-// Access-Control-Allow-Origin is specified here.
-import './empty-worklet-script.js?pipe=header(Access-Control-Allow-Origin, *)';
diff --git a/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt b/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
index f5694ca..68ff65d 100644
--- a/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
@@ -55,6 +55,7 @@
 CONSOLE MESSAGE: line 147:     method mul
 CONSOLE MESSAGE: line 147:     method sub
 CONSOLE MESSAGE: line 147:     method to
+CONSOLE MESSAGE: line 147:     method toSum
 CONSOLE MESSAGE: line 147: interface CSSPerspective : CSSTransformComponent
 CONSOLE MESSAGE: line 147:     getter length
 CONSOLE MESSAGE: line 147:     method constructor
@@ -349,6 +350,7 @@
 CONSOLE MESSAGE: line 147:     method mul
 CONSOLE MESSAGE: line 147:     method sub
 CONSOLE MESSAGE: line 147:     method to
+CONSOLE MESSAGE: line 147:     method toSum
 CONSOLE MESSAGE: line 147: interface CSSPerspective : CSSTransformComponent
 CONSOLE MESSAGE: line 147:     getter length
 CONSOLE MESSAGE: line 147:     method constructor
diff --git a/third_party/WebKit/LayoutTests/platform/android/fast/inspector-support/cssURLQuotes-expected.txt b/third_party/WebKit/LayoutTests/platform/android/fast/inspector-support/cssURLQuotes-expected.txt
index e3de0f17..92b8d3d 100644
--- a/third_party/WebKit/LayoutTests/platform/android/fast/inspector-support/cssURLQuotes-expected.txt
+++ b/third_party/WebKit/LayoutTests/platform/android/fast/inspector-support/cssURLQuotes-expected.txt
@@ -1,6 +1,6 @@
-CONSOLE ERROR: line 6: Not allowed to load local resource: unquoted
-CONSOLE ERROR: line 6: Not allowed to load local resource: quoted
 CONSOLE ERROR: line 6: Not allowed to load local resource: should(Quote)
+CONSOLE ERROR: line 6: Not allowed to load local resource: quoted
+CONSOLE ERROR: line 6: Not allowed to load local resource: unquoted
 ALERT: url("file:///unquoted") (URL should be quoted)
 ALERT: url("file:///quoted") (URL should be quoted)
 ALERT: url("file:///should(Quote)") (URL should be quoted)
diff --git a/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/toSum.html b/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/toSum.html
new file mode 100644
index 0000000..af0e93b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/toSum.html
@@ -0,0 +1,71 @@
+<meta charset="utf-8">
+<title>CSSNumericValue.toSum tests</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-cssnumericvalue-tosum">
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script>
+'use strict';
+
+test(() => {
+  assert_throws(new SyntaxError(), () => CSS.px(1).toSum('px', 'lemon'));
+}, 'Converting a CSSNumericValue to a sum with invalid units throws SyntaxError');
+
+test(() => {
+  assert_throws(new TypeError(), () => new CSSMathMax(1, CSS.px(1)).toSum('number'));
+}, 'Converting a CSSNumericValue with an invalid sum value to a sum throws TypeError');
+
+test(() => {
+  assert_throws(new TypeError(), () => new CSSMathProduct(CSS.px(1), CSS.px(1)).to('px'));
+}, 'Converting a CSSNumericValue with compound units to a sum throws TypeError');
+
+test(() => {
+  assert_throws(new TypeError(), () => CSS.px(1).toSum('number'));
+}, 'Converting a CSSNumericValue to a sum with an incompatible unit throws TypeError');
+
+test(() => {
+  assert_throws(new TypeError(), () => CSS.px(1).toSum('px', 's'));
+}, 'Converting a CSSNumericValue to a sum with units that are not addable throws TypeError');
+
+test(() => {
+  assert_throws(new TypeError(), () => new CSSMathSum(CSS.px(1), CSS.em(1)).toSum('px'));
+}, 'Converting a CSSNumericValue with leftover units to a sum throws TypeError');
+
+test(() => {
+  assert_style_value_equals(CSS.number(1).toSum('number'), new CSSMathSum(CSS.number(1)));
+  assert_style_value_equals(CSS.px(1).toSum('px'), new CSSMathSum(CSS.px(1)));
+}, 'Converting CSSNumericValue to a sum with its own unit returns itself');
+
+test(() => {
+  assert_style_value_equals(
+    new CSSMathSum(CSS.px(1), CSS.em(1), CSS.vw(1), CSS.rem(1)).toSum(),
+    new CSSMathSum(CSS.em(1), CSS.px(1), CSS.rem(1), CSS.vw(1))
+  );
+}, 'Converting CSSNumericValue to a sum with no arguments returns all the units in sorted order');
+
+// TODO(776173): cssUnitValue_toMethod.html has more comprehensive tests of converting
+// within the same base type. Merge those tests into here.
+test(() => {
+  assert_style_value_equals(CSS.cm(2).toSum('mm'), new CSSMathSum(CSS.mm(20)));
+}, 'Converting CSSNumericValue to a sum with a relative unit converts correctly');
+
+test(() => {
+  assert_style_value_equals(
+    CSS.px(1).toSum('em', 'px', 'vw'),
+    new CSSMathSum(CSS.em(0), CSS.px(1), CSS.vw(0))
+  );
+}, 'Converting CSSNumericValue to a sum containing extra units returns zero for those units');
+
+test(() => {
+  assert_style_value_equals(
+    new CSSMathSum(CSS.cm(1), CSS.mm(10)).toSum('cm', 'mm'),
+    new CSSMathSum(CSS.cm(2), CSS.mm(0))
+  );
+
+  assert_style_value_equals(
+    new CSSMathSum(CSS.cm(1), CSS.mm(10)).toSum('mm', 'cm'),
+    new CSSMathSum(CSS.mm(20), CSS.cm(0))
+  );
+}, 'CSSNumericValue.toSum converts greedily');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/css1/README.txt b/third_party/WebKit/LayoutTests/virtual/mojo-loading/css1/README.txt
deleted file mode 100644
index 1865f21..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/css1/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory is for testing loading with mojo.
-
-This directory was added because css1 tests once relied on a unspecified timing
-and were broken with mojo-loading.
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/fast/table/README.txt b/third_party/WebKit/LayoutTests/virtual/mojo-loading/fast/table/README.txt
deleted file mode 100644
index 9444a6b..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/fast/table/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory is for testing loading with mojo.
-
-This directory was added because fast/table tests once relied on a unspecified
-timing and were broken with mojo-loading.
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/README.txt b/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/README.txt
deleted file mode 100644
index 28dc6da..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-This directory is for testing loading with mojo.
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/source-frame-count-expected.txt b/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/source-frame-count-expected.txt
deleted file mode 100644
index 475f28ca..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/devtools/sources/debugger-ui/source-frame-count-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Tests that scripts panel does not create too many source frames.
-
-
-Running: testSourceFramesCount
-Reloading page...
-Page reloaded.
-Less than 3 frames opened
-Visible view: script5.js
-
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/images/gif-animated-partial-load-expected.png b/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/images/gif-animated-partial-load-expected.png
deleted file mode 100644
index 23d531b..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/images/gif-animated-partial-load-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/performance-timing/longtask-v2/README.txt b/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/performance-timing/longtask-v2/README.txt
deleted file mode 100644
index ceac42a8..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/http/tests/performance-timing/longtask-v2/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This directory contains the test cases for longtask API v2. For now, the
-longtask API V2 are still working in progress and not ready to be web-exposed
- yet. Some of them, if appropriate to be web-platform-tests, will be upstreamed
-to web-platform-tests after longtask v2 are fully implemented.
-
-The test cases in this directory requires enabling of runtime feature flag
-LongTaskV2. The test cases in this directory are expected to fail since 
-LongTaskV2 are not supposed to be enabled for this folder. The 
-fail-expectatation exists for the compatibility with the 'mojo-loading' virtual 
-tests.
diff --git a/third_party/WebKit/LayoutTests/virtual/mojo-loading/webexposed/README.txt b/third_party/WebKit/LayoutTests/virtual/mojo-loading/webexposed/README.txt
deleted file mode 100644
index ce19c5e..0000000
--- a/third_party/WebKit/LayoutTests/virtual/mojo-loading/webexposed/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory is for testing loading with mojo.
-
-We use "webexposed" directory for testing basic loading functionalities
-through fetching html files.
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
index a2b83059..7ddac99 100644
--- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -706,6 +706,7 @@
     method mul
     method sub
     method to
+    method toSum
 interface CSSPageRule : CSSRule
     attribute @@toStringTag
     getter selectorText
diff --git a/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.cpp b/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.cpp
index 38bfae6..db27ae4 100644
--- a/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.cpp
+++ b/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.cpp
@@ -17,6 +17,8 @@
 #include "core/css/parser/CSSParserTokenStream.h"
 #include "core/css/parser/CSSTokenizer.h"
 
+#include <numeric>
+
 namespace blink {
 
 namespace {
@@ -141,6 +143,15 @@
   return CSSMathProduct::Create(std::move(values));
 }
 
+CSSUnitValue* CSSNumericSumValueEntryToUnitValue(
+    const CSSNumericSumValue::Term& term) {
+  if (term.units.size() == 0)
+    return CSSUnitValue::Create(term.value);
+  if (term.units.size() == 1 && term.units.begin()->value == 1)
+    return CSSUnitValue::Create(term.value, term.units.begin()->key);
+  return nullptr;
+}
+
 }  // namespace
 
 bool CSSNumericValue::IsValidUnit(CSSPrimitiveValue::UnitType unit) {
@@ -241,14 +252,87 @@
   if (!sum || sum->terms.size() != 1)
     return nullptr;
 
-  const auto& term = sum->terms[0];
-  if (term.units.size() == 0)
-    return CSSUnitValue::Create(term.value)->ConvertTo(unit);
-  if (term.units.size() == 1 && term.units.begin()->value == 1) {
-    return CSSUnitValue::Create(term.value, term.units.begin()->key)
-        ->ConvertTo(unit);
+  CSSUnitValue* value = CSSNumericSumValueEntryToUnitValue(sum->terms[0]);
+  if (!value)
+    return nullptr;
+  return value->ConvertTo(unit);
+}
+
+CSSMathSum* CSSNumericValue::toSum(const Vector<String>& unit_strings,
+                                   ExceptionState& exception_state) {
+  for (const auto& unit_string : unit_strings) {
+    if (!IsValidUnit(UnitFromName(unit_string))) {
+      exception_state.ThrowDOMException(kSyntaxError,
+                                        "Invalid unit for conversion");
+      return nullptr;
+    }
   }
-  return nullptr;
+
+  const WTF::Optional<CSSNumericSumValue> sum = SumValue();
+  if (!sum) {
+    exception_state.ThrowTypeError("Invalid value for conversion");
+    return nullptr;
+  }
+
+  CSSNumericValueVector values;
+  for (const auto& term : sum->terms) {
+    CSSUnitValue* value = CSSNumericSumValueEntryToUnitValue(term);
+    if (!value) {
+      exception_state.ThrowTypeError("Invalid value for conversion");
+      return nullptr;
+    }
+    values.push_back(value);
+  }
+
+  if (unit_strings.size() == 0) {
+    std::sort(values.begin(), values.end(), [](const auto& a, const auto& b) {
+      return WTF::CodePointCompareLessThan(ToCSSUnitValue(a)->unit(),
+                                           ToCSSUnitValue(b)->unit());
+    });
+
+    // We got 'values' from a sum value, so it must be a valid CSSMathSum.
+    CSSMathSum* result = CSSMathSum::Create(values);
+    DCHECK(result);
+    return result;
+  }
+
+  CSSNumericValueVector result;
+  for (const auto& unit_string : unit_strings) {
+    CSSPrimitiveValue::UnitType target_unit = UnitFromName(unit_string);
+    DCHECK(IsValidUnit(target_unit));
+
+    // Collect all the terms that are compatible with this unit.
+    // We mark used terms as null so we don't use them again.
+    double total_value =
+        std::accumulate(values.begin(), values.end(), 0.0,
+                        [target_unit](double cur_sum, auto& value) {
+                          if (value) {
+                            auto& unit_value = ToCSSUnitValue(*value);
+                            if (const auto* converted_value =
+                                    unit_value.ConvertTo(target_unit)) {
+                              cur_sum += converted_value->value();
+                              value = nullptr;
+                            }
+                          }
+                          return cur_sum;
+                        });
+
+    result.push_back(CSSUnitValue::Create(total_value, target_unit));
+  }
+
+  if (std::any_of(values.begin(), values.end(),
+                  [](const auto& v) { return v; })) {
+    exception_state.ThrowTypeError(
+        "There were leftover terms that were not converted");
+    return nullptr;
+  }
+
+  CSSMathSum* value = CSSMathSum::Create(result);
+  if (!value) {
+    exception_state.ThrowTypeError("Can't create CSSMathSum");
+    return nullptr;
+  }
+  return value;
 }
 
 CSSNumericValue* CSSNumericValue::add(
diff --git a/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.h b/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.h
index abb82f0..ccd0a18 100644
--- a/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.h
+++ b/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.h
@@ -21,6 +21,7 @@
 class ExceptionState;
 
 class CSSNumericValue;
+class CSSMathSum;
 using CSSNumberish = DoubleOrCSSNumericValue;
 using CSSNumericValueVector = HeapVector<Member<CSSNumericValue>>;
 
@@ -45,6 +46,7 @@
 
   // Converts between compatible types, as defined in the IDL.
   CSSNumericValue* to(const String&, ExceptionState&);
+  CSSMathSum* toSum(const Vector<String>&, ExceptionState&);
 
   // Internal methods.
   // Converts between compatible types.
diff --git a/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.idl b/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.idl
index 9c21c8bb..884ca9818 100644
--- a/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.idl
+++ b/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.idl
@@ -19,6 +19,7 @@
   boolean equals(CSSNumberish... values);
 
   [RaisesException, NewObject] CSSNumericValue to(DOMString unit);
+  [RaisesException, NewObject] CSSMathSum toSum(DOMString... units);
 
   // Putting Exposed=Window in the next line makes |parse| not exposed to PaintWorklet.
   [RaisesException, NewObject, Exposed=Window] static CSSNumericValue parse(DOMString cssText);