Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(641)

Unified Diff: content/browser/url_loader_factory_getter.cc

Issue 2906543002: Add support for reading blobs when using the network service. (Closed)
Patch Set: fix threading issue with weakptr Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/url_loader_factory_getter.h ('k') | content/browser/webui/web_ui_url_loader_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/url_loader_factory_getter.cc
diff --git a/content/browser/url_loader_factory_getter.cc b/content/browser/url_loader_factory_getter.cc
index 611cef7d8a05d2a61ca52840ec0632e01e3b0c40..9f16c054375759835270f822b7d0f9eda0b46520 100644
--- a/content/browser/url_loader_factory_getter.cc
+++ b/content/browser/url_loader_factory_getter.cc
@@ -18,10 +18,14 @@ void URLLoaderFactoryGetter::Initialize(StoragePartitionImpl* partition) {
partition->network_context()->CreateURLLoaderFactory(
MakeRequest(&network_factory), 0);
+ mojom::URLLoaderFactoryPtr blob_factory =
+ partition->GetBlobURLLoaderFactory()->CreateFactory();
+
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
base::BindOnce(&URLLoaderFactoryGetter::InitializeOnIOThread, this,
network_factory.PassInterface(),
+ blob_factory.PassInterface(),
scoped_refptr<ChromeAppCacheService>(
partition->GetAppCacheService())));
}
@@ -31,6 +35,11 @@ mojom::URLLoaderFactoryPtr* URLLoaderFactoryGetter::GetNetworkFactory() {
return test_factory_.is_bound() ? &test_factory_ : &network_factory_;
}
+mojom::URLLoaderFactoryPtr* URLLoaderFactoryGetter::GetBlobFactory() {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ return &blob_factory_;
+}
+
void URLLoaderFactoryGetter::SetNetworkFactoryForTesting(
mojom::URLLoaderFactoryPtr test_factory) {
// Since the URLLoaderFactory pointers are bound on the IO thread, and this
@@ -51,8 +60,10 @@ URLLoaderFactoryGetter::~URLLoaderFactoryGetter() {}
void URLLoaderFactoryGetter::InitializeOnIOThread(
mojom::URLLoaderFactoryPtrInfo network_factory,
+ mojom::URLLoaderFactoryPtrInfo blob_factory,
scoped_refptr<ChromeAppCacheService> appcache_service) {
network_factory_.Bind(std::move(network_factory));
+ blob_factory_.Bind(std::move(blob_factory));
AppCacheURLLoaderFactory::CreateURLLoaderFactory(
mojo::MakeRequest(&appcache_factory_), appcache_service.get(), this);
« no previous file with comments | « content/browser/url_loader_factory_getter.h ('k') | content/browser/webui/web_ui_url_loader_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698