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

Side by Side Diff: chrome/browser/prerender/prerender_manager.cc

Issue 1104043002: favor DCHECK_CURRENTLY_ON for better logs in chrome/browser/prerender/, prefetch and printing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding files Created 5 years, 8 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
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/prerender/prerender_manager.h" 5 #include "chrome/browser/prerender/prerender_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 prerender_contents_factory_(PrerenderContents::CreateFactory()), 187 prerender_contents_factory_(PrerenderContents::CreateFactory()),
188 last_prerender_start_time_(GetCurrentTimeTicks() - 188 last_prerender_start_time_(GetCurrentTimeTicks() -
189 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), 189 base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)),
190 prerender_history_(new PrerenderHistory(kHistoryLength)), 190 prerender_history_(new PrerenderHistory(kHistoryLength)),
191 histograms_(new PrerenderHistograms()), 191 histograms_(new PrerenderHistograms()),
192 profile_network_bytes_(0), 192 profile_network_bytes_(0),
193 last_recorded_profile_network_bytes_(0) { 193 last_recorded_profile_network_bytes_(0) {
194 // There are some assumptions that the PrerenderManager is on the UI thread. 194 // There are some assumptions that the PrerenderManager is on the UI thread.
195 // Any other checks simply make sure that the PrerenderManager is accessed on 195 // Any other checks simply make sure that the PrerenderManager is accessed on
196 // the same thread that it was created on. 196 // the same thread that it was created on.
197 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 197 DCHECK_CURRENTLY_ON(BrowserThread::UI);
198 198
199 // Certain experiments override our default config_ values. 199 // Certain experiments override our default config_ values.
200 switch (PrerenderManager::GetMode()) { 200 switch (PrerenderManager::GetMode()) {
201 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP: 201 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP:
202 config_.max_link_concurrency = 4; 202 config_.max_link_concurrency = 4;
203 config_.max_link_concurrency_per_launcher = 2; 203 config_.max_link_concurrency_per_launcher = 2;
204 break; 204 break;
205 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP: 205 case PrerenderManager::PRERENDER_MODE_EXPERIMENT_15MIN_TTL_GROUP:
206 config_.time_to_live = base::TimeDelta::FromMinutes(15); 206 config_.time_to_live = base::TimeDelta::FromMinutes(15);
207 break; 207 break;
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 } 548 }
549 549
550 // Destroy the old WebContents relatively promptly to reduce resource usage. 550 // Destroy the old WebContents relatively promptly to reduce resource usage.
551 PostCleanupTask(); 551 PostCleanupTask();
552 } 552 }
553 553
554 void PrerenderManager::RecordPageLoadTimeNotSwappedIn( 554 void PrerenderManager::RecordPageLoadTimeNotSwappedIn(
555 Origin origin, 555 Origin origin,
556 base::TimeDelta page_load_time, 556 base::TimeDelta page_load_time,
557 const GURL& url) { 557 const GURL& url) {
558 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 558 DCHECK_CURRENTLY_ON(BrowserThread::UI);
559 histograms_->RecordPageLoadTimeNotSwappedIn(origin, page_load_time, url); 559 histograms_->RecordPageLoadTimeNotSwappedIn(origin, page_load_time, url);
560 } 560 }
561 561
562 void PrerenderManager::RecordPerceivedPageLoadTime( 562 void PrerenderManager::RecordPerceivedPageLoadTime(
563 Origin origin, 563 Origin origin,
564 NavigationType navigation_type, 564 NavigationType navigation_type,
565 base::TimeDelta perceived_page_load_time, 565 base::TimeDelta perceived_page_load_time,
566 double fraction_plt_elapsed_at_swap_in, 566 double fraction_plt_elapsed_at_swap_in,
567 const GURL& url) { 567 const GURL& url) {
568 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 568 DCHECK_CURRENTLY_ON(BrowserThread::UI);
569 if (!IsEnabled()) 569 if (!IsEnabled())
570 return; 570 return;
571 571
572 histograms_->RecordPerceivedPageLoadTime( 572 histograms_->RecordPerceivedPageLoadTime(
573 origin, perceived_page_load_time, navigation_type, url); 573 origin, perceived_page_load_time, navigation_type, url);
574 574
575 if (navigation_type == NAVIGATION_TYPE_PRERENDERED) { 575 if (navigation_type == NAVIGATION_TYPE_PRERENDERED) {
576 histograms_->RecordPercentLoadDoneAtSwapin( 576 histograms_->RecordPercentLoadDoneAtSwapin(
577 origin, fraction_plt_elapsed_at_swap_in); 577 origin, fraction_plt_elapsed_at_swap_in);
578 } 578 }
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after
1258 } 1258 }
1259 1259
1260 void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64 bytes) { 1260 void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64 bytes) {
1261 DCHECK_GE(bytes, 0); 1261 DCHECK_GE(bytes, 0);
1262 if (IsEnabled() && ActuallyPrerendering()) 1262 if (IsEnabled() && ActuallyPrerendering())
1263 profile_network_bytes_ += bytes; 1263 profile_network_bytes_ += bytes;
1264 } 1264 }
1265 1265
1266 void PrerenderManager::AddPrerenderProcessHost( 1266 void PrerenderManager::AddPrerenderProcessHost(
1267 content::RenderProcessHost* process_host) { 1267 content::RenderProcessHost* process_host) {
1268 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1268 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1269 DCHECK(prerender_process_hosts_.find(process_host) == 1269 DCHECK(prerender_process_hosts_.find(process_host) ==
1270 prerender_process_hosts_.end()); 1270 prerender_process_hosts_.end());
1271 prerender_process_hosts_.insert(process_host); 1271 prerender_process_hosts_.insert(process_host);
1272 process_host->AddObserver(this); 1272 process_host->AddObserver(this);
1273 } 1273 }
1274 1274
1275 bool PrerenderManager::MayReuseProcessHost( 1275 bool PrerenderManager::MayReuseProcessHost(
1276 content::RenderProcessHost* process_host) { 1276 content::RenderProcessHost* process_host) {
1277 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1277 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1278 // Isolate prerender processes to make the resource monitoring check more 1278 // Isolate prerender processes to make the resource monitoring check more
1279 // accurate. 1279 // accurate.
1280 return (prerender_process_hosts_.find(process_host) == 1280 return (prerender_process_hosts_.find(process_host) ==
1281 prerender_process_hosts_.end()); 1281 prerender_process_hosts_.end());
1282 } 1282 }
1283 1283
1284 void PrerenderManager::RenderProcessHostDestroyed( 1284 void PrerenderManager::RenderProcessHostDestroyed(
1285 content::RenderProcessHost* host) { 1285 content::RenderProcessHost* host) {
1286 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1286 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1287 size_t erased = prerender_process_hosts_.erase(host); 1287 size_t erased = prerender_process_hosts_.erase(host);
1288 DCHECK_EQ(1u, erased); 1288 DCHECK_EQ(1u, erased);
1289 } 1289 }
1290 1290
1291 } // namespace prerender 1291 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_browsertest.cc ('k') | chrome/browser/prerender/prerender_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698