Index: content/browser/service_worker/service_worker_cache_quota_client.cc |
diff --git a/extensions/browser/guest_view/web_view/web_view_renderer_state.cc b/content/browser/service_worker/service_worker_cache_quota_client.cc |
similarity index 17% |
copy from extensions/browser/guest_view/web_view/web_view_renderer_state.cc |
copy to content/browser/service_worker/service_worker_cache_quota_client.cc |
index 16879127c7e6c8fc4da578d1dc19fe46f9036a58..c7ed1c0cbd874b39b641ca5c02c29ae9fd3fd0b6 100644 |
--- a/extensions/browser/guest_view/web_view/web_view_renderer_state.cc |
+++ b/content/browser/service_worker/service_worker_cache_quota_client.cc |
@@ -2,84 +2,96 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "content/public/browser/browser_thread.h" |
-#include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" |
+#include "content/browser/service_worker/service_worker_cache_quota_client.h" |
-using content::BrowserThread; |
+#include "content/browser/service_worker/service_worker_cache_storage_manager.h" |
+#include "content/public/browser/browser_thread.h" |
-namespace extensions { |
+namespace content { |
-// static |
-WebViewRendererState* WebViewRendererState::GetInstance() { |
- return Singleton<WebViewRendererState>::get(); |
+ServiceWorkerCacheQuotaClient::ServiceWorkerCacheQuotaClient( |
+ base::WeakPtr<ServiceWorkerCacheStorageManager> cache_manager) |
+ : cache_manager_(cache_manager) { |
} |
-WebViewRendererState::WebViewRendererState() { |
+ServiceWorkerCacheQuotaClient::~ServiceWorkerCacheQuotaClient() { |
} |
-WebViewRendererState::~WebViewRendererState() { |
+storage::QuotaClient::ID ServiceWorkerCacheQuotaClient::id() const { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ return kServiceWorkerCache; |
} |
-bool WebViewRendererState::IsGuest(int render_process_id) { |
+void ServiceWorkerCacheQuotaClient::OnQuotaManagerDestroyed() { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- return webview_partition_id_map_.find(render_process_id) != |
- webview_partition_id_map_.end(); |
+ delete this; |
} |
-void WebViewRendererState::AddGuest(int guest_process_id, |
- int guest_routing_id, |
- const WebViewInfo& webview_info) { |
+void ServiceWorkerCacheQuotaClient::GetOriginUsage( |
+ const GURL& origin_url, |
+ storage::StorageType type, |
+ const GetUsageCallback& callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- RenderId render_id(guest_process_id, guest_routing_id); |
- webview_info_map_[render_id] = webview_info; |
- WebViewPartitionIDMap::iterator iter = |
- webview_partition_id_map_.find(guest_process_id); |
- if (iter != webview_partition_id_map_.end()) { |
- ++iter->second.web_view_count; |
+ |
+ if (!cache_manager_ || !DoesSupport(type)) { |
+ callback.Run(0); |
return; |
} |
- WebViewPartitionInfo partition_info(1, webview_info.partition_id); |
- webview_partition_id_map_[guest_process_id] = partition_info; |
+ |
+ cache_manager_->GetOriginUsage(origin_url, callback); |
} |
-void WebViewRendererState::RemoveGuest(int guest_process_id, |
- int guest_routing_id) { |
+void ServiceWorkerCacheQuotaClient::GetOriginsForType( |
+ storage::StorageType type, |
+ const GetOriginsCallback& callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- RenderId render_id(guest_process_id, guest_routing_id); |
- webview_info_map_.erase(render_id); |
- WebViewPartitionIDMap::iterator iter = |
- webview_partition_id_map_.find(guest_process_id); |
- if (iter != webview_partition_id_map_.end() && |
- iter->second.web_view_count > 1) { |
- --iter->second.web_view_count; |
+ |
+ if (!cache_manager_ || !DoesSupport(type)) { |
+ callback.Run(std::set<GURL>()); |
return; |
} |
- webview_partition_id_map_.erase(guest_process_id); |
+ |
+ cache_manager_->GetOrigins(callback); |
} |
-bool WebViewRendererState::GetInfo(int guest_process_id, |
- int guest_routing_id, |
- WebViewInfo* webview_info) { |
+void ServiceWorkerCacheQuotaClient::GetOriginsForHost( |
+ storage::StorageType type, |
+ const std::string& host, |
+ const GetOriginsCallback& callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- RenderId render_id(guest_process_id, guest_routing_id); |
- WebViewInfoMap::iterator iter = webview_info_map_.find(render_id); |
- if (iter != webview_info_map_.end()) { |
- *webview_info = iter->second; |
- return true; |
+ |
+ if (!cache_manager_ || !DoesSupport(type)) { |
+ callback.Run(std::set<GURL>()); |
+ return; |
} |
- return false; |
+ |
+ cache_manager_->GetOriginsForHost(host, callback); |
} |
-bool WebViewRendererState::GetPartitionID(int guest_process_id, |
- std::string* partition_id) { |
+void ServiceWorkerCacheQuotaClient::DeleteOriginData( |
+ const GURL& origin, |
+ storage::StorageType type, |
+ const DeletionCallback& callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- WebViewPartitionIDMap::iterator iter = |
- webview_partition_id_map_.find(guest_process_id); |
- if (iter != webview_partition_id_map_.end()) { |
- *partition_id = iter->second.partition_id; |
- return true; |
+ |
+ if (!cache_manager_) { |
+ callback.Run(storage::kQuotaErrorAbort); |
+ return; |
+ } |
+ |
+ if (!DoesSupport(type)) { |
+ callback.Run(storage::kQuotaStatusOk); |
+ return; |
} |
- return false; |
+ |
+ cache_manager_->DeleteOriginData(origin, callback); |
+} |
+ |
+bool ServiceWorkerCacheQuotaClient::DoesSupport( |
+ storage::StorageType type) const { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ return type == storage::kStorageTypeTemporary; |
} |
-} // namespace extensions |
+} // namespace content |