Move WebRequest to the UI thread

Now that network service is launched, there is no reason to have
WebRequest run on the IO thread. This moves all WebRequest code and
the WebRequestProxyingURLLoaderFactory to the UI thread, which
eliminates thread hops. For more info, see the Chrome IO Thread
Simplification: Planning doc:
https://docs.google.com/document/d/1fowGQ8xWBv4YqHj_YbK-S3wpmJQDE7L0-GwNR_vAkHE/edit#

Change-Id: I5ba8954c5d91c98c96a66558ecb659b59ff4386c
Bug: 980774
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1682434
Reviewed-by: Karan Bhatia <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: Steven Holte <[email protected]>
Commit-Queue: Clark DuVall <[email protected]>
Cr-Commit-Position: refs/heads/master@{#679227}
diff --git a/extensions/browser/extension_util.h b/extensions/browser/extension_util.h
index c831f71..d2a6531e 100644
--- a/extensions/browser/extension_util.h
+++ b/extensions/browser/extension_util.h
@@ -35,6 +35,11 @@
 bool IsIncognitoEnabled(const std::string& extension_id,
                         content::BrowserContext* context);
 
+// Returns true if |extension| can see events and data from another sub-profile
+// (incognito to original profile, or vice versa).
+bool CanCrossIncognito(const extensions::Extension* extension,
+                       content::BrowserContext* context);
+
 // Returns the site of the |extension_id|, given the associated |context|.
 // Suitable for use with BrowserContext::GetStoragePartitionForSite().
 GURL GetSiteForExtensionId(const std::string& extension_id,