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

Side by Side Diff: android_webview/native/aw_quota_manager_bridge_impl.cc

Issue 492873002: Collapse fileapi, webkit_blob, webkit_database, quota, and webkit_common namespaces into single sto… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos build Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "android_webview/native/aw_quota_manager_bridge_impl.h" 5 #include "android_webview/native/aw_quota_manager_bridge_impl.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "android_webview/browser/aw_browser_context.h" 9 #include "android_webview/browser/aw_browser_context.h"
10 #include "android_webview/browser/aw_content_browser_client.h" 10 #include "android_webview/browser/aw_content_browser_client.h"
11 #include "base/android/jni_array.h" 11 #include "base/android/jni_array.h"
12 #include "base/android/jni_string.h" 12 #include "base/android/jni_string.h"
13 #include "base/synchronization/waitable_event.h" 13 #include "base/synchronization/waitable_event.h"
14 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/storage_partition.h" 15 #include "content/public/browser/storage_partition.h"
16 #include "content/public/common/content_client.h" 16 #include "content/public/common/content_client.h"
17 #include "jni/AwQuotaManagerBridge_jni.h" 17 #include "jni/AwQuotaManagerBridge_jni.h"
18 #include "url/gurl.h" 18 #include "url/gurl.h"
19 #include "webkit/browser/quota/quota_manager.h" 19 #include "webkit/browser/quota/quota_manager.h"
20 #include "webkit/common/quota/quota_types.h" 20 #include "webkit/common/quota/quota_types.h"
21 21
22 using base::android::AttachCurrentThread; 22 using base::android::AttachCurrentThread;
23 using content::BrowserThread; 23 using content::BrowserThread;
24 using content::StoragePartition; 24 using content::StoragePartition;
25 using quota::QuotaClient; 25 using storage::QuotaClient;
26 using quota::QuotaManager; 26 using storage::QuotaManager;
27 27
28 namespace android_webview { 28 namespace android_webview {
29 29
30 namespace { 30 namespace {
31 31
32 // This object lives on UI and IO threads. Care need to be taken to make sure 32 // This object lives on UI and IO threads. Care need to be taken to make sure
33 // there are no concurrent accesses to instance variables. Also this object 33 // there are no concurrent accesses to instance variables. Also this object
34 // is refcounted in the various callbacks, and is destroyed when all callbacks 34 // is refcounted in the various callbacks, and is destroyed when all callbacks
35 // are destroyed at the end of DoneOnUIThread. 35 // are destroyed at the end of DoneOnUIThread.
36 class GetOriginsTask : public base::RefCountedThreadSafe<GetOriginsTask> { 36 class GetOriginsTask : public base::RefCountedThreadSafe<GetOriginsTask> {
37 public: 37 public:
38 GetOriginsTask( 38 GetOriginsTask(
39 const AwQuotaManagerBridgeImpl::GetOriginsCallback& callback, 39 const AwQuotaManagerBridgeImpl::GetOriginsCallback& callback,
40 QuotaManager* quota_manager); 40 QuotaManager* quota_manager);
41 41
42 void Run(); 42 void Run();
43 43
44 private: 44 private:
45 friend class base::RefCountedThreadSafe<GetOriginsTask>; 45 friend class base::RefCountedThreadSafe<GetOriginsTask>;
46 ~GetOriginsTask(); 46 ~GetOriginsTask();
47 47
48 void OnOriginsObtained(const std::set<GURL>& origins, 48 void OnOriginsObtained(const std::set<GURL>& origins,
49 quota::StorageType type); 49 storage::StorageType type);
50 50
51 void OnUsageAndQuotaObtained(const GURL& origin, 51 void OnUsageAndQuotaObtained(const GURL& origin,
52 quota::QuotaStatusCode status_code, 52 storage::QuotaStatusCode status_code,
53 int64 usage, 53 int64 usage,
54 int64 quota); 54 int64 quota);
55 55
56 void CheckDone(); 56 void CheckDone();
57 void DoneOnUIThread(); 57 void DoneOnUIThread();
58 58
59 AwQuotaManagerBridgeImpl::GetOriginsCallback ui_callback_; 59 AwQuotaManagerBridgeImpl::GetOriginsCallback ui_callback_;
60 scoped_refptr<QuotaManager> quota_manager_; 60 scoped_refptr<QuotaManager> quota_manager_;
61 61
62 std::vector<std::string> origin_; 62 std::vector<std::string> origin_;
(...skipping 16 matching lines...) Expand all
79 79
80 GetOriginsTask::~GetOriginsTask() {} 80 GetOriginsTask::~GetOriginsTask() {}
81 81
82 void GetOriginsTask::Run() { 82 void GetOriginsTask::Run() {
83 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 83 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
84 BrowserThread::PostTask( 84 BrowserThread::PostTask(
85 BrowserThread::IO, 85 BrowserThread::IO,
86 FROM_HERE, 86 FROM_HERE,
87 base::Bind(&QuotaManager::GetOriginsModifiedSince, 87 base::Bind(&QuotaManager::GetOriginsModifiedSince,
88 quota_manager_, 88 quota_manager_,
89 quota::kStorageTypeTemporary, 89 storage::kStorageTypeTemporary,
90 base::Time() /* Since beginning of time. */, 90 base::Time() /* Since beginning of time. */,
91 base::Bind(&GetOriginsTask::OnOriginsObtained, this))); 91 base::Bind(&GetOriginsTask::OnOriginsObtained, this)));
92 } 92 }
93 93
94 void GetOriginsTask::OnOriginsObtained( 94 void GetOriginsTask::OnOriginsObtained(const std::set<GURL>& origins,
95 const std::set<GURL>& origins, quota::StorageType type) { 95 storage::StorageType type) {
96 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 96 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
97 num_callbacks_to_wait_ = origins.size(); 97 num_callbacks_to_wait_ = origins.size();
98 num_callbacks_received_ = 0u; 98 num_callbacks_received_ = 0u;
99 99
100 for (std::set<GURL>::const_iterator origin = origins.begin(); 100 for (std::set<GURL>::const_iterator origin = origins.begin();
101 origin != origins.end(); 101 origin != origins.end();
102 ++origin) { 102 ++origin) {
103 quota_manager_->GetUsageAndQuota( 103 quota_manager_->GetUsageAndQuota(
104 *origin, 104 *origin,
105 type, 105 type,
106 base::Bind(&GetOriginsTask::OnUsageAndQuotaObtained, this, *origin)); 106 base::Bind(&GetOriginsTask::OnUsageAndQuotaObtained, this, *origin));
107 } 107 }
108 108
109 CheckDone(); 109 CheckDone();
110 } 110 }
111 111
112 void GetOriginsTask::OnUsageAndQuotaObtained(const GURL& origin, 112 void GetOriginsTask::OnUsageAndQuotaObtained(
113 quota::QuotaStatusCode status_code, 113 const GURL& origin,
114 int64 usage, 114 storage::QuotaStatusCode status_code,
115 int64 quota) { 115 int64 usage,
116 int64 quota) {
116 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 117 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
117 if (status_code == quota::kQuotaStatusOk) { 118 if (status_code == storage::kQuotaStatusOk) {
118 origin_.push_back(origin.spec()); 119 origin_.push_back(origin.spec());
119 usage_.push_back(usage); 120 usage_.push_back(usage);
120 quota_.push_back(quota); 121 quota_.push_back(quota);
121 } 122 }
122 123
123 ++num_callbacks_received_; 124 ++num_callbacks_received_;
124 CheckDone(); 125 CheckDone();
125 } 126 }
126 127
127 void GetOriginsTask::CheckDone() { 128 void GetOriginsTask::CheckDone() {
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 jcallback_id, 280 jcallback_id,
280 base::android::ToJavaArrayOfStrings(env, origin).obj(), 281 base::android::ToJavaArrayOfStrings(env, origin).obj(),
281 base::android::ToJavaLongArray(env, usage).obj(), 282 base::android::ToJavaLongArray(env, usage).obj(),
282 base::android::ToJavaLongArray(env, quota).obj()); 283 base::android::ToJavaLongArray(env, quota).obj());
283 } 284 }
284 285
285 namespace { 286 namespace {
286 287
287 void OnUsageAndQuotaObtained( 288 void OnUsageAndQuotaObtained(
288 const AwQuotaManagerBridgeImpl::QuotaUsageCallback& ui_callback, 289 const AwQuotaManagerBridgeImpl::QuotaUsageCallback& ui_callback,
289 quota::QuotaStatusCode status_code, 290 storage::QuotaStatusCode status_code,
290 int64 usage, 291 int64 usage,
291 int64 quota) { 292 int64 quota) {
292 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 293 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
293 if (status_code != quota::kQuotaStatusOk) { 294 if (status_code != storage::kQuotaStatusOk) {
294 usage = 0; 295 usage = 0;
295 quota = 0; 296 quota = 0;
296 } 297 }
297 BrowserThread::PostTask( 298 BrowserThread::PostTask(
298 BrowserThread::UI, 299 BrowserThread::UI,
299 FROM_HERE, 300 FROM_HERE,
300 base::Bind(ui_callback, usage, quota)); 301 base::Bind(ui_callback, usage, quota));
301 } 302 }
302 303
303 } // namespace 304 } // namespace
(...skipping 23 matching lines...) Expand all
327 weak_factory_.GetWeakPtr(), 328 weak_factory_.GetWeakPtr(),
328 callback_id, 329 callback_id,
329 is_quota); 330 is_quota);
330 331
331 BrowserThread::PostTask( 332 BrowserThread::PostTask(
332 BrowserThread::IO, 333 BrowserThread::IO,
333 FROM_HERE, 334 FROM_HERE,
334 base::Bind(&QuotaManager::GetUsageAndQuota, 335 base::Bind(&QuotaManager::GetUsageAndQuota,
335 GetQuotaManager(), 336 GetQuotaManager(),
336 GURL(origin), 337 GURL(origin),
337 quota::kStorageTypeTemporary, 338 storage::kStorageTypeTemporary,
338 base::Bind(&OnUsageAndQuotaObtained, ui_callback))); 339 base::Bind(&OnUsageAndQuotaObtained, ui_callback)));
339 } 340 }
340 341
341 void AwQuotaManagerBridgeImpl::QuotaUsageCallbackImpl( 342 void AwQuotaManagerBridgeImpl::QuotaUsageCallbackImpl(
342 int jcallback_id, bool is_quota, int64 usage, int64 quota) { 343 int jcallback_id, bool is_quota, int64 usage, int64 quota) {
343 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 344 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
344 JNIEnv* env = AttachCurrentThread(); 345 JNIEnv* env = AttachCurrentThread();
345 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 346 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
346 if (obj.is_null()) 347 if (obj.is_null())
347 return; 348 return;
348 349
349 Java_AwQuotaManagerBridge_onGetUsageAndQuotaForOriginCallback( 350 Java_AwQuotaManagerBridge_onGetUsageAndQuotaForOriginCallback(
350 env, obj.obj(), jcallback_id, is_quota, usage, quota); 351 env, obj.obj(), jcallback_id, is_quota, usage, quota);
351 } 352 }
352 353
353 bool RegisterAwQuotaManagerBridge(JNIEnv* env) { 354 bool RegisterAwQuotaManagerBridge(JNIEnv* env) {
354 return RegisterNativesImpl(env); 355 return RegisterNativesImpl(env);
355 } 356 }
356 357
357 } // namespace android_webview 358 } // namespace android_webview
OLDNEW
« no previous file with comments | « android_webview/native/aw_quota_manager_bridge_impl.h ('k') | chrome/browser/browsing_data/browsing_data_database_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698