summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_service.h
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-01 22:30:30 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-01 22:30:30 +0000
commit23f1ef1a445a53bcefc8ddab9f4184b1db7321c5 (patch)
treec9f17a33025ed5b5c5dee76a7b4fef9104e9a995 /webkit/appcache/appcache_service.h
parente143c823ce66af5a83a9a17b6f5938eb16e49392 (diff)
downloadchromium_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.h27
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_;