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

Side by Side Diff: chrome/browser/browsing_data_database_helper.cc

Issue 8370007: base::Bind: Convert BrowsingDatabaseHelper::StartFetching. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Build fix. Created 9 years, 2 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/browsing_data_database_helper.h" 5 #include "chrome/browser/browsing_data_database_helper.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 30 matching lines...) Expand all
41 41
42 BrowsingDataDatabaseHelper::DatabaseInfo::~DatabaseInfo() {} 42 BrowsingDataDatabaseHelper::DatabaseInfo::~DatabaseInfo() {}
43 43
44 bool BrowsingDataDatabaseHelper::DatabaseInfo::IsFileSchemeData() { 44 bool BrowsingDataDatabaseHelper::DatabaseInfo::IsFileSchemeData() {
45 return StartsWithASCII(origin_identifier, 45 return StartsWithASCII(origin_identifier,
46 std::string(chrome::kFileScheme), 46 std::string(chrome::kFileScheme),
47 true); 47 true);
48 } 48 }
49 49
50 BrowsingDataDatabaseHelper::BrowsingDataDatabaseHelper(Profile* profile) 50 BrowsingDataDatabaseHelper::BrowsingDataDatabaseHelper(Profile* profile)
51 : completion_callback_(NULL), 51 : is_fetching_(false),
52 is_fetching_(false),
53 tracker_(profile->GetDatabaseTracker()) { 52 tracker_(profile->GetDatabaseTracker()) {
54 } 53 }
55 54
56 BrowsingDataDatabaseHelper::~BrowsingDataDatabaseHelper() { 55 BrowsingDataDatabaseHelper::~BrowsingDataDatabaseHelper() {
57 } 56 }
58 57
59 void BrowsingDataDatabaseHelper::StartFetching( 58 void BrowsingDataDatabaseHelper::StartFetching(
60 Callback1<const std::list<DatabaseInfo>& >::Type* callback) { 59 const base::Callback<void(const std::list<DatabaseInfo>&)>& callback) {
61 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 60 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
62 DCHECK(!is_fetching_); 61 DCHECK(!is_fetching_);
63 DCHECK(callback); 62 DCHECK_EQ(false, callback.is_null());
63
64 is_fetching_ = true; 64 is_fetching_ = true;
65 database_info_.clear(); 65 database_info_.clear();
66 completion_callback_.reset(callback); 66 completion_callback_ = callback;
67 BrowserThread::PostTask( 67 BrowserThread::PostTask(
68 BrowserThread::FILE, FROM_HERE, 68 BrowserThread::FILE, FROM_HERE,
69 base::Bind(&BrowsingDataDatabaseHelper::FetchDatabaseInfoOnFileThread, 69 base::Bind(&BrowsingDataDatabaseHelper::FetchDatabaseInfoOnFileThread,
70 this)); 70 this));
71 } 71 }
72 72
73 void BrowsingDataDatabaseHelper::CancelNotification() { 73 void BrowsingDataDatabaseHelper::CancelNotification() {
74 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 74 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
75 completion_callback_.reset(NULL); 75 completion_callback_.Reset();
76 } 76 }
77 77
78 void BrowsingDataDatabaseHelper::DeleteDatabase(const std::string& origin, 78 void BrowsingDataDatabaseHelper::DeleteDatabase(const std::string& origin,
79 const std::string& name) { 79 const std::string& name) {
80 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 80 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
81 BrowserThread::PostTask( 81 BrowserThread::PostTask(
82 BrowserThread::FILE, FROM_HERE, 82 BrowserThread::FILE, FROM_HERE,
83 base::Bind(&BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread, this, 83 base::Bind(&BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread, this,
84 origin, name)); 84 origin, name));
85 } 85 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 BrowserThread::PostTask( 123 BrowserThread::PostTask(
124 BrowserThread::UI, FROM_HERE, 124 BrowserThread::UI, FROM_HERE,
125 base::Bind(&BrowsingDataDatabaseHelper::NotifyInUIThread, this)); 125 base::Bind(&BrowsingDataDatabaseHelper::NotifyInUIThread, this));
126 } 126 }
127 127
128 void BrowsingDataDatabaseHelper::NotifyInUIThread() { 128 void BrowsingDataDatabaseHelper::NotifyInUIThread() {
129 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 129 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
130 DCHECK(is_fetching_); 130 DCHECK(is_fetching_);
131 // Note: completion_callback_ mutates only in the UI thread, so it's safe to 131 // Note: completion_callback_ mutates only in the UI thread, so it's safe to
132 // test it here. 132 // test it here.
133 if (completion_callback_ != NULL) { 133 if (!completion_callback_.is_null()) {
134 completion_callback_->Run(database_info_); 134 completion_callback_.Run(database_info_);
135 completion_callback_.reset(); 135 completion_callback_.Reset();
136 } 136 }
137 is_fetching_ = false; 137 is_fetching_ = false;
138 database_info_.clear(); 138 database_info_.clear();
139 } 139 }
140 140
141 void BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread( 141 void BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread(
142 const std::string& origin, 142 const std::string& origin,
143 const std::string& name) { 143 const std::string& name) {
144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
145 if (!tracker_.get()) 145 if (!tracker_.get())
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 database_info_.clear(); 191 database_info_.clear();
192 pending_database_info_.clear(); 192 pending_database_info_.clear();
193 } 193 }
194 194
195 bool CannedBrowsingDataDatabaseHelper::empty() const { 195 bool CannedBrowsingDataDatabaseHelper::empty() const {
196 base::AutoLock auto_lock(lock_); 196 base::AutoLock auto_lock(lock_);
197 return database_info_.empty() && pending_database_info_.empty(); 197 return database_info_.empty() && pending_database_info_.empty();
198 } 198 }
199 199
200 void CannedBrowsingDataDatabaseHelper::StartFetching( 200 void CannedBrowsingDataDatabaseHelper::StartFetching(
201 Callback1<const std::list<DatabaseInfo>& >::Type* callback) { 201 const base::Callback<void(const std::list<DatabaseInfo>&)>& callback) {
202 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 202 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
203 DCHECK(!is_fetching_); 203 DCHECK(!is_fetching_);
204 DCHECK(callback); 204 DCHECK_EQ(false, callback.is_null());
205
205 is_fetching_ = true; 206 is_fetching_ = true;
206 completion_callback_.reset(callback); 207 completion_callback_ = callback;
207 BrowserThread::PostTask( 208 BrowserThread::PostTask(
208 BrowserThread::WEBKIT, FROM_HERE, 209 BrowserThread::WEBKIT, FROM_HERE,
209 base::Bind(&CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread, 210 base::Bind(&CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread,
210 this)); 211 this));
211 } 212 }
212 213
213 CannedBrowsingDataDatabaseHelper::~CannedBrowsingDataDatabaseHelper() {} 214 CannedBrowsingDataDatabaseHelper::~CannedBrowsingDataDatabaseHelper() {}
214 215
215 void CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread() { 216 void CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread() {
216 base::AutoLock auto_lock(lock_); 217 base::AutoLock auto_lock(lock_);
(...skipping 26 matching lines...) Expand all
243 web_security_origin.toString().utf8(), 244 web_security_origin.toString().utf8(),
244 0, 245 0,
245 base::Time())); 246 base::Time()));
246 } 247 }
247 pending_database_info_.clear(); 248 pending_database_info_.clear();
248 249
249 BrowserThread::PostTask( 250 BrowserThread::PostTask(
250 BrowserThread::UI, FROM_HERE, 251 BrowserThread::UI, FROM_HERE,
251 base::Bind(&CannedBrowsingDataDatabaseHelper::NotifyInUIThread, this)); 252 base::Bind(&CannedBrowsingDataDatabaseHelper::NotifyInUIThread, this));
252 } 253 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_database_helper.h ('k') | chrome/browser/browsing_data_database_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698