| Index: chrome/browser/profiles/profile_io_data.h
|
| diff --git a/chrome/browser/profiles/profile_io_data.h b/chrome/browser/profiles/profile_io_data.h
|
| index 739ba4b06c77901e80b02f99870eb657a2d19e37..b846987228b2190aa2f976d6930f1093c498b30e 100644
|
| --- a/chrome/browser/profiles/profile_io_data.h
|
| +++ b/chrome/browser/profiles/profile_io_data.h
|
| @@ -6,24 +6,26 @@
|
| #define CHROME_BROWSER_PROFILES_PROFILE_IO_DATA_H_
|
| #pragma once
|
|
|
| +#include <set>
|
| #include "base/basictypes.h"
|
| +#include "base/debug/stack_trace.h"
|
| #include "base/file_path.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/synchronization/lock.h"
|
| #include "chrome/browser/net/chrome_url_request_context.h"
|
| #include "chrome/browser/prefs/pref_member.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "content/browser/resource_context.h"
|
| #include "net/base/cookie_monster.h"
|
|
|
| class CommandLine;
|
| class ChromeAppCacheService;
|
| class ChromeBlobStorageContext;
|
| -class ChromeURLRequestContext;
|
| -class ChromeURLRequestContextGetter;
|
| class ExtensionInfoMap;
|
| namespace fileapi {
|
| class FileSystemContext;
|
| -}
|
| +} // namespace fileapi
|
| class HostContentSettingsMap;
|
| class HostZoomMap;
|
| class IOThread;
|
| @@ -67,6 +69,7 @@ class ProfileIOData : public base::RefCountedThreadSafe<ProfileIOData> {
|
| scoped_refptr<ChromeURLRequestContext> GetIsolatedAppRequestContext(
|
| scoped_refptr<ChromeURLRequestContext> main_context,
|
| const std::string& app_id) const;
|
| + const content::ResourceContext& GetResourceContext() const;
|
|
|
| protected:
|
| friend class base::RefCountedThreadSafe<ProfileIOData>;
|
| @@ -120,12 +123,8 @@ class ProfileIOData : public base::RefCountedThreadSafe<ProfileIOData> {
|
| explicit ProfileIOData(bool is_incognito);
|
| virtual ~ProfileIOData();
|
|
|
| - // Static helper functions to assist in common operations executed by
|
| - // subtypes.
|
| -
|
| - static void InitializeProfileParams(Profile* profile, ProfileParams* params);
|
| - static void ApplyProfileParamsToContext(const ProfileParams& profile_params,
|
| - ChromeURLRequestContext* context);
|
| + void InitializeProfileParams(Profile* profile);
|
| + void ApplyProfileParamsToContext(ChromeURLRequestContext* context) const;
|
|
|
| // Lazy initializes the ProfileIOData object the first time a request context
|
| // is requested. The lazy logic is implemented here. The actual initialization
|
| @@ -141,13 +140,24 @@ class ProfileIOData : public base::RefCountedThreadSafe<ProfileIOData> {
|
| }
|
|
|
| private:
|
| + class ResourceContext : public content::ResourceContext {
|
| + public:
|
| + explicit ResourceContext(const ProfileIOData* io_data);
|
| + virtual ~ResourceContext();
|
| +
|
| + private:
|
| + virtual void EnsureInitialized() const;
|
| +
|
| + const ProfileIOData* const io_data_;
|
| + };
|
| +
|
| // --------------------------------------------
|
| // Virtual interface for subtypes to implement:
|
| // --------------------------------------------
|
|
|
| // Does the actual initialization of the ProfileIOData subtype. Subtypes
|
| // should use the static helper functions above to implement this.
|
| - virtual void LazyInitializeInternal() const = 0;
|
| + virtual void LazyInitializeInternal(ProfileParams* profile_params) const = 0;
|
|
|
| // Does an on-demand initialization of a RequestContext for the given
|
| // isolated app.
|
| @@ -168,8 +178,11 @@ class ProfileIOData : public base::RefCountedThreadSafe<ProfileIOData> {
|
| scoped_refptr<ChromeURLRequestContext> main_context,
|
| const std::string& app_id) const = 0;
|
|
|
| - mutable BooleanPrefMember enable_referrers_;
|
| mutable bool initialized_;
|
| + mutable scoped_ptr<ProfileParams> profile_params_;
|
| + mutable BooleanPrefMember enable_referrers_;
|
| + mutable scoped_refptr<webkit_database::DatabaseTracker> database_tracker_;
|
| + mutable ResourceContext resource_context_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ProfileIOData);
|
| };
|
|
|