| Index: webkit/appcache/appcache_service.h | 
| =================================================================== | 
| --- webkit/appcache/appcache_service.h	(revision 88615) | 
| +++ webkit/appcache/appcache_service.h	(working copy) | 
| @@ -35,6 +35,7 @@ | 
| namespace appcache { | 
|  | 
| class AppCacheBackendImpl; | 
| +class AppCacheQuotaClient; | 
| class AppCachePolicy; | 
|  | 
| // Refcounted container to avoid copying the collection in callbacks. | 
| @@ -84,6 +85,12 @@ | 
| void DeleteAppCacheGroup(const GURL& manifest_url, | 
| net::CompletionCallback* callback); | 
|  | 
| +  // Deletes all appcaches for the origin, 'callback' is invoked upon | 
| +  // completion. This method always completes asynchronously. | 
| +  // (virtual for unittesting) | 
| +  virtual void DeleteAppCachesForOrigin(const GURL& origin, | 
| +                                        net::CompletionCallback* callback); | 
| + | 
| // Context for use during cache updates, should only be accessed | 
| // on the IO thread. We do NOT add a reference to the request context, | 
| // it is the callers responsibility to ensure that the pointer | 
| @@ -110,6 +117,10 @@ | 
| return quota_manager_proxy_.get(); | 
| } | 
|  | 
| +  AppCacheQuotaClient* quota_client() const { | 
| +    return quota_client_; | 
| +  } | 
| + | 
| // Each child process in chrome uses a distinct backend instance. | 
| // See chrome/browser/AppCacheDispatcherHost. | 
| void RegisterBackend(AppCacheBackendImpl* backend_impl); | 
| @@ -122,15 +133,20 @@ | 
| AppCacheStorage* storage() const { return storage_.get(); } | 
|  | 
| protected: | 
| +  friend class AppCacheStorageImplTest; | 
| +  friend class AppCacheServiceTest; | 
| + | 
| class AsyncHelper; | 
| class CanHandleOfflineHelper; | 
| class DeleteHelper; | 
| +  class DeleteOriginHelper; | 
| class GetInfoHelper; | 
|  | 
| typedef std::set<AsyncHelper*> PendingAsyncHelpers; | 
| typedef std::map<int, AppCacheBackendImpl*> BackendMap; | 
|  | 
| AppCachePolicy* appcache_policy_; | 
| +  AppCacheQuotaClient* quota_client_; | 
| scoped_ptr<AppCacheStorage> storage_; | 
| scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy_; | 
| scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_; | 
|  |