Index: chrome/browser/net/chrome_url_request_context.cc |
diff --git a/chrome/browser/net/chrome_url_request_context.cc b/chrome/browser/net/chrome_url_request_context.cc |
index 60b87be5b032f4483f58ab7beeed06ac6cbb133b..95dcc84e893205b8aa6833c0efc2849d3719a2d9 100644 |
--- a/chrome/browser/net/chrome_url_request_context.cc |
+++ b/chrome/browser/net/chrome_url_request_context.cc |
@@ -77,6 +77,23 @@ class FactoryForExtensions : public ChromeURLRequestContextFactory { |
const scoped_refptr<const ProfileIOData> profile_io_data_; |
}; |
+// Factory that creates the ChromeURLRequestContext for a given isolated app. |
+class FactoryForIsolatedApp : public ChromeURLRequestContextFactory { |
+ public: |
+ explicit FactoryForIsolatedApp(const ProfileIOData* profile_io_data, |
+ const Extension* installed_app) |
+ : profile_io_data_(profile_io_data), |
+ installed_app_(installed_app) {} |
+ |
+ virtual scoped_refptr<ChromeURLRequestContext> Create() { |
+ return profile_io_data_->GetIsolatedAppRequestContext(installed_app_); |
+ } |
+ |
+ private: |
+ const scoped_refptr<const ProfileIOData> profile_io_data_; |
+ const scoped_refptr<const Extension> installed_app_; |
+}; |
+ |
// Factory that creates the ChromeURLRequestContext for media. |
class FactoryForMedia : public ChromeURLRequestContextFactory { |
public: |
@@ -215,6 +232,16 @@ ChromeURLRequestContextGetter::CreateOriginalForExtensions( |
// static |
ChromeURLRequestContextGetter* |
+ChromeURLRequestContextGetter::CreateOriginalForIsolatedApp(Profile* profile, |
willchan no longer on Chromium
2011/03/01 23:39:24
http://google-styleguide.googlecode.com/svn/trunk/
Charlie Reis
2011/03/03 01:08:05
Done.
|
+ const ProfileIOData* profile_io_data, const Extension* installed_app) { |
+ DCHECK(!profile->IsOffTheRecord()); |
+ return new ChromeURLRequestContextGetter( |
+ profile, |
+ new FactoryForIsolatedApp(profile_io_data, installed_app)); |
+} |
+ |
+// static |
+ChromeURLRequestContextGetter* |
ChromeURLRequestContextGetter::CreateOffTheRecord( |
Profile* profile, const ProfileIOData* profile_io_data) { |
DCHECK(profile->IsOffTheRecord()); |
@@ -231,6 +258,17 @@ ChromeURLRequestContextGetter::CreateOffTheRecordForExtensions( |
profile, new FactoryForExtensions(profile_io_data)); |
} |
+// static |
+ChromeURLRequestContextGetter* |
+ChromeURLRequestContextGetter::CreateOffTheRecordForIsolatedApp( |
+ Profile* profile, |
+ const ProfileIOData* profile_io_data, |
+ const Extension* installed_app) { |
+ DCHECK(profile->IsOffTheRecord()); |
+ return new ChromeURLRequestContextGetter( |
+ profile, new FactoryForIsolatedApp(profile_io_data, installed_app)); |
+} |
+ |
void ChromeURLRequestContextGetter::CleanupOnUIThread() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
// Unregister for pref notifications. |