diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-01 22:30:30 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-01 22:30:30 +0000 |
commit | 23f1ef1a445a53bcefc8ddab9f4184b1db7321c5 (patch) | |
tree | c9f17a33025ed5b5c5dee76a7b4fef9104e9a995 /webkit/appcache/appcache_service.h | |
parent | e143c823ce66af5a83a9a17b6f5938eb16e49392 (diff) | |
download | chromium_src-23f1ef1a445a53bcefc8ddab9f4184b1db7321c5.zip chromium_src-23f1ef1a445a53bcefc8ddab9f4184b1db7321c5.tar.gz chromium_src-23f1ef1a445a53bcefc8ddab9f4184b1db7321c5.tar.bz2 |
Plumb request interception into the appcache library for both chrome and test_shell.
AppCache library:
* Added AppCacheInterceptor, which is derived from URLRequest::Interceptor.
Chrome:
* Each UserProfile instantiates a ChromeAppCacheService, which is derived from an appcache library class.
* Each ChromeURLRequestContext associated with that profile has a reference to that instance.
* ResourceDispatcherHost pokes AppCacheInterceptor when initiating URLRequests and when returning the response head.
TestShell:
* Added SimpleAppCacheSystem which bundles together appcache lib components for use in a single process with an UI and IO thread.
* TestShellWebKit instantiates and initializes an instance of the above, aimed at at temp directory that will get cleaned up when the test run is over.
* SimpleResourceLoaderBridge pokes the system when initiating URLRequests and when returning the response head.
TEST=none, although many existing tests exercise this stuff
BUG=none
Review URL: http://codereview.chromium.org/173406
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25099 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_service.h')
-rw-r--r-- | webkit/appcache/appcache_service.h | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/webkit/appcache/appcache_service.h b/webkit/appcache/appcache_service.h index 3eaa43d..bc8bee8 100644 --- a/webkit/appcache/appcache_service.h +++ b/webkit/appcache/appcache_service.h @@ -10,6 +10,7 @@ #include <vector> #include "base/hash_tables.h" +#include "base/file_path.h" #include "googleurl/src/gurl.h" namespace appcache { @@ -24,17 +25,34 @@ class AppCacheService { public: virtual ~AppCacheService(); + void Initialize(const FilePath& cache_directory); + // TODO(jennb): API to set service settings, like file paths for storage // track which processes are using this appcache service - void RegisterBackendImpl(AppCacheBackendImpl* backend_impl); - void UnregisterBackendImpl(AppCacheBackendImpl* backend_impl); + void RegisterBackend(AppCacheBackendImpl* backend_impl); + void UnregisterBackend(AppCacheBackendImpl* backend_impl); void AddCache(AppCache* cache); void RemoveCache(AppCache* cache); void AddGroup(AppCacheGroup* group); void RemoveGroup(AppCacheGroup* group); + AppCacheBackendImpl* GetBackend(int id) { + BackendMap::iterator it = backends_.find(id); + return (it != backends_.end()) ? it->second : NULL; + } + + AppCache* GetCache(int64 id) { + CacheMap::iterator it = caches_.find(id); + return (it != caches_.end()) ? it->second : NULL; + } + + AppCacheGroup* GetGroup(const GURL& manifest_url) { + GroupMap::iterator it = groups_.find(manifest_url); + return (it != groups_.end()) ? it->second : NULL; + } + private: // In-memory representation of stored appcache data. Represents a subset // of the appcache database currently in use. @@ -44,9 +62,10 @@ class AppCacheService { GroupMap groups_; // Track current processes. One 'backend' per child process. - typedef std::set<AppCacheBackendImpl*> BackendSet; - BackendSet backends_; + typedef std::map<int, AppCacheBackendImpl*> BackendMap; + BackendMap backends_; + FilePath cache_directory_; // TODO(jennb): info about appcache storage // AppCacheDatabase db_; // DiskCache response_storage_; |