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

Unified Diff: content/browser/storage_partition_impl_map.cc

Issue 10969017: Create a new URLRequestJobFactory for isolated request contexts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix ordering Created 8 years, 3 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 | « chrome/test/data/extensions/api_test/xhr_persistent_fs/manifest.json ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/storage_partition_impl_map.cc
diff --git a/content/browser/storage_partition_impl_map.cc b/content/browser/storage_partition_impl_map.cc
index 742242faa9c7407471766d43fe7ae205dc3565d3..02bfdd6cff15b1ba9ad5b4339f44b6d233cea19a 100644
--- a/content/browser/storage_partition_impl_map.cc
+++ b/content/browser/storage_partition_impl_map.cc
@@ -144,11 +144,24 @@ void InitializeURLRequestContext(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
if (!context_getter)
return; // tests.
+
+ // This code only modifies the URLRequestJobFactory on the context
+ // to handle blob: URLs, filesystem: URLs, and to let AppCache intercept
+ // the appropriate requests. This is in addition to the slew of other
+ // initializtion that is done in during creation of the URLRequestContext.
+ // We cannot yet centralize this code because URLRequestContext needs
+ // to be created before the StoragePartition context.
+ //
+ // TODO(ajwong): Fix the ordering so all the initialization is in one spot.
net::URLRequestContext* context = context_getter->GetURLRequestContext();
net::URLRequestJobFactory* job_factory =
const_cast<net::URLRequestJobFactory*>(context->job_factory());
+
+ // Note: if this is called twice with 2 request contexts that share one job
+ // factory (as is the case with a media request context and its related
+ // normal request context) then this will early exit.
if (job_factory->IsHandledProtocol(chrome::kBlobScheme))
- return; // Already initialized this RequestContext.
+ return; // Already initialized this JobFactory.
bool set_protocol = job_factory->SetProtocolHandler(
chrome::kBlobScheme,
@@ -253,15 +266,12 @@ void StoragePartitionImplMap::PostCreateInitialization(
make_scoped_refptr(partition->GetFileSystemContext()),
make_scoped_refptr(
ChromeBlobStorageContext::GetFor(browser_context_))));
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(
- &InitializeURLRequestContext,
- make_scoped_refptr(partition->GetMediaURLRequestContext()),
- make_scoped_refptr(partition->GetAppCacheService()),
- make_scoped_refptr(partition->GetFileSystemContext()),
- make_scoped_refptr(
- ChromeBlobStorageContext::GetFor(browser_context_))));
+
+ // We do not call InitializeURLRequestContext() for media contexts because,
+ // other than the HTTP cache, the media contexts share the same backing
+ // objects as their associated "normal" request context. Thus, the previous
+ // call serves to initialize the media request context for this storage
+ // partition as well.
}
}
« no previous file with comments | « chrome/test/data/extensions/api_test/xhr_persistent_fs/manifest.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698