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

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

Issue 10092013: Display third party cookies and site data counts in the WebsiteSettings UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: "Fix CannedBrowsingDataDatabaseHelperTest.*" Created 8 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
OLDNEW
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_local_storage_helper.h" 5 #include "chrome/browser/browsing_data_local_storage_helper.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.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/string_util.h" 10 #include "base/string_util.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/browser/browsing_data_helper.h" 12 #include "chrome/browser/browsing_data_helper.h"
13 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
14 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/dom_storage_context.h" 15 #include "content/public/browser/dom_storage_context.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h " 16 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h "
17 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
19 #include "webkit/glue/webkit_glue.h" 19 #include "webkit/glue/webkit_glue.h"
20 20
21 using content::BrowserContext; 21 using content::BrowserContext;
22 using content::BrowserThread; 22 using content::BrowserThread;
23 using content::DOMStorageContext; 23 using content::DOMStorageContext;
24 using WebKit::WebSecurityOrigin; 24 using WebKit::WebSecurityOrigin;
25 25
26 BrowsingDataLocalStorageHelper::LocalStorageInfo::LocalStorageInfo()
27 : port(0),
28 size(0) {
29 }
30
31 BrowsingDataLocalStorageHelper::LocalStorageInfo::LocalStorageInfo( 26 BrowsingDataLocalStorageHelper::LocalStorageInfo::LocalStorageInfo(
32 const std::string& protocol, 27 const std::string& protocol,
33 const std::string& host, 28 const std::string& host,
34 unsigned short port, 29 unsigned short port,
35 const std::string& database_identifier, 30 const std::string& database_identifier,
36 const std::string& origin, 31 const std::string& origin,
37 const FilePath& file_path, 32 const FilePath& file_path,
38 int64 size, 33 int64 size,
39 base::Time last_modified) 34 base::Time last_modified)
40 : protocol(protocol), 35 : protocol(protocol),
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 profile_(profile) { 133 profile_(profile) {
139 } 134 }
140 135
141 CannedBrowsingDataLocalStorageHelper* 136 CannedBrowsingDataLocalStorageHelper*
142 CannedBrowsingDataLocalStorageHelper::Clone() { 137 CannedBrowsingDataLocalStorageHelper::Clone() {
143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 138 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
144 CannedBrowsingDataLocalStorageHelper* clone = 139 CannedBrowsingDataLocalStorageHelper* clone =
145 new CannedBrowsingDataLocalStorageHelper(profile_); 140 new CannedBrowsingDataLocalStorageHelper(profile_);
146 141
147 clone->pending_local_storage_info_ = pending_local_storage_info_; 142 clone->pending_local_storage_info_ = pending_local_storage_info_;
148 clone->local_storage_info_ = local_storage_info_;
149 return clone; 143 return clone;
150 } 144 }
151 145
152 void CannedBrowsingDataLocalStorageHelper::AddLocalStorage( 146 void CannedBrowsingDataLocalStorageHelper::AddLocalStorage(
153 const GURL& origin) { 147 const GURL& origin) {
154 if (BrowsingDataHelper::HasValidScheme(origin)) 148 if (BrowsingDataHelper::HasValidScheme(origin))
155 pending_local_storage_info_.insert(origin); 149 pending_local_storage_info_.insert(origin);
156 } 150 }
157 151
158 void CannedBrowsingDataLocalStorageHelper::Reset() { 152 void CannedBrowsingDataLocalStorageHelper::Reset() {
159 local_storage_info_.clear();
160 pending_local_storage_info_.clear(); 153 pending_local_storage_info_.clear();
161 } 154 }
162 155
163 bool CannedBrowsingDataLocalStorageHelper::empty() const { 156 bool CannedBrowsingDataLocalStorageHelper::empty() const {
164 return local_storage_info_.empty() && pending_local_storage_info_.empty(); 157 return pending_local_storage_info_.empty();
165 } 158 }
166 159
167 size_t CannedBrowsingDataLocalStorageHelper::GetLocalStorageCount() const { 160 size_t CannedBrowsingDataLocalStorageHelper::GetLocalStorageCount() const {
168 return pending_local_storage_info_.size(); 161 return pending_local_storage_info_.size();
169 } 162 }
170 163
164 const std::set<GURL>&
165 CannedBrowsingDataLocalStorageHelper::GetLocalStorageInfo() const {
166 return pending_local_storage_info_;
167 }
168
171 void CannedBrowsingDataLocalStorageHelper::StartFetching( 169 void CannedBrowsingDataLocalStorageHelper::StartFetching(
172 const base::Callback<void(const std::list<LocalStorageInfo>&)>& callback) { 170 const base::Callback<void(const std::list<LocalStorageInfo>&)>& callback) {
173 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 171 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
174 DCHECK(!is_fetching_); 172 DCHECK(!is_fetching_);
175 DCHECK_EQ(false, callback.is_null()); 173 DCHECK_EQ(false, callback.is_null());
176 174
177 is_fetching_ = true; 175 is_fetching_ = true;
178 completion_callback_ = callback; 176 completion_callback_ = callback;
179 177
180 // We post a task to emulate async fetching behavior. 178 // We post a task to emulate async fetching behavior.
181 MessageLoop::current()->PostTask( 179 MessageLoop::current()->PostTask(
182 FROM_HERE, 180 FROM_HERE,
183 base::Bind(&CannedBrowsingDataLocalStorageHelper:: 181 base::Bind(&CannedBrowsingDataLocalStorageHelper::
184 ConvertPendingInfo, this)); 182 ConvertPendingInfo, this));
185 } 183 }
186 184
187 CannedBrowsingDataLocalStorageHelper::~CannedBrowsingDataLocalStorageHelper() {} 185 CannedBrowsingDataLocalStorageHelper::~CannedBrowsingDataLocalStorageHelper() {}
188 186
189 void CannedBrowsingDataLocalStorageHelper::ConvertPendingInfo() { 187 void CannedBrowsingDataLocalStorageHelper::ConvertPendingInfo() {
188 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
189 local_storage_info_.clear();
190 for (std::set<GURL>::iterator info = pending_local_storage_info_.begin(); 190 for (std::set<GURL>::iterator info = pending_local_storage_info_.begin();
191 info != pending_local_storage_info_.end(); ++info) { 191 info != pending_local_storage_info_.end(); ++info) {
192 WebSecurityOrigin web_security_origin = 192 WebSecurityOrigin web_security_origin =
193 WebSecurityOrigin::createFromString( 193 WebSecurityOrigin::createFromString(
194 UTF8ToUTF16(info->spec())); 194 UTF8ToUTF16(info->spec()));
195 std::string security_origin(web_security_origin.toString().utf8()); 195 std::string security_origin(web_security_origin.toString().utf8());
196 196
197 bool duplicate = false;
198 for (std::list<LocalStorageInfo>::iterator
199 local_storage = local_storage_info_.begin();
200 local_storage != local_storage_info_.end(); ++local_storage) {
201 if (local_storage->origin == security_origin) {
202 duplicate = true;
203 break;
204 }
205 }
206 if (duplicate)
207 continue;
208
209 local_storage_info_.push_back(LocalStorageInfo( 197 local_storage_info_.push_back(LocalStorageInfo(
210 web_security_origin.protocol().utf8(), 198 web_security_origin.protocol().utf8(),
211 web_security_origin.host().utf8(), 199 web_security_origin.host().utf8(),
212 web_security_origin.port(), 200 web_security_origin.port(),
213 web_security_origin.databaseIdentifier().utf8(), 201 web_security_origin.databaseIdentifier().utf8(),
214 security_origin, 202 security_origin,
215 dom_storage_context_-> 203 dom_storage_context_->
216 GetFilePath(web_security_origin.databaseIdentifier()), 204 GetFilePath(web_security_origin.databaseIdentifier()),
217 0, 205 0,
218 base::Time())); 206 base::Time()));
219 } 207 }
220 pending_local_storage_info_.clear();
221 208
222 BrowserThread::PostTask( 209 BrowserThread::PostTask(
223 BrowserThread::UI, FROM_HERE, 210 BrowserThread::UI, FROM_HERE,
224 base::Bind(&CannedBrowsingDataLocalStorageHelper::NotifyInUIThread, 211 base::Bind(&CannedBrowsingDataLocalStorageHelper::NotifyInUIThread,
225 this)); 212 this));
226 } 213 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_local_storage_helper.h ('k') | chrome/browser/browsing_data_server_bound_cert_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698