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

Side by Side Diff: chrome/browser/profiles/profile_impl_io_data.cc

Issue 11238034: Added completion notification to Profile's ClearNetworkingHistorySince. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed nits, the important question remains. Created 8 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) 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/profiles/profile_impl_io_data.h" 5 #include "chrome/browser/profiles/profile_impl_io_data.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 profile_, io_data_); 134 profile_, io_data_);
135 } 135 }
136 io_data_->predictor_->InitNetworkPredictor(profile_->GetPrefs(), 136 io_data_->predictor_->InitNetworkPredictor(profile_->GetPrefs(),
137 local_state, 137 local_state,
138 io_thread, 138 io_thread,
139 main_request_context_getter_); 139 main_request_context_getter_);
140 140
141 io_data_->InitializeMetricsEnabledStateOnUIThread(); 141 io_data_->InitializeMetricsEnabledStateOnUIThread();
142 } 142 }
143 143
144 void ProfileImplIOData::Handle::InitForTesting() const {
145 using chrome_browser_net::HttpServerPropertiesManager;
146
147 initialized_ = true;
148
149 // Set up an HttpServerPropertiesManager for testing removing browsing data.
150 PrefService* pref_service = profile_->GetPrefs();
151 io_data_->set_http_server_properties_manager(
152 new HttpServerPropertiesManager(pref_service));
153
154 BrowserThread::PostTask(
155 BrowserThread::IO,
156 FROM_HERE,
157 base::Bind(
158 &HttpServerPropertiesManager::InitializeOnIOThread,
159 base::Unretained(io_data_->http_server_properties_manager())));
160
161 io_data_->InitForTesting();
162 }
163
144 base::Callback<ChromeURLDataManagerBackend*(void)> 164 base::Callback<ChromeURLDataManagerBackend*(void)>
145 ProfileImplIOData::Handle::GetChromeURLDataManagerBackendGetter() const { 165 ProfileImplIOData::Handle::GetChromeURLDataManagerBackendGetter() const {
146 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 166 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
147 LazyInitialize(); 167 LazyInitialize();
148 return base::Bind(&ProfileIOData::GetChromeURLDataManagerBackend, 168 return base::Bind(&ProfileIOData::GetChromeURLDataManagerBackend,
149 base::Unretained(io_data_)); 169 base::Unretained(io_data_));
150 } 170 }
151 171
152 content::ResourceContext* 172 content::ResourceContext*
153 ProfileImplIOData::Handle::GetResourceContext() const { 173 ProfileImplIOData::Handle::GetResourceContext() const {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 GetIsolatedAppRequestContextGetter(app_id); 271 GetIsolatedAppRequestContextGetter(app_id);
252 ChromeURLRequestContextGetter* context = 272 ChromeURLRequestContextGetter* context =
253 ChromeURLRequestContextGetter::CreateOriginalForIsolatedMedia( 273 ChromeURLRequestContextGetter::CreateOriginalForIsolatedMedia(
254 profile_, app_context, io_data_, app_id); 274 profile_, app_context, io_data_, app_id);
255 isolated_media_request_context_getter_map_[app_id] = context; 275 isolated_media_request_context_getter_map_[app_id] = context;
256 276
257 return context; 277 return context;
258 } 278 }
259 279
260 void ProfileImplIOData::Handle::ClearNetworkingHistorySince( 280 void ProfileImplIOData::Handle::ClearNetworkingHistorySince(
261 base::Time time) { 281 base::Time time,
282 const base::Closure& completion) {
262 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 283 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
263 LazyInitialize(); 284 LazyInitialize();
264 285
265 BrowserThread::PostTask( 286 BrowserThread::PostTask(
266 BrowserThread::IO, FROM_HERE, 287 BrowserThread::IO, FROM_HERE,
267 base::Bind( 288 base::Bind(
268 &ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread, 289 &ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread,
269 base::Unretained(io_data_), 290 base::Unretained(io_data_),
270 time)); 291 time,
292 completion));
271 } 293 }
272 294
273 void ProfileImplIOData::Handle::LazyInitialize() const { 295 void ProfileImplIOData::Handle::LazyInitialize() const {
274 if (initialized_) 296 if (initialized_)
275 return; 297 return;
276 298
277 // Set initialized_ to true at the beginning in case any of the objects 299 // Set initialized_ to true at the beginning in case any of the objects
278 // below try to get the ResourceContext pointer. 300 // below try to get the ResourceContext pointer.
279 initialized_ = true; 301 initialized_ = true;
280 PrefService* pref_service = profile_->GetPrefs(); 302 PrefService* pref_service = profile_->GetPrefs();
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 net::FtpAuthCache* ftp_auth_cache) const { 678 net::FtpAuthCache* ftp_auth_cache) const {
657 SetUpJobFactoryDefaults(job_factory, protocol_handler_interceptor.Pass(), 679 SetUpJobFactoryDefaults(job_factory, protocol_handler_interceptor.Pass(),
658 network_delegate, ftp_transaction_factory, 680 network_delegate, ftp_transaction_factory,
659 ftp_auth_cache); 681 ftp_auth_cache);
660 682
661 job_factory->AddInterceptor( 683 job_factory->AddInterceptor(
662 new chrome_browser_net::ConnectInterceptor(predictor_.get())); 684 new chrome_browser_net::ConnectInterceptor(predictor_.get()));
663 } 685 }
664 686
665 void ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread( 687 void ProfileImplIOData::ClearNetworkingHistorySinceOnIOThread(
666 base::Time time) { 688 base::Time time,
689 const base::Closure& completion) {
667 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 690 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
668 LazyInitialize(); 691 LazyInitialize();
669 692
670 DCHECK(transport_security_state()); 693 DCHECK(transport_security_state());
671 transport_security_state()->DeleteSince(time); 694 transport_security_state()->DeleteSince(time); // Completes synchronously.
672 DCHECK(http_server_properties_manager()); 695 DCHECK(http_server_properties_manager());
673 http_server_properties_manager()->Clear(); 696 http_server_properties_manager()->Clear(completion);
674 } 697 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698