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

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

Issue 7046013: Use the DatabaseTracker only on the FILE thread. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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
« no previous file with comments | « chrome/browser/browsing_data_database_helper.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/callback.h" 7 #include "base/callback.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 } 56 }
57 57
58 void BrowsingDataDatabaseHelper::StartFetching( 58 void BrowsingDataDatabaseHelper::StartFetching(
59 Callback1<const std::vector<DatabaseInfo>& >::Type* callback) { 59 Callback1<const std::vector<DatabaseInfo>& >::Type* callback) {
60 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 60 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
61 DCHECK(!is_fetching_); 61 DCHECK(!is_fetching_);
62 DCHECK(callback); 62 DCHECK(callback);
63 is_fetching_ = true; 63 is_fetching_ = true;
64 database_info_.clear(); 64 database_info_.clear();
65 completion_callback_.reset(callback); 65 completion_callback_.reset(callback);
66 BrowserThread::PostTask(BrowserThread::WEBKIT, FROM_HERE, NewRunnableMethod( 66 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, NewRunnableMethod(
67 this, &BrowsingDataDatabaseHelper::FetchDatabaseInfoInWebKitThread)); 67 this, &BrowsingDataDatabaseHelper::FetchDatabaseInfoOnFileThread));
68 } 68 }
69 69
70 void BrowsingDataDatabaseHelper::CancelNotification() { 70 void BrowsingDataDatabaseHelper::CancelNotification() {
71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
72 completion_callback_.reset(NULL); 72 completion_callback_.reset(NULL);
73 } 73 }
74 74
75 void BrowsingDataDatabaseHelper::DeleteDatabase(const std::string& origin, 75 void BrowsingDataDatabaseHelper::DeleteDatabase(const std::string& origin,
76 const std::string& name) { 76 const std::string& name) {
77 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 77 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
78 BrowserThread::PostTask(BrowserThread::WEBKIT, FROM_HERE, NewRunnableMethod( 78 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, NewRunnableMethod(
79 this, &BrowsingDataDatabaseHelper::DeleteDatabaseInWebKitThread, origin, 79 this, &BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread, origin,
80 name)); 80 name));
81 } 81 }
82 82
83 void BrowsingDataDatabaseHelper::FetchDatabaseInfoInWebKitThread() { 83 void BrowsingDataDatabaseHelper::FetchDatabaseInfoOnFileThread() {
84 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); 84 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
85 std::vector<webkit_database::OriginInfo> origins_info; 85 std::vector<webkit_database::OriginInfo> origins_info;
86 if (tracker_.get() && tracker_->GetAllOriginsInfo(&origins_info)) { 86 if (tracker_.get() && tracker_->GetAllOriginsInfo(&origins_info)) {
87 for (std::vector<webkit_database::OriginInfo>::const_iterator ori = 87 for (std::vector<webkit_database::OriginInfo>::const_iterator ori =
88 origins_info.begin(); ori != origins_info.end(); ++ori) { 88 origins_info.begin(); ori != origins_info.end(); ++ori) {
89 const std::string origin_identifier(UTF16ToUTF8(ori->GetOrigin())); 89 const std::string origin_identifier(UTF16ToUTF8(ori->GetOrigin()));
90 if (StartsWithASCII(origin_identifier, 90 if (StartsWithASCII(origin_identifier,
91 std::string(chrome::kExtensionScheme), 91 std::string(chrome::kExtensionScheme),
92 true)) { 92 true)) {
93 // Extension state is not considered browsing data. 93 // Extension state is not considered browsing data.
94 continue; 94 continue;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 // Note: completion_callback_ mutates only in the UI thread, so it's safe to 126 // Note: completion_callback_ mutates only in the UI thread, so it's safe to
127 // test it here. 127 // test it here.
128 if (completion_callback_ != NULL) { 128 if (completion_callback_ != NULL) {
129 completion_callback_->Run(database_info_); 129 completion_callback_->Run(database_info_);
130 completion_callback_.reset(); 130 completion_callback_.reset();
131 } 131 }
132 is_fetching_ = false; 132 is_fetching_ = false;
133 database_info_.clear(); 133 database_info_.clear();
134 } 134 }
135 135
136 void BrowsingDataDatabaseHelper::DeleteDatabaseInWebKitThread( 136 void BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread(
137 const std::string& origin, 137 const std::string& origin,
138 const std::string& name) { 138 const std::string& name) {
139 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT)); 139 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
140 if (!tracker_.get()) 140 if (!tracker_.get())
141 return; 141 return;
142 tracker_->DeleteDatabase(UTF8ToUTF16(origin), UTF8ToUTF16(name), NULL); 142 tracker_->DeleteDatabase(UTF8ToUTF16(origin), UTF8ToUTF16(name), NULL);
143 } 143 }
144 144
145 CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo() {} 145 CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo() {}
146 146
147 CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo( 147 CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo(
148 const GURL& origin, 148 const GURL& origin,
149 const std::string& name, 149 const std::string& name,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 info->description, 235 info->description,
236 web_security_origin.toString().utf8(), 236 web_security_origin.toString().utf8(),
237 0, 237 0,
238 base::Time())); 238 base::Time()));
239 } 239 }
240 pending_database_info_.clear(); 240 pending_database_info_.clear();
241 241
242 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, NewRunnableMethod( 242 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, NewRunnableMethod(
243 this, &CannedBrowsingDataDatabaseHelper::NotifyInUIThread)); 243 this, &CannedBrowsingDataDatabaseHelper::NotifyInUIThread));
244 } 244 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_database_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698