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

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

Issue 600104: Actually delete databases in CookiesTreeModel. (Closed)
Patch Set: fixed comments Created 10 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/browsing_data_database_helper.h ('k') | chrome/browser/cookies_tree_model.cc » ('j') | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/file_util.h" 7 #include "base/file_util.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chrome/browser/chrome_thread.h" 9 #include "chrome/browser/chrome_thread.h"
10 #include "chrome/browser/profile.h" 10 #include "chrome/browser/profile.h"
11 #include "net/base/net_errors.h"
11 #include "third_party/WebKit/WebKit/chromium/public/WebCString.h" 12 #include "third_party/WebKit/WebKit/chromium/public/WebCString.h"
12 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" 13 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h"
13 #include "third_party/WebKit/WebKit/chromium/public/WebString.h" 14 #include "third_party/WebKit/WebKit/chromium/public/WebString.h"
14 #include "webkit/database/database_tracker.h"
15 #include "webkit/glue/webkit_glue.h" 15 #include "webkit/glue/webkit_glue.h"
16 16
17 BrowsingDataDatabaseHelper::BrowsingDataDatabaseHelper(Profile* profile) 17 BrowsingDataDatabaseHelper::BrowsingDataDatabaseHelper(Profile* profile)
18 : profile_(profile), 18 : tracker_(profile->GetDatabaseTracker()),
19 completion_callback_(NULL), 19 completion_callback_(NULL),
20 is_fetching_(false) { 20 is_fetching_(false) {
21 DCHECK(profile_);
22 } 21 }
23 22
24 BrowsingDataDatabaseHelper::~BrowsingDataDatabaseHelper() { 23 BrowsingDataDatabaseHelper::~BrowsingDataDatabaseHelper() {
25 } 24 }
26 25
27 void BrowsingDataDatabaseHelper::StartFetching( 26 void BrowsingDataDatabaseHelper::StartFetching(
28 Callback1<const std::vector<DatabaseInfo>& >::Type* callback) { 27 Callback1<const std::vector<DatabaseInfo>& >::Type* callback) {
29 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); 28 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
30 DCHECK(!is_fetching_); 29 DCHECK(!is_fetching_);
31 DCHECK(callback); 30 DCHECK(callback);
(...skipping 13 matching lines...) Expand all
45 const std::string& name) { 44 const std::string& name) {
46 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); 45 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
47 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE,NewRunnableMethod( 46 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE,NewRunnableMethod(
48 this, &BrowsingDataDatabaseHelper::DeleteDatabaseInFileThread, origin, 47 this, &BrowsingDataDatabaseHelper::DeleteDatabaseInFileThread, origin,
49 name)); 48 name));
50 } 49 }
51 50
52 void BrowsingDataDatabaseHelper::FetchDatabaseInfoInFileThread() { 51 void BrowsingDataDatabaseHelper::FetchDatabaseInfoInFileThread() {
53 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE)); 52 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
54 std::vector<webkit_database::OriginInfo> origins_info; 53 std::vector<webkit_database::OriginInfo> origins_info;
55 scoped_refptr<webkit_database::DatabaseTracker> tracker = 54 if (tracker_.get() && tracker_->GetAllOriginsInfo(&origins_info)) {
56 profile_->GetDatabaseTracker();
57 if (tracker.get() && tracker->GetAllOriginsInfo(&origins_info)) {
58 for (std::vector<webkit_database::OriginInfo>::const_iterator ori = 55 for (std::vector<webkit_database::OriginInfo>::const_iterator ori =
59 origins_info.begin(); ori != origins_info.end(); ++ori) { 56 origins_info.begin(); ori != origins_info.end(); ++ori) {
60 scoped_ptr<WebKit::WebSecurityOrigin> web_security_origin( 57 scoped_ptr<WebKit::WebSecurityOrigin> web_security_origin(
61 WebKit::WebSecurityOrigin::createFromDatabaseIdentifier( 58 WebKit::WebSecurityOrigin::createFromDatabaseIdentifier(
62 ori->GetOrigin())); 59 ori->GetOrigin()));
63 std::vector<string16> databases; 60 std::vector<string16> databases;
64 ori->GetAllDatabaseNames(&databases); 61 ori->GetAllDatabaseNames(&databases);
65 for (std::vector<string16>::const_iterator db = databases.begin(); 62 for (std::vector<string16>::const_iterator db = databases.begin();
66 db != databases.end(); ++db) { 63 db != databases.end(); ++db) {
67 FilePath file_path = tracker->GetFullDBFilePath(ori->GetOrigin(), *db); 64 FilePath file_path = tracker_->GetFullDBFilePath(ori->GetOrigin(), *db);
68 file_util::FileInfo file_info; 65 file_util::FileInfo file_info;
69 if (file_util::GetFileInfo(file_path, &file_info)) { 66 if (file_util::GetFileInfo(file_path, &file_info)) {
70 database_info_.push_back(DatabaseInfo( 67 database_info_.push_back(DatabaseInfo(
71 web_security_origin->host().utf8(), 68 web_security_origin->host().utf8(),
72 UTF16ToUTF8(*db), 69 UTF16ToUTF8(*db),
73 UTF16ToUTF8(ori->GetOrigin()), 70 UTF16ToUTF8(ori->GetOrigin()),
74 UTF16ToUTF8(ori->GetDatabaseDescription(*db)), 71 UTF16ToUTF8(ori->GetDatabaseDescription(*db)),
75 file_info.size, 72 file_info.size,
76 file_info.last_modified)); 73 file_info.last_modified));
77 } 74 }
(...skipping 13 matching lines...) Expand all
91 if (completion_callback_ != NULL) 88 if (completion_callback_ != NULL)
92 completion_callback_->Run(database_info_); 89 completion_callback_->Run(database_info_);
93 is_fetching_ = false; 90 is_fetching_ = false;
94 database_info_.clear(); 91 database_info_.clear();
95 } 92 }
96 93
97 void BrowsingDataDatabaseHelper::DeleteDatabaseInFileThread( 94 void BrowsingDataDatabaseHelper::DeleteDatabaseInFileThread(
98 const std::string& origin, 95 const std::string& origin,
99 const std::string& name) { 96 const std::string& name) {
100 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE)); 97 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
101 // TODO(jochen): delete the given database. 98 if (!tracker_.get())
99 return;
100 tracker_->DeleteDatabase(UTF8ToUTF16(origin), UTF8ToUTF16(name), NULL);
102 } 101 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_database_helper.h ('k') | chrome/browser/cookies_tree_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698