| Index: chrome/browser/profiles/off_the_record_profile_io_data.h
|
| diff --git a/chrome/browser/profiles/off_the_record_profile_io_data.h b/chrome/browser/profiles/off_the_record_profile_io_data.h
|
| index 98d73f736d388954ff7c6fcf677d855e1a69eed4..e250bd53469dd36355a91740e8194cdfdf2cdc7f 100644
|
| --- a/chrome/browser/profiles/off_the_record_profile_io_data.h
|
| +++ b/chrome/browser/profiles/off_the_record_profile_io_data.h
|
| @@ -8,12 +8,14 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/file_path.h"
|
| +#include "base/hash_tables.h"
|
| #include "base/ref_counted.h"
|
| #include "base/scoped_ptr.h"
|
| #include "chrome/browser/profiles/profile_io_data.h"
|
|
|
| class ChromeURLRequestContext;
|
| class ChromeURLRequestContextGetter;
|
| +class Extension;
|
| class IOThread;
|
| class Profile;
|
|
|
| @@ -36,12 +38,20 @@ class OffTheRecordProfileIOData : public ProfileIOData {
|
| explicit Handle(Profile* profile);
|
| ~Handle();
|
|
|
| + // Called on-demand for each isolated app.
|
| + void InitIsolatedApp(const Extension* app);
|
| +
|
| scoped_refptr<ChromeURLRequestContextGetter>
|
| GetMainRequestContextGetter() const;
|
| scoped_refptr<ChromeURLRequestContextGetter>
|
| GetExtensionsRequestContextGetter() const;
|
| + scoped_refptr<ChromeURLRequestContextGetter>
|
| + GetIsolatedAppRequestContextGetter(const Extension* app) const;
|
|
|
| private:
|
| + typedef base::hash_map<std::string,
|
| + scoped_refptr<ChromeURLRequestContextGetter> >
|
| + ChromeURLRequestContextGetterMap;
|
| // Lazily initialize ProfileParams. We do this on the calls to
|
| // Get*RequestContextGetter(), so we only initialize ProfileParams right
|
| // before posting a task to the IO thread to start using them. This prevents
|
| @@ -59,6 +69,7 @@ class OffTheRecordProfileIOData : public ProfileIOData {
|
| main_request_context_getter_;
|
| mutable scoped_refptr<ChromeURLRequestContextGetter>
|
| extensions_request_context_getter_;
|
| + mutable ChromeURLRequestContextGetterMap app_request_context_getter_map_;
|
| const scoped_refptr<OffTheRecordProfileIOData> io_data_;
|
|
|
| Profile* const profile_;
|
| @@ -79,21 +90,31 @@ class OffTheRecordProfileIOData : public ProfileIOData {
|
| ProfileParams profile_params;
|
| };
|
|
|
| + typedef base::hash_map<std::string, LazyParams*> LazyParamsMap;
|
| +
|
| OffTheRecordProfileIOData();
|
| ~OffTheRecordProfileIOData();
|
|
|
| // Lazily initializes ProfileIOData.
|
| virtual void LazyInitializeInternal() const;
|
| + virtual scoped_refptr<RequestContext>
|
| + InitializeAppRequestContext(const Extension *app) const;
|
| virtual scoped_refptr<ChromeURLRequestContext>
|
| AcquireMainRequestContext() const;
|
| virtual scoped_refptr<ChromeURLRequestContext>
|
| AcquireMediaRequestContext() const;
|
| virtual scoped_refptr<ChromeURLRequestContext>
|
| AcquireExtensionsRequestContext() const;
|
| + virtual scoped_refptr<ChromeURLRequestContext>
|
| + AcquireIsolatedAppRequestContext(
|
| + const Extension* installed_app) const;
|
|
|
| // Lazy initialization params.
|
| mutable scoped_ptr<LazyParams> lazy_params_;
|
|
|
| + // One LazyParams per isolated app.
|
| + mutable LazyParamsMap lazy_params_map_;
|
| +
|
| mutable bool initialized_;
|
| mutable scoped_refptr<RequestContext> main_request_context_;
|
| // NOTE: |media_request_context_| just points to the same context that
|
|
|