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); |