 Chromium Code Reviews
 Chromium Code Reviews Issue 6201005:
  Initial support for partitioning cookies for isolated apps.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 6201005:
  Initial support for partitioning cookies for isolated apps.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| 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. |