Chromium Code Reviews| Index: chrome/browser/profiles/profile_io_data.cc |
| diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc |
| index bc4590c675e1a4fd063c2fdc96308289380b8112..3b59bce89899b363a1d4f5bc26e6d14d5d6d98a2 100644 |
| --- a/chrome/browser/profiles/profile_io_data.cc |
| +++ b/chrome/browser/profiles/profile_io_data.cc |
| @@ -225,6 +225,20 @@ void ProfileIOData::InitializeOnUIThread(Profile* profile) { |
| BrowserContext::EnsureResourceContextInitialized(profile); |
| } |
| +ProfileIOData::MediaRequestContext::MediaRequestContext( |
| + chrome_browser_net::CacheStats* cache_stats) |
| + : ChromeURLRequestContext(ChromeURLRequestContext::CONTEXT_TYPE_MEDIA, |
| + cache_stats) { |
| +} |
| + |
| +void ProfileIOData::MediaRequestContext::SetHttpTransactionFactory( |
| + net::HttpTransactionFactory* http_factory) { |
| + http_factory_.reset(http_factory); |
| + set_http_transaction_factory(http_factory); |
| +} |
| + |
| +ProfileIOData::MediaRequestContext::~MediaRequestContext() {} |
| + |
| ProfileIOData::AppRequestContext::AppRequestContext( |
| chrome_browser_net::CacheStats* cache_stats) |
| : ChromeURLRequestContext(ChromeURLRequestContext::CONTEXT_TYPE_APP, |
| @@ -272,11 +286,17 @@ ProfileIOData::~ProfileIOData() { |
| main_request_context_->AssertNoURLRequests(); |
| if (extensions_request_context_.get()) |
| extensions_request_context_->AssertNoURLRequests(); |
| - for (AppRequestContextMap::iterator it = app_request_context_map_.begin(); |
| + for (URLRequestContextMap::iterator it = app_request_context_map_.begin(); |
| it != app_request_context_map_.end(); ++it) { |
| it->second->AssertNoURLRequests(); |
| delete it->second; |
| } |
| + for (URLRequestContextMap::iterator it = |
| + isolated_media_request_context_map_.begin(); |
| + it != isolated_media_request_context_map_.end(); ++it) { |
| + it->second->AssertNoURLRequests(); |
| + delete it->second; |
| + } |
| } |
| // static |
| @@ -363,6 +383,26 @@ ProfileIOData::GetIsolatedAppRequestContext( |
| return context; |
| } |
| +ChromeURLRequestContext* |
| +ProfileIOData::GetIsolatedMediaRequestContext( |
| + ChromeURLRequestContext* main_context, |
| + const std::string& app_id) const { |
| + LazyInitialize(); |
| + ChromeURLRequestContext* context; |
|
awong
2012/08/20 19:46:28
OCD-ness...can we add an = NULL here to make sure
Charlie Reis
2012/08/20 20:21:01
No problem. Done, here and above.
|
| + if (ContainsKey(isolated_media_request_context_map_, app_id)) { |
| + context = isolated_media_request_context_map_[app_id]; |
| + } else { |
| + // Get the app context as the starting point for the media context, |
| + // so that it uses the app's cookie store. |
| + ChromeURLRequestContext* app_context = GetIsolatedAppRequestContext( |
| + main_context, app_id); |
| + context = AcquireIsolatedMediaRequestContext(app_context, app_id); |
| + isolated_media_request_context_map_[app_id] = context; |
| + } |
| + DCHECK(context); |
| + return context; |
| +} |
| + |
| ExtensionInfoMap* ProfileIOData::GetExtensionInfoMap() const { |
| DCHECK(extension_info_map_) << "ExtensionSystem not initialized"; |
| return extension_info_map_; |