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

Unified Diff: android_webview/native/aw_quota_manager_bridge_impl.cc

Issue 12317062: Expose StoragePartition clear methods for Android WebView (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: GetDefaultStoragePartition Created 7 years, 10 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 | « android_webview/native/aw_quota_manager_bridge_impl.h ('k') | chrome/browser/extensions/data_deleter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/native/aw_quota_manager_bridge_impl.cc
diff --git a/android_webview/native/aw_quota_manager_bridge_impl.cc b/android_webview/native/aw_quota_manager_bridge_impl.cc
index 83fdb603b7cd6573cf4e574f50ad91067409d8be..1de22bdfe57aa2368115bf4ab66c9af7e712a7e9 100644
--- a/android_webview/native/aw_quota_manager_bridge_impl.cc
+++ b/android_webview/native/aw_quota_manager_bridge_impl.cc
@@ -173,81 +173,48 @@ void AwQuotaManagerBridgeImpl::Init(JNIEnv* env, jobject object) {
java_ref_ = JavaObjectWeakGlobalRef(env, object);
}
-QuotaManager* AwQuotaManagerBridgeImpl::GetQuotaManager() const {
+StoragePartition* AwQuotaManagerBridgeImpl::GetStoragePartition() const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// AndroidWebview does not use per-site storage partitions.
StoragePartition* storage_partition =
- content::BrowserContext::GetStoragePartitionForSite(
- browser_context_, GURL());
+ content::BrowserContext::GetDefaultStoragePartition(browser_context_);
DCHECK(storage_partition);
-
- QuotaManager* quota_manager = storage_partition->GetQuotaManager();
- DCHECK(quota_manager);
- return quota_manager;
+ return storage_partition;
}
-namespace {
-
-void IgnoreStatus(quota::QuotaStatusCode status_code) {}
+QuotaManager* AwQuotaManagerBridgeImpl::GetQuotaManager() const {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-void DeleteAllOriginData(
- QuotaManager* quota_manager,
- const std::set<GURL>& origins,
- quota::StorageType type) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- for (std::set<GURL>::const_iterator origin = origins.begin();
- origin != origins.end();
- ++origin) {
- quota_manager->DeleteOriginData(*origin,
- type,
- QuotaClient::kAllClientsMask,
- base::Bind(&IgnoreStatus));
- }
+ QuotaManager* quota_manager = GetStoragePartition()->GetQuotaManager();
+ DCHECK(quota_manager);
+ return quota_manager;
}
-} // namespace
-
// Cannot directly call StoragePartition clear data methods because cookies are
// controlled separately.
-// TODO(boliu): Should consider dedup delete code with StoragePartition.
void AwQuotaManagerBridgeImpl::DeleteAllData(JNIEnv* env, jobject object) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- scoped_refptr<QuotaManager> quota_manager = GetQuotaManager();
- BrowserThread::PostTask(
- BrowserThread::IO,
- FROM_HERE,
- base::Bind(&QuotaManager::GetOriginsModifiedSince,
- quota_manager,
- quota::kStorageTypeTemporary,
- base::Time() /* Since beginning of time. */,
- base::Bind(&DeleteAllOriginData, quota_manager)));
-
- // TODO(boliu): This needs to clear WebStorage (ie localStorage and
- // sessionStorage).
+ GetStoragePartition()->AsyncClearData(
+ StoragePartition::kQuotaManagedTemporaryStorage |
+ StoragePartition::kLocalDomStorage |
+ StoragePartition::kSessionDomStorage);
}
void AwQuotaManagerBridgeImpl::DeleteOrigin(
JNIEnv* env, jobject object, jstring origin) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- BrowserThread::PostTask(
- BrowserThread::IO,
- FROM_HERE,
- base::Bind(&QuotaManager::DeleteOriginData,
- GetQuotaManager(),
- GURL(base::android::ConvertJavaStringToUTF16(env, origin)),
- quota::kStorageTypeTemporary,
- QuotaClient::kAllClientsMask,
- base::Bind(&IgnoreStatus)));
+ StoragePartition* storage_partition = GetStoragePartition();
+ storage_partition->AsyncClearDataForOrigin(
+ StoragePartition::kQuotaManagedTemporaryStorage,
+ GURL(base::android::ConvertJavaStringToUTF16(env, origin)),
+ storage_partition->GetURLRequestContext());
}
void AwQuotaManagerBridgeImpl::GetOrigins(
JNIEnv* env, jobject object, jint callback_id) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- // TODO(boliu): Consider expanding QuotaManager::GetUsageInfo to include
- // quota so can be used here.
-
const GetOriginsCallback ui_callback = base::Bind(
&AwQuotaManagerBridgeImpl::GetOriginsCallbackImpl,
weak_factory_.GetWeakPtr(),
« no previous file with comments | « android_webview/native/aw_quota_manager_bridge_impl.h ('k') | chrome/browser/extensions/data_deleter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698