OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browsing_data_database_helper.h" | 5 #include "chrome/browser/browsing_data/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/message_loop.h" | |
11 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
12 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 11 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
13 #include "chrome/browser/profiles/profile.h" | 12 #include "chrome/browser/profiles/profile.h" |
14 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
15 #include "content/public/browser/storage_partition.h" | 14 #include "content/public/browser/storage_partition.h" |
16 #include "net/base/completion_callback.h" | 15 #include "net/base/completion_callback.h" |
17 #include "net/base/net_errors.h" | 16 #include "net/base/net_errors.h" |
18 #include "webkit/common/database/database_identifier.h" | 17 #include "webkit/common/database/database_identifier.h" |
19 | 18 |
20 using content::BrowserContext; | 19 using content::BrowserContext; |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 } | 183 } |
185 | 184 |
186 const std::set<CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo>& | 185 const std::set<CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo>& |
187 CannedBrowsingDataDatabaseHelper::GetPendingDatabaseInfo() { | 186 CannedBrowsingDataDatabaseHelper::GetPendingDatabaseInfo() { |
188 return pending_database_info_; | 187 return pending_database_info_; |
189 } | 188 } |
190 | 189 |
191 void CannedBrowsingDataDatabaseHelper::StartFetching( | 190 void CannedBrowsingDataDatabaseHelper::StartFetching( |
192 const base::Callback<void(const std::list<DatabaseInfo>&)>& callback) { | 191 const base::Callback<void(const std::list<DatabaseInfo>&)>& callback) { |
193 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 192 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
194 DCHECK(!is_fetching_); | 193 DCHECK(!callback.is_null()); |
195 DCHECK_EQ(false, callback.is_null()); | |
196 | 194 |
197 is_fetching_ = true; | 195 std::list<DatabaseInfo> result; |
198 completion_callback_ = callback; | |
199 | |
200 database_info_.clear(); | |
201 for (std::set<PendingDatabaseInfo>::const_iterator | 196 for (std::set<PendingDatabaseInfo>::const_iterator |
202 info = pending_database_info_.begin(); | 197 info = pending_database_info_.begin(); |
203 info != pending_database_info_.end(); ++info) { | 198 info != pending_database_info_.end(); ++info) { |
204 DatabaseIdentifier identifier = | 199 DatabaseIdentifier identifier = |
205 DatabaseIdentifier::CreateFromOrigin(info->origin); | 200 DatabaseIdentifier::CreateFromOrigin(info->origin); |
206 | 201 |
207 database_info_.push_back(DatabaseInfo( | 202 result.push_back(DatabaseInfo( |
208 identifier, | 203 identifier, |
209 info->name, | 204 info->name, |
210 info->description, | 205 info->description, |
211 0, | 206 0, |
212 base::Time())); | 207 base::Time())); |
213 } | 208 } |
214 | 209 |
215 BrowserThread::PostTask( | 210 BrowserThread::PostTask( |
216 BrowserThread::UI, FROM_HERE, | 211 BrowserThread::UI, FROM_HERE, base::Bind(callback, result)); |
217 base::Bind(&CannedBrowsingDataDatabaseHelper::NotifyInUIThread, this)); | 212 } |
| 213 |
| 214 void CannedBrowsingDataDatabaseHelper::DeleteDatabase( |
| 215 const std::string& origin_identifier, |
| 216 const std::string& name) { |
| 217 GURL origin = |
| 218 webkit_database::DatabaseIdentifier::Parse(origin_identifier).ToOrigin(); |
| 219 for (std::set<PendingDatabaseInfo>::iterator it = |
| 220 pending_database_info_.begin(); |
| 221 it != pending_database_info_.end(); |
| 222 ++it) { |
| 223 if (it->origin == origin && it->name == name) { |
| 224 pending_database_info_.erase(it); |
| 225 break; |
| 226 } |
| 227 } |
| 228 BrowsingDataDatabaseHelper::DeleteDatabase(origin_identifier, name); |
218 } | 229 } |
219 | 230 |
220 CannedBrowsingDataDatabaseHelper::~CannedBrowsingDataDatabaseHelper() {} | 231 CannedBrowsingDataDatabaseHelper::~CannedBrowsingDataDatabaseHelper() {} |
OLD | NEW |