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

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

Issue 441923002: Add a PrefetchList to Prerender Local Predictor, to emulate how effective (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: incorporate comments Created 6 years, 4 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/prerender/prerender_field_trial.h" 5 #include "chrome/browser/prerender/prerender_field_trial.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 const char kPrerenderPrefetchKeyName[] = "PrerenderPrefetch"; 47 const char kPrerenderPrefetchKeyName[] = "PrerenderPrefetch";
48 const char kPrerenderQueryPrerenderServiceKeyName[] = 48 const char kPrerenderQueryPrerenderServiceKeyName[] =
49 "PrerenderQueryPrerenderService"; 49 "PrerenderQueryPrerenderService";
50 const char kPrerenderQueryPrerenderServiceCurrentURLKeyName[] = 50 const char kPrerenderQueryPrerenderServiceCurrentURLKeyName[] =
51 "PrerenderQueryPrerenderServiceCurrentURL"; 51 "PrerenderQueryPrerenderServiceCurrentURL";
52 const char kPrerenderQueryPrerenderServiceCandidateURLsKeyName[] = 52 const char kPrerenderQueryPrerenderServiceCandidateURLsKeyName[] =
53 "PrerenderQueryPrerenderServiceCandidateURLs"; 53 "PrerenderQueryPrerenderServiceCandidateURLs";
54 const char kPrerenderServiceBehaviorIDKeyName[] = "PrerenderServiceBehaviorID"; 54 const char kPrerenderServiceBehaviorIDKeyName[] = "PrerenderServiceBehaviorID";
55 const char kPrerenderServiceFetchTimeoutKeyName[] = 55 const char kPrerenderServiceFetchTimeoutKeyName[] =
56 "PrerenderServiceFetchTimeoutMs"; 56 "PrerenderServiceFetchTimeoutMs";
57 const char kPrefetchListTimeoutKeyName[] = "PrefetchListTimeoutSeconds";
57 const char kPrerenderTTLKeyName[] = "PrerenderTTLSeconds"; 58 const char kPrerenderTTLKeyName[] = "PrerenderTTLSeconds";
58 const char kPrerenderPriorityHalfLifeTimeKeyName[] = 59 const char kPrerenderPriorityHalfLifeTimeKeyName[] =
59 "PrerenderPriorityHalfLifeTimeSeconds"; 60 "PrerenderPriorityHalfLifeTimeSeconds";
60 const char kMaxConcurrentPrerenderKeyName[] = "MaxConcurrentPrerenders"; 61 const char kMaxConcurrentPrerenderKeyName[] = "MaxConcurrentPrerenders";
61 const char kMaxLaunchPrerenderKeyName[] = "MaxLaunchPrerenders"; 62 const char kMaxLaunchPrerenderKeyName[] = "MaxLaunchPrerenders";
62 const char kSkipFragment[] = "SkipFragment"; 63 const char kSkipFragment[] = "SkipFragment";
63 const char kSkipHTTPS[] = "SkipHTTPS"; 64 const char kSkipHTTPS[] = "SkipHTTPS";
64 const char kSkipWhitelist[] = "SkipWhitelist"; 65 const char kSkipWhitelist[] = "SkipWhitelist";
65 const char kSkipServiceWhitelist[] = "SkipServiceWhitelist"; 66 const char kSkipServiceWhitelist[] = "SkipServiceWhitelist";
66 const char kSkipLoggedIn[] = "SkipLoggedIn"; 67 const char kSkipLoggedIn[] = "SkipLoggedIn";
67 const char kSkipDefaultNoPrerender[] = "SkipDefaultNoPrerender"; 68 const char kSkipDefaultNoPrerender[] = "SkipDefaultNoPrerender";
68 const char kPrerenderServiceURLPrefixParameterName[] = 69 const char kPrerenderServiceURLPrefixParameterName[] =
69 "PrerenderServiceURLPrefix"; 70 "PrerenderServiceURLPrefix";
70 const char kDefaultPrerenderServiceURLPrefix[] = 71 const char kDefaultPrerenderServiceURLPrefix[] =
71 "https://clients4.google.com/prerenderservice/?q="; 72 "https://clients4.google.com/prerenderservice/?q=";
72 const int kMinPrerenderServiceTimeoutMs = 1; 73 const int kMinPrerenderServiceTimeoutMs = 1;
73 const int kMaxPrerenderServiceTimeoutMs = 10000; 74 const int kMaxPrerenderServiceTimeoutMs = 10000;
74 const int kDefaultPrerenderServiceTimeoutMs = 1000; 75 const int kDefaultPrerenderServiceTimeoutMs = 1000;
76 const int kMinPrefetchListTimeoutSeconds = 1;
77 const int kMaxPrefetchListTimeoutSeconds = 1800;
78 const int kDefaultPrefetchListTimeoutSeconds = 300;
75 const char kSkipPrerenderLocalCanadidates[] = "SkipPrerenderLocalCandidates"; 79 const char kSkipPrerenderLocalCanadidates[] = "SkipPrerenderLocalCandidates";
76 const char kSkipPrerenderServiceCanadidates[] = 80 const char kSkipPrerenderServiceCanadidates[] =
77 "SkipPrerenderServiceCandidates"; 81 "SkipPrerenderServiceCandidates";
78 const char kDisableSessionStorageNamespaceMerging[] = 82 const char kDisableSessionStorageNamespaceMerging[] =
79 "DisableSessionStorageNamespaceMerging"; 83 "DisableSessionStorageNamespaceMerging";
80 const char kPrerenderCookieStore[] = "PrerenderCookieStore"; 84 const char kPrerenderCookieStore[] = "PrerenderCookieStore";
81 85
82 void SetupPrerenderFieldTrial() { 86 void SetupPrerenderFieldTrial() {
83 const FieldTrial::Probability divisor = 1000; 87 const FieldTrial::Probability divisor = 1000;
84 88
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 int GetPrerenderServiceFetchTimeoutMs() { 379 int GetPrerenderServiceFetchTimeoutMs() {
376 int result; 380 int result;
377 StringToInt(GetLocalPredictorSpecValue(kPrerenderServiceFetchTimeoutKeyName), 381 StringToInt(GetLocalPredictorSpecValue(kPrerenderServiceFetchTimeoutKeyName),
378 &result); 382 &result);
379 // If the value is outside the valid range, use the default value. 383 // If the value is outside the valid range, use the default value.
380 return (result < kMinPrerenderServiceTimeoutMs || 384 return (result < kMinPrerenderServiceTimeoutMs ||
381 result > kMaxPrerenderServiceTimeoutMs) ? 385 result > kMaxPrerenderServiceTimeoutMs) ?
382 kDefaultPrerenderServiceTimeoutMs : result; 386 kDefaultPrerenderServiceTimeoutMs : result;
383 } 387 }
384 388
389 int GetPrerenderPrefetchListTimeoutSeconds() {
390 int result;
391 StringToInt(GetLocalPredictorSpecValue(kPrefetchListTimeoutKeyName), &result);
392 // If the value is outside the valid range, use the default value.
393 return (result < kMinPrefetchListTimeoutSeconds ||
394 result > kMaxPrefetchListTimeoutSeconds) ?
395 kDefaultPrefetchListTimeoutSeconds : result;
396 }
397
385 int GetLocalPredictorTTLSeconds() { 398 int GetLocalPredictorTTLSeconds() {
386 int ttl; 399 int ttl;
387 StringToInt(GetLocalPredictorSpecValue(kPrerenderTTLKeyName), &ttl); 400 StringToInt(GetLocalPredictorSpecValue(kPrerenderTTLKeyName), &ttl);
388 // If the value is outside of 10s or 600s, use a default value of 180s. 401 // If the value is outside of 10s or 600s, use a default value of 180s.
389 return (ttl < 10 || ttl > 600) ? 180 : ttl; 402 return (ttl < 10 || ttl > 600) ? 180 : ttl;
390 } 403 }
391 404
392 int GetLocalPredictorPrerenderPriorityHalfLifeTimeSeconds() { 405 int GetLocalPredictorPrerenderPriorityHalfLifeTimeSeconds() {
393 int half_life_time; 406 int half_life_time;
394 StringToInt(GetLocalPredictorSpecValue(kPrerenderPriorityHalfLifeTimeKeyName), 407 StringToInt(GetLocalPredictorSpecValue(kPrerenderPriorityHalfLifeTimeKeyName),
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 return GetLocalPredictorSpecValue(kDisableSessionStorageNamespaceMerging) != 464 return GetLocalPredictorSpecValue(kDisableSessionStorageNamespaceMerging) !=
452 kDisabledGroup; 465 kDisabledGroup;
453 } 466 }
454 467
455 bool IsPrerenderCookieStoreEnabled() { 468 bool IsPrerenderCookieStoreEnabled() {
456 return GetLocalPredictorSpecValue(kPrerenderCookieStore) != kDisabledGroup && 469 return GetLocalPredictorSpecValue(kPrerenderCookieStore) != kDisabledGroup &&
457 FieldTrialList::FindFullName(kPrerenderCookieStore) != kDisabledGroup; 470 FieldTrialList::FindFullName(kPrerenderCookieStore) != kDisabledGroup;
458 } 471 }
459 472
460 } // namespace prerender 473 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_field_trial.h ('k') | chrome/browser/prerender/prerender_local_predictor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698