Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Unified Diff: webkit/appcache/appcache_service.h

Issue 195077: Tell the AppCacheService which request context to use when fetching resources... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/common/appcache/chrome_appcache_service.h ('k') | webkit/appcache/appcache_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/appcache/appcache_service.h
===================================================================
--- webkit/appcache/appcache_service.h (revision 26234)
+++ webkit/appcache/appcache_service.h (working copy)
@@ -11,6 +11,8 @@
#include "base/hash_tables.h"
#include "base/file_path.h"
+#include "base/ref_counted.h"
+#include "net/url_request/url_request_context.h"
#include "googleurl/src/gurl.h"
namespace appcache {
@@ -20,13 +22,24 @@
class AppCacheGroup;
// Class that manages the application cache service. Sends notifications
-// to many frontends. One instance per user-profile.
+// to many frontends. One instance per user-profile. Each instance has
+// exclusive access to it's cache_directory on disk.
class AppCacheService {
public:
+ AppCacheService();
virtual ~AppCacheService();
void Initialize(const FilePath& cache_directory);
+ // Context for use during cache updates, should only be accessed
+ // on the IO thread.
+ URLRequestContext* request_context() { return request_context_.get(); }
+ void set_request_context(URLRequestContext* context) {
+ // TODO(michaeln): need to look into test failures that occur
+ // when take this reference? Stubbing out for now.
+ // request_context_ = context;
+ }
+
// TODO(jennb): API to set service settings, like file paths for storage
// track which processes are using this appcache service
@@ -53,6 +66,12 @@
return (it != groups_.end()) ? it->second : NULL;
}
+ // The service generates unique storage ids for different object types.
+ int64 NewCacheId() { return ++last_cache_id_; }
+ int64 NewGroupId() { return ++last_group_id_; }
+ int64 NewEntryId() { return ++last_entry_id_; }
+ int64 NewResponseId() { return ++last_response_id_; }
+
private:
// In-memory representation of stored appcache data. Represents a subset
// of the appcache database currently in use.
@@ -61,16 +80,25 @@
CacheMap caches_;
GroupMap groups_;
+ // The last storage id used for different object types.
+ int64 last_cache_id_;
+ int64 last_group_id_;
+ int64 last_entry_id_;
+ int64 last_response_id_;
+
// Track current processes. One 'backend' per child process.
typedef std::map<int, AppCacheBackendImpl*> BackendMap;
BackendMap backends_;
FilePath cache_directory_;
+
+ // Context for use during cache updates.
+ scoped_refptr<URLRequestContext> request_context_;
+
// TODO(jennb): info about appcache storage
// AppCacheDatabase db_;
// DiskCache response_storage_;
- // TODO(jennb): service settings: e.g. max size of app cache?
// TODO(jennb): service state: e.g. reached quota?
};
« no previous file with comments | « chrome/common/appcache/chrome_appcache_service.h ('k') | webkit/appcache/appcache_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698